Git v1.7.11.3

The latest maintenance release Git v1.7.11.3 is now available at
the usual places.

The release tarballs are found at:

and their SHA-1 checksums are:

a10c420e4d9152d6059f41825904cfac3062b135  git-
41500708e87787d6139de413c4da91629aa79fa8  git-htmldocs-
10151406ace1da92a70d203a7eb1c86024fdd919  git-manpages-

Also the following public repositories all have a copy of the v1.7.11.3
tag and the maint branch that the tag points at:

url = git://
url =
url = git://
url = git://
url =

Git v1.7.11.3 Release Notes

Fixes since v1.7.11.3

  • The error message from “git push $there :bogo” (and its equivalent
    “git push $there –delete bogo”) mentioned that we tried and failed
    to guess what ref is being deleted based on the LHS of the refspec,
    which we don’t.

  • A handful of files and directories we create had tighter than
    necessary permission bits when the user wanted to have group
    writability (e.g. by setting “umask 002”).

  • “commit –amend” used to refuse amending a commit with an empty log
    message, with or without “–allow-empty-message”.

  • “git commit –amend –only –” was meant to allow “Clever” people to
    rewrite the commit message without making any change even when they
    have already changes for the next commit added to their index, but
    it never worked as advertised since it was introduced in 1.3.0 era.

  • Even though the index can record pathnames longer than 1<<12 bytes,
    in some places we were not comparing them in full, potentially
    replacing index entries instead of adding.

  • “git show”‘s auto-walking behaviour was an unreliable and
    unpredictable hack; it now behaves just like “git log” does when it

  • “git diff”, “git status” and anything that internally uses the
    comparison machinery was utterly broken when the difference
    involved a file with “-” as its name. This was due to the way “git
    diff –no-index” was incorrectly bolted on to the system, making
    any comparison that involves a file “-” at the root level
    incorrectly read from the standard input.

  • We did not have test to make sure “git rebase” without extra options
    filters out an empty commit in the original history.

  • “git fast-export” produced an input stream for fast-import without
    properly quoting pathnames when they contain SPs in them.

  • “git checkout –detach”, when you are still on an unborn branch,
    should be forbidden, but it wasn’t.

  • Some implementations of Perl terminates “lines” with CRLF even when
    the script is operating on just a sequence of bytes. Make sure to
    use “$PERL_PATH”, the version of Perl the user told Git to use, in
    our tests to avoid unnecessary breakages in tests.

Also contains minor typofixes and documentation updates.

Changes since v1.7.11.2 are as follows:

Alex Riesen (1):
      Restore umasks influence on the permissions of work tree created by clone

Chris Webb (2):
      git-checkout: disallow --detach on unborn branch
      Allow edit of empty message with commit --amend

Jay Soffian (1):
      fast-export: quote paths with spaces

Jeff King (3):
      push: don't guess at qualifying remote refs on deletion
      add: create ADD_EDIT.patch with mode 0666
      commit: fix "--amend --only" with no pathspec

Junio C Hamano (10):
      show: fix "range implies walking"
      t/ export PERL_PATH for use in scripts
      tests: enclose $PERL_PATH in double quotes
      t/README: add a bit more Don'ts
      diff-index.c: do not pretend paths are pathspecs
      diff-index.c: unify handling of command line paths
      diff-index.c: "git diff" has no need to read blob from the standard input
      rerere: make rr-cache fanout directory honor umask
      cache_name_compare(): do not truncate while comparing paths

Martin von Zweigbergk (1):
      add test case for rebase of empty commit

Thomas Rast (1):
      Demonstrate git-show is broken with ranges

Vincent van Ravesteijn (1):
      t: Replace 'perl' by $PERL_PATH

Junio C Hamano wrote on 22 Jul 2012