[ANNOUNCE] Git v2.8.4

2016-06-06 Thread Junio C Hamano
The latest maintenance release Git v2.8.4 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.8.4'
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.8.4 Release Notes


Fixes since v2.8.3
--

 * Documentation for "git merge --verify-signatures" has been updated
   to clarify that the signature of only the commit at the tip is
   verified.  Also the phrasing used for signature and key validity is
   adjusted to align with that used by OpenPGP.

 * On Windows, .git and optionally any files whose name starts with a
   dot are now marked as hidden, with a core.hideDotFiles knob to
   customize this behaviour.

 * Portability enhancement for "rebase -i" to help platforms whose
   shell does not like "for i in " (which is not POSIX-kosher).

 * "git fsck" learned to catch NUL byte in a commit object as
   potential error and warn.

 * CI test was taught to build documentation pages.

 * Many 'linkgit:' references were broken,
   which are all fixed with this.

 * "git describe --contains" often made a hard-to-justify choice of
   tag to give name to a given commit, because it tried to come up
   with a name with smallest number of hops from a tag, causing an old
   commit whose close descendant that is recently tagged were not
   described with respect to an old tag but with a newer tag.  It did
   not help that its computation of "hop" count was further tweaked to
   penalize being on a side branch of a merge.  The logic has been
   updated to favor using the tag with the oldest tagger date, which
   is a lot easier to explain to the end users: "We describe a commit
   in terms of the (chronologically) oldest tag that contains the
   commit."

 * Running tests with '-x' option to trace the individual command
   executions is a useful way to debug test scripts, but some tests
   that capture the standard error stream and check what the command
   said can be broken with the trace output mixed in.  When running
   our tests under "bash", however, we can redirect the trace output
   to another file descriptor to keep the standard error of programs
   being tested intact.

 * "http.cookieFile" configuration variable clearly wants a pathname,
   but we forgot to treat it as such by e.g. applying tilde expansion.

 * When de-initialising all submodules, "git submodule deinit" gave a
   faulty recommendation to use "git submodule deinit .", which would
   result in a strange error message in a pathological corner case.
   This has been corrected to suggest "submodule deinit --all" instead.

 * Many commands normalize command line arguments from NFD to NFC
   variant of UTF-8 on OSX, but commands in the "diff" family did
   not, causing "git diff $path" to complain that no such path is
   known to Git.  They have been taught to do the normalization.

 * A couple of bugs around core.autocrlf have been fixed.

 * "git difftool" learned to handle unmerged paths correctly in
   dir-diff mode.

 * The "are we talking with TTY, doing an interactive session?"
   detection has been updated to work better for "Git for Windows".


Also contains other minor documentation updates and code clean-ups.



Changes since v2.8.3 are as follows:

Alexander Rinass (1):
  diff: run arguments through precompose_argv

Armin Kunaschik (1):
  t4151: make sure argument to 'test -z' is given

Brian Norris (3):
  Documentation: config: improve word ordering for http.cookieFile
  http: expand http.cookieFile as a path
  config: consistently format $variables in monospaced font

David Aguilar (2):
  difftool: initialize variables for readability
  difftool: handle unmerged files in dir-diff mode

Jeff King (3):
  rebase--interactive: avoid empty list in shell for-loop
  test-lib: set BASH_XTRACEFD automatically
  archive-tar: convert snprintf to xsnprintf

Johannes Schindelin (3):
  name-rev: include taggerdate in considering the best name
  mingw: introduce the 'core.hideDotFiles' setting
  mingw: remove unnecessary definition

Junio C Hamano (9):
  fsck_commit_buffer(): do not special case the last validation
  config: describe 'pathname' value type
  test-lib-functions.sh: remove misleading comment on test_seq
  test-lib-functions.sh: rewrite test_seq without Perl
  Documentation: fix linkgit references
  fsck: detect and warn a commit with embedded NUL
  Start preparing for 2.8.4
  More topics for 2.8.4

[ANNOUNCE] Git v2.8.4

2016-06-06 Thread Junio C Hamano
The latest maintenance release Git v2.8.4 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.8.4'
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.8.4 Release Notes


Fixes since v2.8.3
--

 * Documentation for "git merge --verify-signatures" has been updated
   to clarify that the signature of only the commit at the tip is
   verified.  Also the phrasing used for signature and key validity is
   adjusted to align with that used by OpenPGP.

 * On Windows, .git and optionally any files whose name starts with a
   dot are now marked as hidden, with a core.hideDotFiles knob to
   customize this behaviour.

 * Portability enhancement for "rebase -i" to help platforms whose
   shell does not like "for i in " (which is not POSIX-kosher).

 * "git fsck" learned to catch NUL byte in a commit object as
   potential error and warn.

 * CI test was taught to build documentation pages.

 * Many 'linkgit:' references were broken,
   which are all fixed with this.

 * "git describe --contains" often made a hard-to-justify choice of
   tag to give name to a given commit, because it tried to come up
   with a name with smallest number of hops from a tag, causing an old
   commit whose close descendant that is recently tagged were not
   described with respect to an old tag but with a newer tag.  It did
   not help that its computation of "hop" count was further tweaked to
   penalize being on a side branch of a merge.  The logic has been
   updated to favor using the tag with the oldest tagger date, which
   is a lot easier to explain to the end users: "We describe a commit
   in terms of the (chronologically) oldest tag that contains the
   commit."

 * Running tests with '-x' option to trace the individual command
   executions is a useful way to debug test scripts, but some tests
   that capture the standard error stream and check what the command
   said can be broken with the trace output mixed in.  When running
   our tests under "bash", however, we can redirect the trace output
   to another file descriptor to keep the standard error of programs
   being tested intact.

 * "http.cookieFile" configuration variable clearly wants a pathname,
   but we forgot to treat it as such by e.g. applying tilde expansion.

 * When de-initialising all submodules, "git submodule deinit" gave a
   faulty recommendation to use "git submodule deinit .", which would
   result in a strange error message in a pathological corner case.
   This has been corrected to suggest "submodule deinit --all" instead.

 * Many commands normalize command line arguments from NFD to NFC
   variant of UTF-8 on OSX, but commands in the "diff" family did
   not, causing "git diff $path" to complain that no such path is
   known to Git.  They have been taught to do the normalization.

 * A couple of bugs around core.autocrlf have been fixed.

 * "git difftool" learned to handle unmerged paths correctly in
   dir-diff mode.

 * The "are we talking with TTY, doing an interactive session?"
   detection has been updated to work better for "Git for Windows".


Also contains other minor documentation updates and code clean-ups.



Changes since v2.8.3 are as follows:

Alexander Rinass (1):
  diff: run arguments through precompose_argv

Armin Kunaschik (1):
  t4151: make sure argument to 'test -z' is given

Brian Norris (3):
  Documentation: config: improve word ordering for http.cookieFile
  http: expand http.cookieFile as a path
  config: consistently format $variables in monospaced font

David Aguilar (2):
  difftool: initialize variables for readability
  difftool: handle unmerged files in dir-diff mode

Jeff King (3):
  rebase--interactive: avoid empty list in shell for-loop
  test-lib: set BASH_XTRACEFD automatically
  archive-tar: convert snprintf to xsnprintf

Johannes Schindelin (3):
  name-rev: include taggerdate in considering the best name
  mingw: introduce the 'core.hideDotFiles' setting
  mingw: remove unnecessary definition

Junio C Hamano (9):
  fsck_commit_buffer(): do not special case the last validation
  config: describe 'pathname' value type
  test-lib-functions.sh: remove misleading comment on test_seq
  test-lib-functions.sh: rewrite test_seq without Perl
  Documentation: fix linkgit references
  fsck: detect and warn a commit with embedded NUL
  Start preparing for 2.8.4
  More topics for 2.8.4