[ANNOUNCE] Git v2.9.1
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jul 11, 2016, 20:13 UTC
- Message-ID
- <xmqqbn247x1f.fsf@gitster.mtv.corp.google.com>
The latest maintenance release Git v2.9.1 is now available at the usual places. This release includes fixes to two bugs that have been reported on the list recently, among other changes:
- v2.9.0 changed cloning of submodules in a top-level superproject that was cloned shallowly to explicitly ask for the exact commit bound at the superproject, which many instances of servers are not yet prepared to handle (the feature appeared in a few releases ago but the server operators may not have enabled it yet).
- "git bisect" at the end tries to give something similar to an output from "git show --raw" for the found culprit, but the step was broken due to an internal API change.
The tarballs are found at:
https://www.kernel.org/pub/software/scm/git/
The following public repositories all have a copy of the 'v2.9.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
----------------------------------------------------------------
Git v2.9.1 Release Notes ========================
Fixes since v2.9 ----------------
* When "git daemon" is run without --[init-]timeout specified, a connection from a client that silently goes offline can hang around for a long time, wasting resources. The socket-level KEEPALIVE has been enabled to allow the OS to notice such failed connections.
* The commands in `git log` family take %C(auto) in a custom format string. This unconditionally turned the color on, ignoring --no-color or with --color=auto when the output is not connected to a tty; this was corrected to make the format truly behave as "auto".
* "git rev-list --count" whose walk-length is limited with "-n" option did not work well with the counting optimized to look at the bitmap index.
* "git show -W" (extend hunks to cover the entire function, delimited by lines that match the "funcname" pattern) used to show the entire file when a change added an entire function at the end of the file, which has been fixed.
* The documentation set has been updated so that literal commands, configuration variables and environment variables are consistently typeset in fixed-width font and bold in manpages.
* "git svn propset" subcommand that was added in 2.3 days is documented now.
* The documentation tries to consistently spell "GPG"; when referring to the specific program name, "gpg" is used.
* "git reflog" stopped upon seeing an entry that denotes a branch creation event (aka "unborn"), which made it appear as if the reflog was truncated.
* The git-prompt scriptlet (in contrib/) was not friendly with those who uses "set -u", which has been fixed.
* A codepath that used alloca(3) to place an unbounded amount of data on the stack has been updated to avoid doing so.
* "git update-index --add --chmod=+x file" may be usable as an escape hatch, but not a friendly thing to force for people who do need to use it regularly. "git add --chmod=+x file" can be used instead.
* Build improvements for gnome-keyring (in contrib/)
* "git status" used to say "working directory" when it meant "working tree".
* Comments about misbehaving FreeBSD shells have been clarified with the version number (9.x and before are broken, newer ones are OK).
* "git cherry-pick A" worked on an unborn branch, but "git cherry-pick A..B" didn't.
* "git add -i/-p" learned to honor diff.compactionHeuristic experimental knob, so that the user can work on the same hunk split as "git diff" output.
* "log --graph --format=" learned that "%>|(N)" specifies the width relative to the terminal's left edge, not relative to the area to draw text that is to the right of the ancestry-graph section. It also now accepts negative N that means the column limit is relative to the right border.
* The ownership rule for the piece of memory that hold references to be fetched in "git fetch" was screwy, which has been cleaned up.
* "git bisect" makes an internal call to "git diff-tree" when bisection finds the culprit, but this call did not initialize the data structure to pass to the diff-tree API correctly.
* Formats of the various data (and how to validate them) where we use GPG signature have been documented.
* Fix an unintended regression in v2.9 that breaks "clone --depth" that recurses down to submodules by forcing the submodules to also be cloned shallowly, which many server instances that host upstream of the submodules are not prepared for.
* Fix unnecessarily waste in the idiomatic use of ': ${VAR=default}'
to set the default value, without enclosing it in double quotes.* Some platform-specific code had non-ANSI strict declarations of C functions that do not take any parameters, which has been corrected.
* The internal code used to show local timezone offset is not prepared to handle timestamps beyond year 2100, and gave a bogus offset value to the caller. Use a more benign looking +0000 instead and let "git log" going in such a case, instead of aborting.
* One among four invocations of readlink(1) in our test suite has been rewritten so that the test can run on systems without the command (others are in valgrind test framework and t9802).
* t/perf needs /usr/bin/time with GNU extension; the invocation of it is updated to "gtime" on Darwin.
* A bug, which caused "git p4" while running under verbose mode to report paths that are omitted due to branch prefix incorrectly, has been fixed; the command said "Ignoring file outside of prefix" for paths that are _inside_.
* The top level documentation "git help git" still pointed at the documentation set hosted at now-defunct google-code repository. Update it to point to https://git.github.io/htmldocs/git.html instead.
Also contains minor documentation updates and code clean-ups.
----------------------------------------------------------------
Changes since v2.9.0 are as follows:
Alfred Perlstein (1):
git-svn: document the 'git svn propset' commandAndrew Oakley (1):
git-p4: correct hasBranchPrefix verbose outputArmin Kunaschik (1):
t7800: readlink may not be availableCharles Bailey (1):
t7810: fix duplicated test titleDave Nicolson (1):
Documentation: GPG capitalizationDavid Turner (1):
mailmap: use main email address for dturnerEd Maste (1):
rebase: update comment about FreeBSD /bin/shEdward Thomson (2):
format_commit_message: honor `color=auto` for `%C(auto)`
add: add --chmod=+x / --chmod=-x optionsEric Wong (1):
daemon: enable SO_KEEPALIVE for all socketsHeiko Becker (1):
gnome-keyring: Don't hard-code pkg-config executableJeff King (9):
rev-list: "adjust" results of "--count --use-bitmap-index -n"
rev-list: disable bitmaps when "-n" is used with listing objects
tree-diff: avoid alloca for large allocations
fetch: document that pruning happens before fetching
add--interactive: respect diff.compactionHeuristic
bisect: always call setup_revisions after init_revisions
t0006: rename test-date's "show" to "relative"
t0006: test various date formats
local_tzoffset: detect errors from tm_to_time_tJohannes Schindelin (3):
mingw: let the build succeed with DEVELOPER=1
perf: accommodate for MacOSX
t2300: "git --exec-path" is not usable in $PATH on Windows as-isJonathan Nieder (1):
doc: git-htmldocs.googlecode.com is no moreJosef Kufner (1):
pretty: pass graph width to pretty formatting for use in '%>|(N)'Junio C Hamano (5):
blame, line-log: do not loop around deref_tag()
clone: do not let --depth imply --shallow-submodules
Start preparing for 2.9.1
More fixes for 2.9.1
Git 2.9.1Keith McGuigan (1):
builtin/fetch.c: don't free remote->name after fetchLE Manh Cuong (1):
sh-setup: enclose setting of ${VAR=default} in double-quotesLars Vogel (1):
Use "working tree" instead of "working directory" for git statusMichael J Gruber (5):
cherry-pick: allow to pick to unborn branches
Documentation/technical: describe signature formats
Documentation/technical: signed tag format
Documentation/technical: signed commit format
Documentation/technical: signed merge tag formatNguyễn Thái Ngọc Duy (1):
pretty.c: support <direction>|(<negative number>) formsPeter Colberg (2):
refs.h: fix misspelt "occurred" in a comment
config.c: fix misspelt "occurred" in an error messagePranit Bauva (1):
strbuf: describe the return value of strbuf_read_fileRamsay Jones (1):
regex: fix a SIZE_MAX macro redefinition warningRené Scharfe (9):
t4051: rewrite, add more tests
xdiff: factor out match_func_rec()
xdiff: handle appended chunks better with -W
xdiff: ignore empty lines before added functions with -W
xdiff: -W: don't include common trailing empty lines in context
xdiff: don't trim common tail with -W
t7810: add test for grep -W and trailing empty context lines
grep: -W: don't extend context to trailing empty lines
xdiff: fix merging of appended hunk with -WSZEDER Gábor (1):
reflog: continue walking the reflog past root commitsStefan Beller (1):
t5614: don't use subshellsTom Russello (4):
doc: clearer rule about formatting literals
doc: change environment variables format
doc: more consistency in environment variables format
doc: change configuration variables formatVille Skyttä (1):
git-prompt.sh: Don't error on null ${ZSH,BASH}_VERSION, $short_sha