[ANNOUNCE] Git v2.5.1

From: Junio C Hamano
Date: Fri Aug 28 2015 - 17:12:14 EST

The latest maintenance release Git v2.5.1 is now available at
the usual places.

The tarballs are found at:


The following public repositories all have a copy of the 'v2.5.1'
tag and the 'maint' branch that the tag points at:

url = https://kernel.googlesource.com/pub/scm/git/git
url = git://repo.or.cz/alt-git.git
url = git://git.sourceforge.jp/gitroot/git-core/git.git
url = git://git-core.git.sourceforge.net/gitroot/git-core/git-core
url = https://github.com/gitster/git

Note that code.google.com/ has gone into read-only mode and the
branches and tags there will not be updated.


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


Changes since v2.5.0 are as follows:

Charles Bailey (1):
untracked: fix detection of uname(2) failure

David Aguilar (1):
contrib/subtree: ignore log.date configuration

David Turner (1):
unpack-trees: don't update files with CE_WT_REMOVE set

Eric Sunshine (5):
Documentation/git: drop outdated Cogito reference
Documentation/git-tools: improve discoverability of Git wiki
Documentation/git-tools: fix item text formatting
Documentation/git-tools: drop references to defunct tools
Documentation/git-tools: retire manually-maintained list

Ilya Bobyr (1):
rev-parse --parseopt: allow [*=?!] in argument hints

Jeff King (4):
test-lib: turn off "-x" tracing during chain-lint check
test-lib: disable trace when test is not verbose
clone: add tests for output directory
clone: use computed length in guess_dir_name

Jiang Xin (1):
receive-pack: crash when checking with non-exist HEAD

Jose F. Morales (1):
Mingw: verify both ends of the pipe () call

Junio C Hamano (5):
builtin/send-pack.c: respect user.signingkey
Git 2.4.8
Start preparing for 2.5.1
pull: pass upload_pack only when it was given
Git 2.5.1

Karthik Nayak (1):
Documentation/tag: remove double occurance of "<pattern>"

Matthieu Moy (1):
pull.sh: quote $upload_pack when passing it to git-fetch

Mike Hommey (1):
fast-import: do less work when given "from" matches current branch head

Nguyán ThÃi Ngác Duy (1):
setup: set env $GIT_WORK_TREE when work tree is set, like $GIT_DIR

Simon A. Eugster (1):
checkout: document subtlety around --ours/--theirs

Stefan Beller (3):
parse-options: align curly braces for all options
add: remove dead code
transport-helper: die on errors reading refs.

Thomas Ackermann (1):
typofix for index-format.txt

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/