1GIT v1.6.2 Release Notes 2======================== 3 4With the next major release, "git push" into a branch that is 5currently checked out will be refused by default. You can choose 6what should happen upon such a push by setting the configuration 7variable receive.denyCurrentBranch in the receiving repository. 8 9To ease the transition plan, the receiving repository of such a 10push running this release will issue a big warning when the 11configuration variable is missing. Please refer to: 12 13 http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007 14 15for more details on the transition plan. 16 17 18Updates since v1.6.1 19-------------------- 20 21(subsystems) 22 23* git-svn updates. 24 25* gitweb updates, including a new patch view and RSS/Atom feed 26 improvements. 27 28* (contrib) git.el updates for better XEmacs compatibility; vc-git.el 29 is not shiped with git anymore (it is part of official Emacs) 30 31(performance) 32 33* pack-objects autodetects the number of CPUs available and uses threaded 34 version. 35 36(usability, bells and whistles) 37 38* automatic typo correction works on aliases as well 39 40* Initial support for "git notes" implemented. 41 42* @{-1} is a way to refer to the last branch you were on. This is 43 accepted not only where an object name is expected, but anywhere 44 a branch name is expected. E.g. "git branch --track mybranch @{-1}" 45 "git rev-parse --symbolic-full-name @{-1}". 46 47* "git add -p" learned 'g'oto action to jump directly to a hunk. 48 49* "git add -p" learned to find a hunk with given text with '/'. 50 51* "git add -p" optionally can be told to work with just the command letter 52 without Enter. 53 54* when "git am" stops upon a patch that does not apply, it shows the 55 title of the offending patch. 56 57* "git am --directory=<dir>" and "git am --reject" passes these options 58 to underlying "git apply". 59 60* "git am" learned --ignore-date option. 61 62* "git blame" aligns author names better when they are spelled in 63 non US-ASCII encoding. 64 65* "git clone" now makes its best effort when cloning from an empty 66 repository to set up configuration variables to refer to the remote 67 repository. 68 69* "git checkout -" is a shorthand for "git checkout @{-1}". 70 71* "git cherry" defaults to whatever the current branch is tracking (if 72 exists) when the <upstream> argument is not given. 73 74* "git cvsserver" can be told not to add extra "via git-CVS emulator" to 75 the commit log message it serves via gitcvs.commitmsgannotation 76 configuration. 77 78* "git cvsserver" learned to handle 'noop' command some CVS clients seem 79 to expect to work. 80 81* "git diff" learned a new option --inter-hunk-context to coalesce close 82 hunks together and show context between them. 83 84* The definition of what constitutes a word for "git diff --color-words" 85 can be customized via gitattributes, command line or a configuration. 86 87* "git diff" learned --patience to run "patience diff" algorithm. 88 89* "git filter-branch" learned --prune-empty option that discards commits 90 that do not change the contents. 91 92* "git fsck" now checks loose objects in alternate object stores, instead 93 of misreporting them as missing. 94 95* "git grep -w" and "git grep" for fixed strings have been optimized. 96 97* "git mergetool" learned -y(--no-prompt) option to disable prompting. 98 99* "git rebase -i" can transplant a history down to root to elsewhere 100 with --root option. 101 102* "git reset --merge" is a new mode that works similar to the way 103 "git checkout" switches branches, taking the local changes while 104 switching to another commit. 105 106* "git tag" learned --contains that works the same way as the same option 107 from "git branch". 108 109 110Fixes since v1.6.1 111------------------ 112 113All of the fixes in v1.6.1.X maintenance series are included in this 114release, unless otherwise noted. 115 116Here are fixes that this release has, but have not been backported to 117v1.6.1.X series. 118 119* "git-add sub/file" when sub is a submodule incorrectly added the path to 120 the superproject. 121 122* "git bundle" did not exclude annotated tags even when a range given 123 from the command line wanted to. 124 125* "git filter-branch" unnecessarily refused to work when you had 126 checked out a different commit from what is recorded in the superproject 127 index in a submodule. 128 129* "git filter-branch" incorrectly tried to update a nonexistent work tree 130 at the end when it is run in a bare repository. 131 132* "git mergetool" used to ignore autocrlf and other attributes 133 based content rewriting. 134 135* branch switching and merges had a silly bug that did not validate 136 the correct directory when making sure an existing subdirectory is 137 clean. 138 139* "git -p cmd" when cmd is not a built-in one left the display in funny state 140 when killed in the middle. 141 142-- 143exec >/var/tmp/1 144O=v1.6.1.3-371-gc19923a 145echo O=$(git describe master) 146git shortlog --no-merges $O..master ^maint