GIT 1.6.4

The latest feature release GIT 1.6.4 is available at the usual
git-1.6.4.tar.{gz,bz2}                        (source tarball)
git-htmldocs-1.6.4.tar.{gz,bz2}               (preformatted docs)
git-manpages-1.6.4.tar.{gz,bz2}               (preformatted docs)

The RPM binary packages for a few architectures are found in:

RPMS/$arch/git-*-1.6.4-1.fc9.$arch.rpm        (RPM)

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:

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


  • 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.


  • 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.


  • 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

  • “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.


  • 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 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.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s