[ANNOUNCE] Git v2.13.2

From: Junio C Hamano
Date: Sat Jun 24 2017 - 19:28:07 EST


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

The tarballs are found at:

https://www.kernel.org/pub/software/scm/git/

The following public repositories all have a copy of the 'v2.13.2'
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 = https://github.com/gitster/git

----------------------------------------------------------------

Git v2.13.2 Release Notes
=========================

Fixes since v2.13.1
-------------------

* The "collision detecting" SHA-1 implementation shipped with 2.13.1
was still broken on some platforms. Update to the upstream code
again to take their fix.

* "git checkout --recurse-submodules" did not quite work with a
submodule that itself has submodules.

* Introduce the BUG() macro to improve die("BUG: ...").

* The "run-command" API implementation has been made more robust
against dead-locking in a threaded environment.

* A recent update to t5545-push-options.sh started skipping all the
tests in the script when a web server testing is disabled or
unavailable, not just the ones that require a web server. Non HTTP
tests have been salvaged to always run in this script.

* "git clean -d" used to clean directories that has ignored files,
even though the command should not lose ignored ones without "-x".
"git status --ignored" did not list ignored and untracked files
without "-uall". These have been corrected.

* The timestamp of the index file is now taken after the file is
closed, to help Windows, on which a stale timestamp is reported by
fstat() on a file that is opened for writing and data was written
but not yet closed.

* "git pull --rebase --autostash" didn't auto-stash when the local history
fast-forwards to the upstream.

* "git describe --contains" penalized light-weight tags so much that
they were almost never considered. Instead, give them about the
same chance to be considered as an annotated tag that is the same
age as the underlying commit would.

* The result from "git diff" that compares two blobs, e.g. "git diff
$commit1:$path $commit2:$path", used to be shown with the full
object name as given on the command line, but it is more natural to
use the $path in the output and use it to look up .gitattributes.

* A flaky test has been corrected.

* Help contributors that visit us at GitHub.

* "git stash push <pathspec>" did not work from a subdirectory at all.
Bugfix for a topic in v2.13

Also contains various documentation updates and code clean-ups.

----------------------------------------------------------------

Changes since v2.13.1 are as follows:

Adam Dinwoodie (1):
docs: fix formatting and grammar

Brandon Williams (12):
t5550: use write_script to generate post-update hook
t0061: run_command executes scripts without a #! line
run-command: prepare command before forking
run-command: use the async-signal-safe execv instead of execvp
string-list: add string_list_remove function
run-command: prepare child environment before forking
run-command: don't die in child when duping /dev/null
run-command: eliminate calls to error handling functions in child
run-command: handle dup2 and close errors in child
run-command: add note about forking and threading
run-command: expose is_executable function
run-command: restrict PATH search to executable files

Dennis Kaarsemaker (1):
send-email: Net::SMTP::SSL is obsolete, use only when necessary

Eric Wong (1):
run-command: block signals between fork and execve

Jeff Hostetler (1):
read-cache: close index.lock in do_write_index

Jeff King (23):
usage.c: add BUG() function
setup_git_env: convert die("BUG") to BUG()
config: complain about --local outside of a git repo
usage.c: drop set_error_handle()
handle_revision_arg: reset "dotdot" consistently
handle_revision_arg: simplify commit reference lookups
handle_revision_arg: stop using "dotdot" as a generic pointer
handle_revision_arg: hoist ".." check out of range parsing
handle_revision_arg: add handle_dotdot() helper
sha1_name: consistently refer to object_context as "oc"
get_sha1_with_context: always initialize oc->symlink_path
get_sha1_with_context: dynamically allocate oc->path
t4063: add tests of direct blob diffs
handle_revision_arg: record modes for "a..b" endpoints
handle_revision_arg: record paths for pending objects
diff: pass whole pending entry in blobinfo
diff: use the word "path" instead of "name" for blobs
diff: use pending "path" if it is available
diff: use blob path for blob/file diffs
connect.c: fix leak in parse_one_symref_info()
remote: drop free_refspecs() function
t5313: make extended-table test more deterministic
sha1dc: ignore indent-with-non-tab whitespace violations

Jonathan Nieder (1):
send-email: Net::SMTP::starttls was introduced in v2.34

Junio C Hamano (6):
name-rev: refactor logic to see if a new candidate is a better name
name-rev: favor describing with tags and use committer date to tiebreak
test: allow skipping the remainder
diff-tree: update stale in-code comments
Prepare for 2.13.2
Git 2.13.2

Kyle J. McKay (1):
t5100: add some more mailinfo tests

Lars Schneider (1):
Configure Git contribution guidelines for github.com

Patrick Steinhardt (1):
git-stash: fix pushing stash with pathspec from subdir

Ramsay Jones (1):
usage: add NORETURN to BUG() function definitions

Renà Scharfe (5):
p0004: simplify calls of test-lazy-init-name-hash
p0004: avoid using pipes
p0004: use test_perf
p0004: don't abort if multi-threaded is too slow
p0004: don't error out if test repo is too small

Rikard Falkeborn (1):
completion: add completions for git config commit

SZEDER GÃbor (6):
revision.h: turn rev_info.early_output back into an unsigned int
revision.c: stricter parsing of '--no-{min,max}-parents'
revision.c: stricter parsing of '--early-output'
revision.c: use skip_prefix() in handle_revision_opt()
revision.c: use skip_prefix() in handle_revision_pseudo_opt()
docs/pretty-formats: stress that %- removes all preceding line-feeds

Sahil Dua (1):
t3200: add test for single parameter passed to -m option

Samuel Lijin (6):
t7300: clean -d should skip dirs with ignored files
t7061: status --ignored should search untracked dirs
dir: recurse into untracked dirs for ignored files
dir: hide untracked contents of untracked dirs
dir: expose cmp_name() and check_contains()
clean: teach clean -d to preserve ignored paths

Stefan Beller (5):
submodule_move_head: reuse child_process structure for futher commands
submodule: avoid auto-discovery in new working tree manipulator code
submodule: properly recurse for read-tree and checkout
t5545: enhance test coverage when no http server is installed
Documentation/git-rm: correct submodule description

Tyler Brazier (1):
pull: ff --rebase --autostash works in dirty repo

Ãvar ArnfjÃrà Bjarmason (2):
wildmatch test: remove redundant duplicate test
sha1dc: update from upstream

ÅtÄpÃn NÄmec (1):
doc: git-reset: fix a trivial typo