Home Explore Blog CI



git

2nd chunk of `Documentation/RelNotes/1.7.5.adoc`
8f7639734b47a46cfc893ae3d5783a26405aa64eefedaeab0000000100000e4c
 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
   clones.

 * "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.


Fixes since v1.7.4
------------------

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.

Title: Git v1.7.5 Release Notes (Continued)
Summary
The Git v1.7.5 release includes additional enhancements and fixes, such as improvements to git fetch, git grep, git init, and git log, as well as new options and subcommands for various commands, and fixes for issues with git fetch, git remote, and other commands.