Home Explore Blog CI



git

3rd chunk of `Documentation/RelNotes/1.8.2.adoc`
8335867d4387de30b4159313d8c74e602be2c5b7785940720000000100000fa4
 which made little sense (the
   real ref that is pointed at by the symbolic ref would be updated
   anyway).  Symbolic refs no longer are affected by such a fetch.

 * "git format-patch" now detects more cases in which a whole branch
   is being exported, and uses the description for the branch, when
   asked to write a cover letter for the series.

 * "git format-patch" learned "-v $count" option, and prepends a
   string "v$count-" to the names of its output files, and also
   automatically sets the subject prefix to "PATCH v$count". This
   allows patches from rerolled series to be stored under different
   names and makes it easier to reuse cover letter messages.

 * "git log" and friends can be told with --use-mailmap option to
   rewrite the names and email addresses of people using the mailmap
   mechanism.

 * "git log --cc --graph" now shows the combined diff output with the
   ancestry graph.

 * "git log --grep=<pattern>" honors i18n.logoutputencoding to look
   for the pattern after fixing the log message to the specified
   encoding.

 * "git mergetool" and "git difftool" learned to list the available
   tool backends in a more consistent manner.

 * "git mergetool" is aware of TortoiseGitMerge now and uses it over
   TortoiseMerge when available.

 * "git push" now requires "-f" to update a tag, even if it is a
   fast-forward, as tags are meant to be fixed points.

 * Error messages from "git push" when it stops to prevent remote refs
   from getting overwritten by mistake have been improved to explain
   various situations separately.

 * "git push" will stop without doing anything if the new "pre-push"
   hook exists and exits with a failure.

 * When "git rebase" fails to generate patches to be applied (e.g. due
   to oom), it failed to detect the failure and instead behaved as if
   there were nothing to do.  A workaround to use a temporary file has
   been applied, but we probably would want to revisit this later, as
   it hurts the common case of not failing at all.

 * Input and preconditions to "git reset" has been loosened where
   appropriate.  "git reset $fromtree Makefile" requires $fromtree to
   be any tree (it used to require it to be a commit), for example.
   "git reset" (without options or parameters) used to error out when
   you do not have any commits in your history, but it now gives you
   an empty index (to match non-existent commit you are not even on).

 * "git status" says what branch is being bisected or rebased when
   able, not just "bisecting" or "rebasing".

 * "git submodule" started learning a new mode to integrate with the
   tip of the remote branch (as opposed to integrating with the commit
   recorded in the superproject's gitlink).

 * "git upload-pack" which implements the service "ls-remote" and
   "fetch" talk to can be told to hide ref hierarchies the server
   side internally uses (and that clients have no business learning
   about) with transfer.hiderefs configuration.


Foreign Interface

 * "git fast-export" has been updated for its use in the context of
   the remote helper interface.

 * A new remote helper to interact with bzr has been added to contrib/.

 * "git p4" got various bugfixes around its branch handling.  It is
   also made usable with Python 2.4/2.5.  In addition, its various
   portability issues for Cygwin have been addressed.

 * The remote helper to interact with Hg in contrib/ has seen a few
   fixes.


Performance, Internal Implementation, etc.

 * "git fsck" has been taught to be pickier about entries in tree
   objects that should not be there, e.g. ".", ".git", and "..".

 * Matching paths with common forms of pathspecs that contain wildcard
   characters has been optimized further.

 * We stopped paying attention to $GIT_CONFIG environment that points
   at a single configuration file from any command other than "git config"
   quite a while ago, but "git clone" internally set, exported, and
   then unexported the variable during its operation

Title: Git Updates and Enhancements
Summary
This release of Git includes various updates and enhancements, such as improvements to 'git format-patch', 'git log', and 'git push' commands, as well as new features for 'git mergetool', 'git difftool', and 'git rebase'. Additionally, there are changes to the handling of symbolic refs, mailmap files, and submodule integration, as well as performance optimizations and bugfixes for various remote helpers and internal implementations.