Friday, May 25, 2012

Git and Git 1.7.11-rc0

Two releases for a day.

The third maintenance release for 1.7.10.X series fixes a handful of regressions in previous 1.7.10.X releases.

On the master front, 1.7.11-rc0 is out.  Treat it as a preview of the real release candidate for the next big releasethere still are several topics cooking in the next branch to shake out possible new bugs to make sure we can have a solid 1.7.11 release.

The most notable, from the long-term point of view, is the introduction of the simple push mode (credit goes to Matthieu Moy), which would hopefully prove to be a good default for new users until they configure the push.default to suit the requirement of their project.  With this, running git push or git push origin without saying which branches and/or tags to update what on the remote side from either command line or from the remote.$name.push configuration will only push the current branch to the branch of the same name on the other side, but only if the current branch is configured to use the branch on the other side as its upstream.

Have fun.

Tuesday, May 1, 2012


The first maintenance release for 1.7.10.x series is out.

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.