Git v1.7.11.2

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

The release tarballs are found at:

and their SHA-1 checksums are:

f67b4f6c0277250411c6872ae7b8a872ae11d313  git-
088996c301cca24360fd5e30ce66bfa26139fe95  git-htmldocs-
78b46ca7b5037c61a58086879869dadeac9eea3e  git-manpages-

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

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

Git v1.7.11.2 Release Notes

Fixes since v1.7.11.1

  • On Cygwin, the platform pread(2) is not thread safe, just like our
    own compat/ emulation, and cannot be used in the index-pack
    program. Makefile variable NO_THREAD_SAFE_PREAD can be defined to
    avoid use of this function in a threaded program.

  • “git add” allows adding a regular file to the path where a
    submodule used to exist, but “git update-index” does not allow an
    equivalent operation to Porcelain writers.

  • “git archive” incorrectly computed the header checksum; the symptom
    was observed only when using pathnames with hi-bit set.

  • “git blame” did not try to make sure that the abbreviated commit
    object names in its output are unique.

  • Running “git bundle verify” on a bundle that records a complete
    history said “it requires these 0 commits”.

  • “git clone –single-branch” to clone a single branch did not limit
    the cloning to the specified branch.

  • “git diff –no-index” did not correctly handle relative paths and
    did not correctly give exit codes when run under “–quiet” option.

  • “git diff –no-index” did not work with pagers correctly.

  • “git diff COPYING HEAD:COPYING” gave a nonsense error message that
    claimed that the treeish HEAD did not have COPYING in it.

  • When “git log” gets “–simplify-merges/by-decoration” together with
    “–first-parent”, the combination of these options makes the
    simplification logic to use in-core commit objects that haven’t
    been examined for relevance, either producing incorrect result or
    taking too long to produce any output. Teach the simplification
    logic to ignore commits that the first-parent traversal logic
    ignored when both are in effect to work around the issue.

  • “git ls-files –exclude=t -i” did not consider anything under t/ as
    excluded, as it did not pay attention to exclusion of leading paths
    while walking the index. Other two users of excluded() are also

  • “git request-pull $url dev” when the tip of “dev” branch was tagged
    with “ext4-for-linus” used the contents from the tag in the output
    but still asked the “dev” branch to be pulled, not the tag.

Also contains minor typofixes and documentation updates.

Changes since v1.7.11.1 are as follows:

Carlos Martín Nieto (2):
      Documentation: --no-walk is no-op if range is specified
      git-cherry-pick.txt: clarify the use of revision range notation

Heiko Voigt (1):
      update-index: allow overwriting existing submodule index entries

Jeff King (3):
      fix pager.diff with diff --no-index
      do not run pager with diff --no-index --quiet
      diff: handle relative paths in no-index

Junio C Hamano (15):
      request-pull: really favor a matching tag
      ls-files -i: pay attention to exclusion of leading paths
      ls-files -i: micro-optimize path_excluded()
      tweak "bundle verify" of a complete history
      path_excluded(): update API to less cache-entry centric
      builtin/add.c: use path_excluded()
      unpack-trees.c: use path_excluded() in check_ok_to_remove()
      dir.c: make excluded() file scope static
      revision: "simplify" options imply topo-order sort
      revision: note the lack of free() in simplify_merges()
      archive: ustar header checksum is computed unsigned
      revision: ignore side parents while running simplify-merges
      index-pack: Disable threading on cygwin
      blame: compute abbreviation width that ensures uniqueness

Leila Muhtasib (1):
      Documentation: Fix misspellings

Matthieu Moy (2):
      sha1_name: do not trigger detailed diagnosis for file arguments
      verify_filename(): ask the caller to chose the kind of diagnosis

Michał Górny (1): fix filename in comment.

Nguyễn Thái Ngọc Duy (1):
      clone: fix ref selection in --single-branch --branch=xxx

Peter Krefting (1):
      Update Swedish translation (1066t0f0u)

Thomas Badie (1):
      git-add--interactive.perl: Remove two unused variables

Tim Henigan (1):
      diff-no-index: exit(1) if 'diff --quiet <repo file> <external file>' finds changes

Junio C Hamano wrote on 11 Jul 2012