Home Explore Blog CI



git

4th chunk of `Documentation/RelNotes/1.8.2.adoc`
2dc587e079eaba960474726a56b9540631f5d69bad9b2c8c0000000100000fa0

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

 * "git reset" internals has been reworked and should be faster in
   general. We tried to be careful not to break any behaviour but
   there could be corner cases, especially when running the command
   from a conflicted state, that we may have missed.

 * The implementation of "imap-send" has been updated to reuse xml
   quoting code from http-push codepath, and lost a lot of unused
   code.

 * There is a simple-minded checker for the test scripts in t/
   directory to catch most common mistakes (it is not enabled by
   default).

 * You can build with USE_WILDMATCH=YesPlease to use a replacement
   implementation of pattern matching logic used for pathname-like
   things, e.g. refnames and paths in the repository.  This new
   implementation is not expected change the existing behaviour of Git
   in this release, except for "git for-each-ref" where you can now
   say "refs/**/master" and match with both refs/heads/master and
   refs/remotes/origin/master.  We plan to use this new implementation
   in wider places (e.g. "git ls-files '**/Makefile' may find Makefile
   at the top-level, and "git log '**/t*.sh'" may find commits that
   touch a shell script whose name begins with "t" at any level) in
   future versions of Git, but we are not there yet.  By building with
   USE_WILDMATCH, using the resulting Git daily and reporting when you
   find breakages, you can help us get closer to that goal.

 * Some reimplementations of Git do not write all the stat info back
   to the index due to their implementation limitations (e.g. jgit).
   A configuration option can tell Git to ignore changes to most of
   the stat fields and only pay attention to mtime and size, which
   these implementations can reliably update.  This can be used to
   avoid excessive revalidation of contents.

 * Some platforms ship with old version of expat where xmlparse.h
   needs to be included instead of expat.h; the build procedure has
   been taught about this.

 * "make clean" on platforms that cannot compute header dependencies
   on the fly did not work with implementations of "rm" that do not
   like an empty argument list.

Also contains minor documentation updates and code clean-ups.


Fixes since v1.8.1
------------------

Unless otherwise noted, all the fixes since v1.8.1 in the maintenance
track are contained in this release (see release notes to them for
details).

 * An element on GIT_CEILING_DIRECTORIES list that does not name the
   real path to a directory (i.e. a symbolic link) could have caused
   the GIT_DIR discovery logic to escape the ceiling.

 * When attempting to read the XDG-style $HOME/.config/git/config and
   finding that $HOME/.config/git is a file, we gave a wrong error
   message, instead of treating the case as "a custom config file does
   not exist there" and moving on.

 * The behaviour visible to the end users was confusing, when they
   attempt to kill a process spawned in the editor that was in turn
   launched by Git

Title: Git Updates and Improvements
Summary
This release includes updates to Git's remote helpers, performance optimizations, and internal implementation changes, such as improvements to 'git fast-export', 'git p4', and 'git fsck'. Additionally, there are fixes for various issues, including bugs in the GIT_DIR discovery logic, config file handling, and process spawning. The release also contains minor documentation updates and code clean-ups.