| GIT v1.6.4 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.3 | 
 | -------------------- | 
 |  | 
 | (subsystems) | 
 |  | 
 |  * gitweb Perl style clean-up. | 
 |  | 
 |  * git-svn updates, including a new --authors-prog option to map author | 
 |    names by invoking an external program, 'git svn reset' to unwind | 
 |    'git svn fetch', support for more than one branches, documenting | 
 |    of the useful --minimize-url feature, new "git svn gc" command, etc. | 
 |  | 
 | (portability) | 
 |  | 
 |  * We feed iconv with "UTF-8" instead of "utf8"; the former is | 
 |    understood more widely.  Similarly updated test scripts to use | 
 |    encoding names more widely understood (e.g. use "ISO8859-1" instead | 
 |    of "ISO-8859-1"). | 
 |  | 
 |  * Various portability fixes/workarounds for different vintages of | 
 |    SunOS, IRIX, and Windows. | 
 |  | 
 |  * Git-over-ssh transport on Windows supports PuTTY plink and TortoisePlink. | 
 |  | 
 | (performance) | 
 |  | 
 |  * Many repeated use of lstat() are optimized out in "checkout" codepath. | 
 |  | 
 |  * git-status (and underlying git-diff-index --cached) are optimized | 
 |    to take advantage of cache-tree information in the index. | 
 |  | 
 | (usability, bells and whistles) | 
 |  | 
 |  * "git add --edit" lets users edit the whole patch text to fine-tune what | 
 |    is added to the index. | 
 |  | 
 |  * "git am" accepts StGIT series file as its input. | 
 |  | 
 |  * "git bisect skip" skips to a more randomly chosen place in the hope | 
 |    to avoid testing a commit that is too close to a commit that is | 
 |    already known to be untestable. | 
 |  | 
 |  * "git cvsexportcommit" learned -k option to stop CVS keywords expansion | 
 |  | 
 |  * "git fast-export" learned to handle history simplification more | 
 |    gracefully. | 
 |  | 
 |  * "git fast-export" learned an option --tag-of-filtered-object to handle | 
 |    dangling tags resulting from history simplification more usefully. | 
 |  | 
 |  * "git grep" learned -p option to show the location of the match using the | 
 |    same context hunk marker "git diff" uses. | 
 |  | 
 |  * https transport can optionally be told that the used client | 
 |    certificate is password protected, in which case it asks the | 
 |    password only once. | 
 |  | 
 |  * "git imap-send" is IPv6 aware. | 
 |  | 
 |  * "git log --graph" draws graphs more compactly by using horizontal lines | 
 |    when able. | 
 |  | 
 |  * "git log --decorate" shows shorter refnames by stripping well-known | 
 |    refs/* prefix. | 
 |  | 
 |  * "git push $name" honors remote.$name.pushurl if present before | 
 |    using remote.$name.url.  In other words, the URL used for fetching | 
 |    and pushing can be different. | 
 |  | 
 |  * "git send-email" understands quoted aliases in .mailrc files (might | 
 |    have to be backported to 1.6.3.X). | 
 |  | 
 |  * "git send-email" can fetch the sender address from the configuration | 
 |    variable "sendmail.from" (and "sendmail.<identity>.from"). | 
 |  | 
 |  * "git show-branch" can color its output. | 
 |  | 
 |  * "add" and "update" subcommands to "git submodule" learned --reference | 
 |    option to use local clone with references. | 
 |  | 
 |  * "git submodule update" learned --rebase option to update checked | 
 |    out submodules by rebasing the local changes. | 
 |  | 
 |  * "gitweb" can optionally use gravatar to adorn author/committer names. | 
 |  | 
 | (developers) | 
 |  | 
 |  * A major part of the "git bisect" wrapper has moved to C. | 
 |  | 
 |  * Formatting with the new version of AsciiDoc 8.4.1 is now supported. | 
 |  | 
 | Fixes since v1.6.3 | 
 | ------------------ | 
 |  | 
 | All of the fixes in v1.6.3.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.3.X series. | 
 |  | 
 |  * "git diff-tree -r -t" used to omit new or removed directories from | 
 |    the output.  df533f3 (diff-tree -r -t: include added/removed | 
 |    directories in the output, 2009-06-13) may need to be cherry-picked | 
 |    to backport this fix. | 
 |  | 
 |  * The way Git.pm sets up a Repository object was not friendly to callers | 
 |    that chdir around.  It now internally records the repository location | 
 |    as an absolute path when autodetected. | 
 |  | 
 |  * Removing a section with "git config --remove-section", when its | 
 |    section header has a variable definition on the same line, lost | 
 |    that variable definition. | 
 |  | 
 |  * "git rebase -p --onto" used to always leave side branches of a merge | 
 |    intact, even when both branches are subject to rewriting. | 
 |  | 
 |  * "git repack" used to faithfully follow grafts and considered true | 
 |    parents recorded in the commit object unreachable from the commit. | 
 |    After such a repacking, you cannot remove grafts without corrupting | 
 |    the repository. | 
 |  | 
 |  * "git send-email" did not detect erroneous loops in alias expansion. |