Home Explore Blog CI



git

5th chunk of `Documentation/RelNotes/1.8.2.adoc`
b123839feb07b8e4c943f2e54d4777ea14247f86dcbfdbe50000000100000fa9
 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 with SIGINT (or SIGQUIT), as Git would catch that
   signal and die.  We ignore these signals now.
   (merge 0398fc34 pf/editor-ignore-sigint later to maint).

 * A child process that was killed by a signal (e.g. SIGINT) was
   reported in an inconsistent way depending on how the process was
   spawned by us, with or without a shell in between.

 * After failing to create a temporary file using mkstemp(), failing
   pathname was not reported correctly on some platforms.

 * We used to stuff "user@" and then append what we read from
   /etc/mailname to come up with a default e-mail ident, but a bug
   lost the "user@" part.

 * The attribute mechanism didn't allow limiting attributes to be
   applied to only a single directory itself with "path/" like the
   exclude mechanism does.  The initial implementation of this that
   was merged to 'maint' and 1.8.1.2 was with a severe performance
   degradations and needs to merge a fix-up topic.

 * The smart HTTP clients forgot to verify the content-type that comes
   back from the server side to make sure that the request is being
   handled properly.

 * "git am" did not parse datestamp correctly from Hg generated patch,
   when it is run in a locale outside C (or en).

 * "git apply" misbehaved when fixing whitespace breakages by removing
   excess trailing blank lines.

 * "git apply --summary" has been taught to make sure the similarity
   value shown in its output is sensible, even when the input had a
   bogus value.

 * A tar archive created by "git archive" recorded a directory in a
   way that made NetBSD's implementation of "tar" sometimes unhappy.

 * "git archive" did not record uncompressed size in the header when
   streaming a zip archive, which confused some implementations of unzip.

 * "git archive" did not parse configuration values in tar.* namespace
   correctly.
   (merge b3873c3 jk/config-parsing-cleanup later to maint).

 * Attempt to "branch --edit-description" an existing branch, while
   being on a detached HEAD, errored out.

 * "git clean" showed what it was going to do, but sometimes end up
   finding that it was not allowed to do so, which resulted in a
   confusing output (e.g. after saying that it will remove an
   untracked directory, it found an embedded git repository there
   which it is not allowed to remove).  It now performs the actions
   and then reports the outcome more faithfully.

 * When "git clone --separate-git-dir=$over_there" is interrupted, it
   failed to remove the real location of the $GIT_DIR it created.
   This was most visible when interrupting a submodule update.

 * "git cvsimport" mishandled timestamps at DST boundary.

 * We used to have an arbitrary 32 limit for combined diff input,
   resulting in incorrect number of leading colons shown when showing
   the "--raw --cc" output.

 * "git fetch --depth" was broken in at least three ways.  The
   resulting history was deeper than specified by one commit, it was
   unclear how to wipe the shallowness

Title: Git Bug Fixes and Improvements
Summary
This release addresses various bugs and issues in Git, including problems with Git's directory discovery logic, config file handling, and process spawning. Additionally, fixes are included for issues with 'git am', 'git apply', 'git archive', 'git clean', 'git clone', and other commands, as well as improvements to the attribute mechanism, smart HTTP clients, and Combined Diff input.