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

The release tarballs are found at:

and their SHA-1 checksums are:

870361f93fad7999f121bc7bc91a743feda68bdb  git-
29b79312482f9aaf92ee3d970caee5ed8ab96bba  git-htmldocs-
5bff761bc40a6b3cfe35ba824357dcf611dbd5d2  git-manpages-

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

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

Git v1.7.10.1 Release Notes

Additions since v1.7.10

Localization message files for Danish and German have been added.

Fixes since v1.7.10

  • “git add -p” is not designed to deal with unmerged paths but did
    not exclude them and tried to apply funny patches only to fail.

  • “git blame” started missing quite a few changes from the origin
    since we stopped using the diff minimalization by default in v1.7.2

  • When PATH contains an unreadable directory, alias expansion code
    did not kick in, and failed with an error that said “git-subcmd”
    was not found.

  • “git clean -d -f” (not “-d -f -f”) is supposed to protect nested
    working trees of independent git repositories that exist in the
    current project working tree from getting removed, but the
    protection applied only to such working trees that are at the
    top-level of the current project by mistake.

  • “git commit –author=$name” did not tell the name that was being
    recorded in the resulting commit to hooks, even though it does do
    so when the end user overrode the authorship via the
    “GIT_AUTHOR_NAME” environment variable.

  • When “git commit –template F” errors out because the user did not
    touch the message, it claimed that it aborts due to “empty
    message”, which was utterly wrong.

  • The regexp configured with diff.wordregex was incorrectly reused
    across files.

  • An age-old corner case bug in combine diff (only triggered with -U0
    and the hunk at the beginning of the file needs to be shown) has
    been fixed.

  • Rename detection logic used to match two empty files as renames
    during merge-recursive, leading to unnatural mismerges.

  • The parser in “fast-import” did not diagnose “:9” style references
    that is not followed by required SP/LF as an error.

  • When “git fetch” encounters repositories with too many references,
    the command line of “fetch-pack” that is run by a helper
    e.g. remote-curl, may fail to hold all of them. Now such an
    internal invocation can feed the references through the standard
    input of “fetch-pack”.

  • “git fetch” that recurses into submodules on demand did not check
    if it needs to go into submodules when non branches (most notably,
    tags) are fetched.

  • “log -p –graph” used with “–stat” had a few formatting error.

  • Running “notes merge –commit” failed to perform correctly when run
    from any directory inside $GIT_DIR/. When “notes merge” stops with
    conflicts, $GIT_DIR/NOTES_MERGE_WORKTREE is the place a user edits
    to resolve it.

  • The push to upstream implementation was broken in some corner
    cases. “git push $there” without refspec, when the current branch
    is set to push to a remote different from $there, used to push to
    $there using the upstream information to a remote unreleated to

  • Giving “–continue” to a conflicted “rebase -i” session skipped a
    commit that only results in changes to submodules.

Also contains minor fixes and documentation updates.

Junio C Hamano wrote on 01 May 2012