1GIT v1.6.3 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://git.or.cz/gitwiki/GitFaq#non-bare 14 http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007 15 16for more details on the reason why this change is needed and the 17transition plan. 18 19For a similar reason, "git push $there :$killed" to delete the branch 20$killed in a remote repository $there, if $killed branch is the current 21branch pointed at by its HEAD, gets a large warning. You can choose what 22should happen upon such a push by setting the configuration variable 23receive.denyDeleteCurrent in the receiving repository. 24 25When the user does not tell "git push" what to push, it has always 26pushed matching refs. For some people it is unexpected, and a new 27configuration variable push.default has been introduced to allow 28changing a different default behaviour. To advertise the new feature, 29a big warning is issued if this is not configured and a git push without 30arguments is attempted. 31 32 33Updates since v1.6.2 34-------------------- 35 36(subsystems) 37 38(performance) 39 40* many uses of lstat(2) in the codepath for "git checkout" have been 41 optimized out. 42 43* pruning reflog entries that are unreachable from the tip of the ref 44 during "git reflog prune" (hence "git gc") was very inefficient. 45 46(usability, bells and whistles) 47 48* rsync:/path/to/repo can be used to run git over rsync for local 49 repositories. It may not be useful in practice; meant primarily for 50 testing. 51 52* http transport learned to prompt and use password when fetching from or 53 pushing to http://user@host.xz/ URL. 54 55* (msysgit) progress output that is sent over the sideband protocol can 56 be handled appropriately in Windows console. 57 58* "--pretty=<style>" option to the log family of commands can now be 59 spelled as "--format=<style>". In addition, --format=%formatstring 60 is a short-hand for --pretty=tformat:%formatstring. 61 62* "--oneline" is a synonym for "--pretty=oneline --abbrev-commit". 63 64* If you realize that you botched the patch when you are editing hunks 65 with the 'edit' action in git-add -i/-p, you can abort the editor to 66 tell git not to apply it. 67 68* The number of commits shown in "you are ahead/behind your upstream" 69 messages given by "git checkout" and "git status" used to count merge 70 commits; now it doesn't. 71 72* @{-1} is a new way to refer to the last branch you were on introduced in 73 1.6.2, but the initial implementation did not teach this to a few 74 commands. Now the syntax works with "branch -m @{-1} newname". 75 76* git-archive learned --output=<file> option. 77 78* git-bisect shows not just the number of remaining commits whose goodness 79 is unknown, but also shows the estimated number of remaining rounds. 80 81* You can give --date=<format> option to git-blame. 82 83* git-branch -r shows HEAD symref that points at a remote branch in 84 interest of each tracked remote repository. 85 86* git-config learned -e option to open an editor to edit the config file 87 directly. 88 89* git-clone runs post-checkout hook when run without --no-checkout. 90 91* git-fast-export choked when seeing a tag that does not point at commit. 92 93* git-format-patch can be told to use attachment with a new configuration, 94 format.attach. 95 96* git-format-patch can be told to produce deep or shallow message threads. 97 98* git-format-patch can be told to always add sign-off with a configuration 99 variable. 100 101* git-format-patch learned format.headers configuration to add extra 102 header fields to the output. This behaviour is similar to the existing 103 --add-header=<header> option of the command. 104 105* git-format-patch gives human readable names to the attached files, when 106 told to send patches as attachments. 107 108* git-grep learned to highlight the found substrings in color. 109 110* git-imap-send learned to work around Thunderbird's inability to easily 111 disable format=flowed with a new configuration, imap.preformattedHTML. 112 113* git-rebase can be told to rebase the series even if your branch is a 114 descendant of the commit you are rebasing onto with --force-rebase 115 option. 116 117* git-rebase can be told to report diffstat with the --stat option. 118 119* Output from git-remote command has been vastly improved. 120 121* git-send-email learned --confirm option to review the Cc: list before 122 sending the messages out. 123 124(developers) 125 126* Test scripts can be run under valgrind. 127 128* Test scripts can be run with installed git. 129 130* Makefile learned 'coverage' option to run the test suites with 131 coverage tracking enabled. 132 133* Building the manpages with docbook-xsl between 1.69.1 and 1.71.1 now 134 requires setting DOCBOOK_SUPPRESS_SP to work around a docbook-xsl bug. 135 This workaround used to be enabled by default, but causes problems 136 with newer versions of docbook-xsl. In addition, there are a few more 137 knobs you can tweak to work around issues with various versions of the 138 docbook-xsl package. See comments in Documentation/Makefile for details. 139 140Fixes since v1.6.2 141------------------ 142 143All of the fixes in v1.6.2.X maintenance series are included in this 144release, unless otherwise noted. 145 146Here are fixes that this release has, but have not been backported to 147v1.6.2.X series. 148 149* The initial checkout did not read the attributes from the .gitattribute 150 file that is being checked out. 151 152* "git-checkout <tree-ish> <submodule>" did not update the index entry at 153 the named path; it now does. 154 155* git-gc spent excessive amount of time to decide if an object appears 156 in a locally existing pack (if needed, backport by merging 69e020a). 157 158* "git-ls-tree" and "git-diff-tree" used a pathspec correctly when 159 deciding to descend into a subdirectory but they did not match the 160 individual paths correctly. This caused pathspecs "abc/d ab" to match 161 "abc/0" ("abc/d" made them decide to descend into the directory "abc/", 162 and then "ab" incorrectly matched "abc/0" when it shouldn't). 163 164* "git-merge-recursive" was broken when a submodule entry was involved in 165 a criss-cross merge situation. 166 167--- 168exec >/var/tmp/1 169O=v1.6.2.2-484-g796b137 170echo O=$(git describe master) 171git shortlog --no-merges $O..master ^maint