Home Explore Blog CI



git

2nd chunk of `Documentation/RelNotes/1.6.2.adoc`
2a07ce2c4edc98323100df4be34030e9d0f63b044d8de8720000000100000f7f
 When refs/remotes/origin/HEAD points at a remote tracking branch that
  has been pruned away, many git operations issued warning when they
  internally enumerated the refs.  We now warn only when you say "origin"
  to refer to that pruned branch.

* The location of .mailmap file can be configured, and its file format was
  enhanced to allow mapping an incorrect e-mail field as well.

* "git add -p" learned 'g'oto action to jump directly to a hunk.

* "git add -p" learned to find a hunk with given text with '/'.

* "git add -p" optionally can be told to work with just the command letter
  without Enter.

* when "git am" stops upon a patch that does not apply, it shows the
  title of the offending patch.

* "git am --directory=<dir>" and "git am --reject" passes these options
  to underlying "git apply".

* "git am" learned --ignore-date option.

* "git blame" aligns author names better when they are spelled in
  non US-ASCII encoding.

* "git clone" now makes its best effort when cloning from an empty
  repository to set up configuration variables to refer to the remote
  repository.

* "git checkout -" is a shorthand for "git checkout @{-1}".

* "git cherry" defaults to whatever the current branch is tracking (if
  exists) when the <upstream> argument is not given.

* "git cvsserver" can be told not to add extra "via git-CVS emulator" to
  the commit log message it serves via gitcvs.commitmsgannotation
  configuration.

* "git cvsserver" learned to handle 'noop' command some CVS clients seem
  to expect to work.

* "git diff" learned a new option --inter-hunk-context to coalesce close
  hunks together and show context between them.

* The definition of what constitutes a word for "git diff --color-words"
  can be customized via gitattributes, command line or a configuration.

* "git diff" learned --patience to run "patience diff" algorithm.

* "git filter-branch" learned --prune-empty option that discards commits
  that do not change the contents.

* "git fsck" now checks loose objects in alternate object stores, instead
  of misreporting them as missing.

* "git gc --prune" was resurrected to allow "git gc --no-prune" and
  giving non-default expiration period e.g. "git gc --prune=now".

* "git grep -w" and "git grep" for fixed strings have been optimized.

* "git mergetool" learned -y(--no-prompt) option to disable prompting.

* "git rebase -i" can transplant a history down to root to elsewhere
  with --root option.

* "git reset --merge" is a new mode that works similar to the way
  "git checkout" switches branches, taking the local changes while
  switching to another commit.

* "git submodule update" learned --no-fetch option.

* "git tag" learned --contains that works the same way as the same option
  from "git branch".


Fixes since v1.6.1
------------------

All of the fixes in v1.6.1.X maintenance series are included in this
release, unless otherwise noted.

Here are fixes that this release has, but have not been backported to
v1.6.1.X series.

* "git-add sub/file" when sub is a submodule incorrectly added the path to
  the superproject.

* "git bundle" did not exclude annotated tags even when a range given
  from the command line wanted to.

* "git filter-branch" unnecessarily refused to work when you had
  checked out a different commit from what is recorded in the superproject
  index in a submodule.

* "git filter-branch" incorrectly tried to update a nonexistent work tree
  at the end when it is run in a bare repository.

* "git gc" did not work if your repository was created with an ancient git
  and never had any pack files in it before.

* "git mergetool" used to ignore autocrlf and other attributes
  based content rewriting.

* branch switching and merges had a silly bug that did not validate
  the correct directory when making sure an existing subdirectory is
  clean.

* "git -p cmd" when cmd is not a built-in one left the display in funny state
  when killed in the middle.

Title: GIT v1.6.2 Release Notes (Continued)
Summary
This release includes various improvements and fixes to existing Git commands, such as 'git add', 'git am', 'git blame', and 'git diff', as well as new options like --inter-hunk-context and --patience, and fixes for issues with submodules, filtering, and merging, making the overall Git experience more efficient and reliable.