| GIT v1.6.3 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. | |
| When the user does not tell "git push" what to push, it has always | |
| pushed matching refs. For some people it is unexpected, and a new | |
| configuration variable push.default has been introduced to allow | |
| changing a different default behaviour. To advertise the new feature, | |
| a big warning is issued if this is not configured and a git push without | |
| arguments is attempted. | |
| Updates since v1.6.2 | |
| -------------------- | |
| (subsystems) | |
| (performance) | |
| * many uses of lstat(2) in the codepath for "git checkout" have been | |
| optimized out. | |
| * pruning reflog entries that are unreachable from the tip of the ref | |
| during "git reflog prune" (hence "git gc") was very inefficient. | |
| (usability, bells and whistles) | |
| * rsync:/path/to/repo can be used to run git over rsync for local | |
| repositories. It may not be useful in practice; meant primarily for | |
| testing. | |
| * http transport learned to prompt and use password when fetching from or | |
| pushing to http://user@host.xz/ URL. | |
| * (msysgit) progress output that is sent over the sideband protocol can | |
| be handled appropriately in Windows console. | |
| * "--pretty=<style>" option to the log family of commands can now be | |
| spelled as "--format=<style>". In addition, --format=%formatstring | |
| is a short-hand for --pretty=tformat:%formatstring. | |
| * "--oneline" is a synonym for "--pretty=oneline --abbrev-commit". | |
| * If you realize that you botched the patch when you are editing hunks | |
| with the 'edit' action in git-add -i/-p, you can abort the editor to | |
| tell git not to apply it. | |
| * The number of commits shown in "you are ahead/behind your upstream" | |
| messages given by "git checkout" and "git status" used to count merge | |
| commits; now it doesn't. | |
| * @{-1} is a new way to refer to the last branch you were on introduced in | |
| 1.6.2, but the initial implementation did not teach this to a few | |
| commands. Now the syntax works with "branch -m @{-1} newname". | |
| * git-archive learned --output=<file> option. | |
| * git-bisect shows not just the number of remaining commits whose goodness | |
| is unknown, but also shows the estimated number of remaining rounds. | |
| * You can give --date=<format> option to git-blame. | |
| * git-branch -r shows HEAD symref that points at a remote branch in | |
| interest of each tracked remote repository. | |
| * git-config learned -e option to open an editor to edit the config file | |
| directly. | |
| * git-clone runs post-checkout hook when run without --no-checkout. | |
| * git-fast-export choked when seeing a tag that does not point at commit. | |
| * git-format-patch can be told to use attachment with a new configuration, | |
| format.attach. | |
| * git-format-patch can be told to produce deep or shallow message threads. | |
| * git-format-patch can be told to always add sign-off with a configuration | |
| variable. | |
| * git-format-patch learned format.headers configuration to add extra | |
| header fields to the output. This behaviour is similar to the existing | |
| --add-header=<header> option of the command. | |
| * git-format-patch gives human readable names to the attached files, when | |
| told to send patches as attachments. | |
| * git-grep learned to highlight the found substrings in color. | |
| * git-imap-send learned to work around Thunderbird's inability to easily | |
| disable format=flowed with a new configuration, imap.preformattedHTML. | |
| * git-rebase can be told to rebase the series even if your branch is a | |
| descendant of the commit you are rebasing onto with --force-rebase | |
| option. | |
| * git-rebase can be told to report diffstat with the --stat option. | |
| * Output from git-remote command has been vastly improved. | |
| * git-send-email learned --confirm option to review the Cc: list before | |
| sending the messages out. | |
| (developers) | |
| * Test scripts can be run under valgrind. | |
| * Test scripts can be run with installed git. | |
| * Makefile learned 'coverage' option to run the test suites with | |
| coverage tracking enabled. | |
| * Building the manpages with docbook-xsl between 1.69.1 and 1.71.1 now | |
| requires setting DOCBOOK_SUPPRESS_SP to work around a docbook-xsl bug. | |
| This workaround used to be enabled by default, but causes problems | |
| with newer versions of docbook-xsl. In addition, there are a few more | |
| knobs you can tweak to work around issues with various versions of the | |
| docbook-xsl package. See comments in Documentation/Makefile for details. | |
| Fixes since v1.6.2 | |
| ------------------ | |
| All of the fixes in v1.6.2.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.2.X series. | |
| * The initial checkout did not read the attributes from the .gitattribute | |
| file that is being checked out. | |
| * "git-checkout <tree-ish> <submodule>" did not update the index entry at | |
| the named path; it now does. | |
| * git-gc spent excessive amount of time to decide if an object appears | |
| in a locally existing pack (if needed, backport by merging 69e020a). | |
| * "git-ls-tree" and "git-diff-tree" used a pathspec correctly when | |
| deciding to descend into a subdirectory but they did not match the | |
| individual paths correctly. This caused pathspecs "abc/d ab" to match | |
| "abc/0" ("abc/d" made them decide to descend into the directory "abc/", | |
| and then "ab" incorrectly matched "abc/0" when it shouldn't). | |
| * "git-merge-recursive" was broken when a submodule entry was involved in | |
| a criss-cross merge situation. | |
| --- | |
| exec >/var/tmp/1 | |
| O=v1.6.2.2-484-g796b137 | |
| echo O=$(git describe master) | |
| git shortlog --no-merges $O..master ^maint |