Git 1.7.5-rc3

A release candidate Git 1.7.5-rc3 is available at the usual places
for testing:
git-1.7.5.rc3.tar.{gz,bz2}                    (source tarball)
git-htmldocs-1.7.5.rc3.tar.{gz,bz2}           (preformatted docs)
git-manpages-1.7.5.rc3.tar.{gz,bz2}           (preformatted docs)

The RPM binary packages for a few architectures are found in:

testing/git-*-1.7.5.rc3-1.fc13.$arch.rpm      (RPM)

Git v1.7.5 Release Notes (draft)

  • Various MinGW portability fixes.

  • Various git-p4 enhancements (in contrib).

  • Various vcs-svn, git-svn and gitk enhancements and fixes.

  • Various git-gui updates (0.14.0).

  • Update to more modern HP-UX port.

  • The codebase is getting prepared for i18n/l10n; no translated
    strings nor translation mechanism in the code yet, but the strings
    are being marked for l10n.

  • The bash completion script can now complete symmetric difference
    for “git diff” command, e.g. “git diff …bra<TAB>”.

  • The default minimum length of abbreviated and unique object names
    can now be configured by setting the core.abbrev configuration

  • “git apply -v” reports offset lines when the patch does not apply at
    the exact location recorded in the diff output.

  • “git config” used to be also known as “git repo-config”, but the old
    name is now officially deprecated.

  • “git checkout –detach <commit>” is a more user friendly synonym for
    “git checkout <commit>^0”.

  • “git checkout” performed on detached HEAD gives a warning and
    advice when the commit being left behind will become unreachable from
    any branch or tag.

  • “git cherry-pick” and “git revert” can be told to use a custom merge
    strategy, similar to “git rebase”.

  • “git cherry-pick” remembers which commit failed to apply when it is
    stopped by conflicts, making it unnecessary to use “commit -c $commit”
    to conclude it.

  • “git cvsimport” bails out immediately when the cvs server cannot be
    reached, without spewing unnecessary error messages that complain about
    the server response it never got.

  • “git fetch” vs “git upload-pack” transfer learned no-done
    protocol extension to save one round-trip after the content
    negotiation is done. This saves one HTTP RPC, reducing the overall
    latency for a trivial fetch.

  • “git fetch” can be told to recursively fetch submodules on-demand.

  • “git grep -f <filename>” learned to treat “-” as “read from the
    standard input stream”.

  • “git grep –no-index” did not honor pathspecs correctly, returning
    paths outside the specified area.

  • “git init” learned the –separate-git-dir option to allow the git
    directory for a new repository created elsewhere and linked via the
    gitdir mechanism. This is primarily to help submodule support later
    to switch between a branch of superproject that has the submodule
    and another that does not.

  • “git log” type commands now understand globbing pathspecs. You
    can say “git log — *.txt” for example.

  • “git log” family of commands learned –cherry and –cherry-mark
    options that can be used to view two diverged branches while omitting
    or highlighting equivalent changes that appear on both sides of a
    symmetric difference (e.g. “log –cherry A…B”).

  • A lazy “git merge” that didn’t say what to merge used to be an error.
    When run on a branch that has an upstream defined, however, the command
    now merges from the configured upstream.

  • “git mergetool” learned how to drive “beyond compare 3” as well.

  • “git rerere forget” without pathspec used to forget all the saved
    conflicts that relate to the current merge; it now requires you to
    give it pathspecs.

  • “git rev-list –objects $revs — $pathspec” now limits the objects listed
    in its output properly with the pathspec, in preparation for narrow

  • “git push” with no parameters gives better advice messages when
    “tracking” is used as the push.default semantics or there is no remote
    configured yet.

  • A possible value to the “push.default” configuration variable,
    tracking, gained a synonym that more naturally describes what it
    does, upstream.

  • “git rerere” learned a new subcommand “remaining” that is similar to
    “status” and lists the paths that had conflicts which are known to
    rerere, but excludes the paths that have already been marked as
    resolved in the index from its output. “git mergetool” has been
    updated to use this facility.

Also contains various documentation updates.

All of the fixes in the v1.7.4.X maintenance series are included in this
release, unless otherwise noted.

  • “git fetch” from a client that is mostly following the remote
    needlessly told all of its refs to the server for both sides to
    compute the set of objects that need to be transferred efficiently,
    instead of stopping when the server heard enough. In a project with
    many tags, this turns out to be extremely wasteful, especially over
    the smart HTTP transport (sp/maint-{upload,fetch}-pack-stop-early~1).

  • “git fetch” run from a repository that uses the same repository as
    its alternate object store as the repository it is fetching from
    did not tell the server that it already has access to objects
    reachable from the refs in their common alternate object store,
    causing it to fetch unnecessary objects (jc/maint-fetch-alt).

  • “git remote add –mirror” created a configuration that is suitable for
    doing both a mirror fetch and a mirror push at the same time, which
    made little sense. We now warn and require the command line to specify
    either –mirror=fetch or –mirror=push.

Changes since v1.7.5-rc2 are as follows:

Junio C Hamano (3):
      Revert "run-command: prettify -D_FORTIFY_SOURCE workaround"
      Git 1.7.5-rc3

Michael J Gruber (3):
      git.txt: fix list continuation
      t3306,t5304: avoid clock skew issues
      git-svn.txt: Document --mergeinfo

René Scharfe (1):
      archive: document limitation of tar.umask config setting

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s