跳转到主要内容

1.7.7.1

Git v1.7.7.1 Release Notes ==========================

Fixes since v1.7.7 ------------------

  • On some BSD systems, adding +s bit on directories is detrimental (it is not necessary on BSD to begin with). "git init --shared" has been updated to take this into account without extra makefile settings on platforms the Makefile knows about.
  • After incorrectly written third-party tools store a tag object in HEAD, git diagnosed it as a repository corruption and refused to proceed in order to avoid spreading the damage. We now gracefully recover from such a situation by pretending as if the commit that is pointed at by the tag were in HEAD.
  • "git apply --whitespace=error" did not bother to report the exact line number in the patch that introduced new blank lines at the end of the file.
  • "git apply --index" did not check corrupted patch.
  • "git checkout $tree $directory/" resurrected paths locally removed or modified only in the working tree in $directory/ that did not appear in $directory of the given $tree. They should have been kept intact.
  • "git diff $tree $path" used to apply the pathspec at the output stage, reading the whole tree, wasting resources.
  • The code to check for updated submodules during a "git fetch" of the superproject had an unnecessary quadratic loop.
  • "git fetch" from a large bundle did not enable the progress output.
  • When "git fsck --lost-and-found" found that an empty blob object in the object store is unreachable, it incorrectly reported an error after writing the lost blob out successfully.
  • "git filter-branch" did not refresh the index before checking that the working tree was clean.
  • "git grep $tree" when run with multiple threads had an unsafe access to the object database that should have been protected with mutex.
  • The "--ancestry-path" option to "git log" and friends misbehaved in a history with complex criss-cross merges and showed an uninteresting side history as well.
  • Test t1304 assumed LOGNAME is always set, which may not be true on some systems.
  • Tests with --valgrind failed to find "mergetool" scriptlets.
  • "git patch-id" miscomputed the patch-id in a patch that has a line longer than 1kB.
  • When an "exec" insn failed after modifying the index and/or the working tree during "rebase -i", we now check and warn that the changes need to be cleaned up.