| 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: | |
| http://git.or.cz/gitwiki/GitFaq#non-bare | |
| http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007 | |
| 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. |