Git v2.5.1 Release Notes ======================== Fixes since v2.5 ---------------- * Running an aliased command from a subdirectory when the .git thing in the working tree is a gitfile pointing elsewhere did not work. * Often a fast-import stream builds a new commit on top of the previous commit it built, and it often unconditionally emits a "from" command to specify the first parent, which can be omitted in such a case. This caused fast-import to forget the tree of the previous commit and then re-read it from scratch, which was inefficient. Optimize for this common case. * The "rev-parse --parseopt" mode parsed the option specification and the argument hint in a strange way to allow '=' and other special characters in the option name while forbidding them from the argument hint. This made it impossible to define an option like "--pair <key>=<value>" with "pair=key=value" specification, which instead would have defined a "--pair=key <value>" option. * A "rebase" replays changes of the local branch on top of something else, as such they are placed in stage #3 and referred to as "theirs", while the changes in the new base, typically a foreign work, are placed in stage #2 and referred to as "ours". Clarify the "checkout --ours/--theirs". * An experimental "untracked cache" feature used uname(2) in a slightly unportable way. * "sparse checkout" misbehaved for a path that is excluded from the checkout when switching between branches that differ at the path. * The low-level "git send-pack" did not honor 'user.signingkey' configuration variable when sending a signed-push. * An attempt to delete a ref by pushing into a repository whose HEAD symbolic reference points at an unborn branch that cannot be created due to ref D/F conflict (e.g. refs/heads/a/b exists, HEAD points at refs/heads/a) failed. * "git subtree" (in contrib/) depended on "git log" output to be stable, which was a no-no. Apply a workaround to force a particular date format. * "git clone $URL" in recent releases of Git contains a regression in the code that invents a new repository name incorrectly based on the $URL. This has been corrected. (merge db2e220 jk/guess-repo-name-regression-fix later to maint). * Running tests with the "-x" option to make them verbose had some unpleasant interactions with other features of the test suite. (merge 9b5fe78 jk/test-with-x later to maint). * "git pull" in recent releases of Git has a regression in the code that allows custom path to the --upload-pack=<program>. This has been corrected. * pipe() emulation used in Git for Windows looked at a wrong variable when checking for an error from an _open_osfhandle() call. Also contains typofixes, documentation updates and trivial code clean-ups.