|  | GIT v1.6.2 Release Notes | 
|  | ======================== | 
|  |  | 
|  | With the next major release, "git push" into a branch that is | 
|  | currently checked out will be refused by default.  You can choose | 
|  | what should happen upon such a push by setting the configuration | 
|  | variable receive.denyCurrentBranch in the receiving repository. | 
|  |  | 
|  | To ease the transition plan, the receiving repository of such a | 
|  | push running this release will issue a big warning when the | 
|  | configuration variable is missing.  Please refer to: | 
|  |  | 
|  | https://archive.kernel.org/oldwiki/git.wiki.kernel.org/index.php/GitFaq.html#non-bare | 
|  | https://lore.kernel.org/git/7vbptlsuyv.fsf@gitster.siamese.dyndns.org/ | 
|  |  | 
|  | for more details on the reason why this change is needed and the | 
|  | transition plan. | 
|  |  | 
|  | For a similar reason, "git push $there :$killed" to delete the branch | 
|  | $killed in a remote repository $there, if $killed branch is the current | 
|  | branch pointed at by its HEAD, gets a large warning.  You can choose what | 
|  | should happen upon such a push by setting the configuration variable | 
|  | receive.denyDeleteCurrent in the receiving repository. | 
|  |  | 
|  |  | 
|  | Updates since v1.6.1 | 
|  | -------------------- | 
|  |  | 
|  | (subsystems) | 
|  |  | 
|  | * git-svn updates. | 
|  |  | 
|  | * gitweb updates, including a new patch view and RSS/Atom feed | 
|  | improvements. | 
|  |  | 
|  | * (contrib/emacs) git.el now has commands for checking out a branch, | 
|  | creating a branch, cherry-picking and reverting commits; vc-git.el | 
|  | is not shipped with git anymore (it is part of official Emacs). | 
|  |  | 
|  | (performance) | 
|  |  | 
|  | * pack-objects autodetects the number of CPUs available and uses threaded | 
|  | version. | 
|  |  | 
|  | (usability, bells and whistles) | 
|  |  | 
|  | * automatic typo correction works on aliases as well | 
|  |  | 
|  | * @{-1} is a way to refer to the last branch you were on.  This is | 
|  | accepted not only where an object name is expected, but anywhere | 
|  | a branch name is expected and acts as if you typed the branch name. | 
|  | E.g. "git branch --track mybranch @{-1}", "git merge @{-1}", and | 
|  | "git rev-parse --symbolic-full-name @{-1}" would work as expected. | 
|  |  | 
|  | * 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. |