[ANNOUNCE] Git v2.15.0-rc1

2017-10-11 Thread Junio C Hamano
A release candidate Git v2.15.0-rc1 is now available for testing
at the usual places.  It is comprised of 721 non-merge commits
since v2.14.0, contributed by 72 people, 22 of which are new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.15.0-rc1' tag and the 'master' 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

New contributors whose contributions weren't in v2.14.0 are as follows.
Welcome to the Git development community!

  Ann T Ropea, Daniel Watkins, Derrick Stolee, Dimitrios
  Christidis, Eric Rannaud, Evan Zacks, Hielke Christian Braun,
  Ian Campbell, Ilya Kantor, Jameson Miller, Job Snijders, Joel
  Teichroeb, joernchen, Łukasz Gryglicki, Manav Rathi, Martin
  Ågren, Michael Forney, Patryk Obara, Randall S. Becker, Ross
  Kabus, Taylor Blau, and Urs Thuermann.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Andreas Heiduk,
  Anthony Sottile, Ben Boeckel, Brandon Casey, Brandon Williams,
  brian m. carlson, Christian Couder, Eric Blake, Han-Wen Nienhuys,
  Heiko Voigt, Jean-Noel Avila, Jeff Hostetler, Jeff King, Johannes
  Schindelin, Johannes Sixt, Jonathan Nieder, Jonathan Tan,
  Junio C Hamano, Kaartic Sivaraam, Kevin Daudt, Kevin Willford,
  Lars Schneider, Martin Koegler, Matthieu Moy, Max Kirillov,
  Michael Haggerty, Michael J Gruber, Nguyễn Thái Ngọc Duy,
  Nicolas Morey-Chaisemartin, Øystein Walle, Paolo Bonzini,
  Pat Thoyts, Philip Oakley, Phillip Wood, Raman Gupta, Ramsay
  Jones, René Scharfe, Sahil Dua, Santiago Torres, Stefan Beller,
  Stephan Beyer, Takashi Iwai, Thomas Braun, Thomas Gummerer,
  Todd Zullinger, Tom G. Christensen, Torsten Bögershausen,
  and William Duclot.



Git 2.15 Release Notes (draft)
==

Backward compatibility notes and other notable changes.

 * Use of an empty string as a pathspec element that is used for
   'everything matches' is still warned and Git asks users to use a
   more explicit '.' for that instead.  The hope is that existing
   users will not mind this change, and eventually the warning can be
   turned into a hard error, upgrading the deprecation into removal of
   this (mis)feature.  That is now scheduled to happen in Git v2.16,
   the next major release after this one.

 * Git now avoids blindly falling back to ".git" when the setup
   sequence said we are _not_ in Git repository.  A corner case that
   happens to work right now may be broken by a call to BUG().
   We've tried hard to locate such cases and fixed them, but there
   might still be cases that need to be addressed--bug reports are
   greatly appreciated.

 * "branch --set-upstream" that has been deprecated in Git 1.8 has
   finally been retired.


Updates since v2.14
---

UI, Workflows & Features

 * An example that is now obsolete has been removed from a sample hook,
   and an old example in it that added a sign-off manually has been
   improved to use the interpret-trailers command.

 * The advice message given when "git rebase" stops for conflicting
   changes has been improved.

 * The "rerere-train" script (in contrib/) learned the "--overwrite"
   option to allow overwriting existing recorded resolutions.

 * "git contacts" (in contrib/) now lists the address on the
   "Reported-by:" trailer to its output, in addition to those on
   S-o-b: and other trailers, to make it easier to notify (and thank)
   the original bug reporter.

 * "git rebase", especially when it is run by mistake and ends up
   trying to replay many changes, spent long time in silence.  The
   command has been taught to show progress report when it spends
   long time preparing these many changes to replay (which would give
   the user a chance to abort with ^C).

 * "git merge" learned a "--signoff" option to add the Signed-off-by:
   trailer with the committer's name.

 * "git diff" learned to optionally paint new lines that are the same
   as deleted lines elsewhere differently from genuinely new lines.

 * "git interpret-trailers" learned to take the trailer specifications
   from the command line that overrides the configured values.

 * "git interpret-trailers" has been taught a "--parse" and a few
   other options to make it easier for scripts to grab existing
   trailer lines from a commit log message.

 * The "--format=%(trailers)" option "git log" and its friends take
   learned to take the 'unfold' and 'only' modifiers to normalize its
   output, e.g. "git log --format=%(trailers:only,unfold)".

 * &q

[ANNOUNCE] Git v2.15.0-rc0

2017-10-04 Thread Junio C Hamano
An early preview release Git v2.15.0-rc0 is now available for
testing at the usual places.  It is comprised of 672 non-merge
commits since v2.14.0, contributed by 66 people, 20 of which are
new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.15.0-rc0' tag and the 'master' 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

New contributors whose contributions weren't in v2.14.0 are as follows.
Welcome to the Git development community!

  Ann T Ropea, Daniel Watkins, Dimitrios Christidis, Eric Rannaud,
  Evan Zacks, Hielke Christian Braun, Ian Campbell, Ilya Kantor,
  Jameson Miller, Job Snijders, Joel Teichroeb, joernchen,
  Łukasz Gryglicki, Manav Rathi, Martin Ågren, Michael Forney,
  Patryk Obara, Rene Scharfe, Ross Kabus, and Urs Thuermann.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Andreas Heiduk,
  Anthony Sottile, Ben Boeckel, Brandon Casey, Brandon Williams,
  brian m. carlson, Christian Couder, Eric Blake, Han-Wen Nienhuys,
  Heiko Voigt, Jeff Hostetler, Jeff King, Johannes Schindelin,
  Jonathan Nieder, Jonathan Tan, Junio C Hamano, Kaartic Sivaraam,
  Kevin Daudt, Kevin Willford, Lars Schneider, Martin Koegler,
  Matthieu Moy, Max Kirillov, Michael Haggerty, Michael J Gruber,
  Nguyễn Thái Ngọc Duy, Nicolas Morey-Chaisemartin, Øystein
  Walle, Paolo Bonzini, Pat Thoyts, Philip Oakley, Phillip
  Wood, Raman Gupta, Ramsay Jones, René Scharfe, Sahil Dua,
  Santiago Torres, Stefan Beller, Stephan Beyer, Takashi Iwai,
  Thomas Gummerer, Tom G. Christensen, Torsten Bögershausen,
  and William Duclot.



Git 2.15 Release Notes (draft)
==

Backward compatibility notes and other notable changes.

 * Use of an empty string as a pathspec element that is used for
   'everything matches' is still warned and Git asks users to use a
   more explicit '.' for that instead.  The hope is that existing
   users will not mind this change, and eventually the warning can be
   turned into a hard error, upgrading the deprecation into removal of
   this (mis)feature.  That is now scheduled to happen in the upcoming
   release.

 * Git now avoids blindly falling back to ".git" when the setup
   sequence said we are _not_ in Git repository.  A corner case that
   happens to work right now may be broken by a call to die("BUG").
   We've tried hard to locate such cases and fixed them, but there
   might still be cases that need to be addressed--bug reports are
   greatly appreciated.

 * "branch --set-upstream" that has been deprecated in Git 1.8 has
   finally been retired.


Updates since v2.14
---

UI, Workflows & Features

 * An example that is now obsolete has been removed from a sample hook,
   and an old example in it that added a sign-off manually has been
   improved to use the interpret-trailers command.

 * The advice message given when "git rebase" stops for conflicting
   changes has been improved.

 * The "rerere-train" script (in contrib/) learned the "--overwrite"
   option to allow overwriting existing recorded resolutions.

 * "git contacts" (in contrib/) now lists the address on the
   "Reported-by:" trailer to its output, in addition to those on
   S-o-b: and other trailers, to make it easier to notify (and thank)
   the original bug reporter.

 * "git rebase", especially when it is run by mistake and ends up
   trying to replay many changes, spent long time in silence.  The
   command has been taught to show progress report when it spends
   long time preparing these many changes to replay (which would give
   the user a chance to abort with ^C).

 * "git merge" learned a "--signoff" option to add the Signed-off-by:
   trailer with the committer's name.

 * "git diff" learned to optionally paint new lines that are the same
   as deleted lines elsewhere differently from genuinely new lines.

 * "git interpret-trailers" learned to take the trailer specifications
   from the command line that overrides the configured values.

 * "git interpret-trailers" has been taught a "--parse" and a few
   other options to make it easier for scripts to grab existing
   trailer lines from a commit log message.

 * "gitweb" shows a link to visit the 'raw' contents of blbos in the
   history overview page.

 * "[gc] rerereResolved = 5.days" used to be invalid, as the variable
   is defined to take an integer counting the number of days.  It now
   is allowed.

 * The code to acquire a lock on a reference (e.g. while accep

[ANNOUNCE] Git v2.15.0-rc0

2017-10-04 Thread Junio C Hamano
An early preview release Git v2.15.0-rc0 is now available for
testing at the usual places.  It is comprised of 672 non-merge
commits since v2.14.0, contributed by 66 people, 20 of which are
new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.15.0-rc0' tag and the 'master' 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

New contributors whose contributions weren't in v2.14.0 are as follows.
Welcome to the Git development community!

  Ann T Ropea, Daniel Watkins, Dimitrios Christidis, Eric Rannaud,
  Evan Zacks, Hielke Christian Braun, Ian Campbell, Ilya Kantor,
  Jameson Miller, Job Snijders, Joel Teichroeb, joernchen,
  Łukasz Gryglicki, Manav Rathi, Martin Ågren, Michael Forney,
  Patryk Obara, Rene Scharfe, Ross Kabus, and Urs Thuermann.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Andreas Heiduk,
  Anthony Sottile, Ben Boeckel, Brandon Casey, Brandon Williams,
  brian m. carlson, Christian Couder, Eric Blake, Han-Wen Nienhuys,
  Heiko Voigt, Jeff Hostetler, Jeff King, Johannes Schindelin,
  Jonathan Nieder, Jonathan Tan, Junio C Hamano, Kaartic Sivaraam,
  Kevin Daudt, Kevin Willford, Lars Schneider, Martin Koegler,
  Matthieu Moy, Max Kirillov, Michael Haggerty, Michael J Gruber,
  Nguyễn Thái Ngọc Duy, Nicolas Morey-Chaisemartin, Øystein
  Walle, Paolo Bonzini, Pat Thoyts, Philip Oakley, Phillip
  Wood, Raman Gupta, Ramsay Jones, René Scharfe, Sahil Dua,
  Santiago Torres, Stefan Beller, Stephan Beyer, Takashi Iwai,
  Thomas Gummerer, Tom G. Christensen, Torsten Bögershausen,
  and William Duclot.



Git 2.15 Release Notes (draft)
==

Backward compatibility notes and other notable changes.

 * Use of an empty string as a pathspec element that is used for
   'everything matches' is still warned and Git asks users to use a
   more explicit '.' for that instead.  The hope is that existing
   users will not mind this change, and eventually the warning can be
   turned into a hard error, upgrading the deprecation into removal of
   this (mis)feature.  That is now scheduled to happen in the upcoming
   release.

 * Git now avoids blindly falling back to ".git" when the setup
   sequence said we are _not_ in Git repository.  A corner case that
   happens to work right now may be broken by a call to die("BUG").
   We've tried hard to locate such cases and fixed them, but there
   might still be cases that need to be addressed--bug reports are
   greatly appreciated.

 * "branch --set-upstream" that has been deprecated in Git 1.8 has
   finally been retired.


Updates since v2.14
---

UI, Workflows & Features

 * An example that is now obsolete has been removed from a sample hook,
   and an old example in it that added a sign-off manually has been
   improved to use the interpret-trailers command.

 * The advice message given when "git rebase" stops for conflicting
   changes has been improved.

 * The "rerere-train" script (in contrib/) learned the "--overwrite"
   option to allow overwriting existing recorded resolutions.

 * "git contacts" (in contrib/) now lists the address on the
   "Reported-by:" trailer to its output, in addition to those on
   S-o-b: and other trailers, to make it easier to notify (and thank)
   the original bug reporter.

 * "git rebase", especially when it is run by mistake and ends up
   trying to replay many changes, spent long time in silence.  The
   command has been taught to show progress report when it spends
   long time preparing these many changes to replay (which would give
   the user a chance to abort with ^C).

 * "git merge" learned a "--signoff" option to add the Signed-off-by:
   trailer with the committer's name.

 * "git diff" learned to optionally paint new lines that are the same
   as deleted lines elsewhere differently from genuinely new lines.

 * "git interpret-trailers" learned to take the trailer specifications
   from the command line that overrides the configured values.

 * "git interpret-trailers" has been taught a "--parse" and a few
   other options to make it easier for scripts to grab existing
   trailer lines from a commit log message.

 * "gitweb" shows a link to visit the 'raw' contents of blbos in the
   history overview page.

 * "[gc] rerereResolved = 5.days" used to be invalid, as the variable
   is defined to take an integer counting the number of days.  It now
   is allowed.

 * The code to acquire a lock on a reference (e.g. while accep

[ANNOUNCE] Git v2.13.6 and others

2017-09-26 Thread Junio C Hamano
Maintenance releases Git v2.10.5, v2.11.4, v2.12.5 and v2.13.6 are
now available at the usual places.  These are solely about hardening
"git shell" that is used on servers against an unsafe user input,
which "git cvsserver" copes with poorly.  A copy of the release notes
for v2.10.5 is attached at the end of the message, but the notes for
other releases listed above essentially say the same thing.

The tarballs are found at:

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

The following public repositories all have a copy of the 'v2.10.5',
'v2.11.4', 'v2.12.5' and 'v2.13.6' tags and some of them have the
'maint-2.10', 'maint-2.11', 'maint-2.12' and 'maint-2.13' branches
that the tags point at:

  url = https://kernel.googlesource.com/pub/scm/git/git
  url = git://repo.or.cz/alt-git.git
  url = https://github.com/gitster/git

Note that the committed version of the release notes for these
versions all incorrectly mention "git daemon", where they should
have said "git shell".  It has been corrected in the attached copy,
but because the release engineering was done several days in advance
and the tags have already been shared with binary packagers and
others at the git-secur...@googlegroups.com mailing list, these
release tarballs are issued _with_ the known typo to avoid confusion
of having two release tags with different contents.  Sorry about that.



Git v2.10.5 Release Notes
=

Fixes since v2.10.4
---

 * "git cvsserver" no longer is invoked by "git shell" by default,
   as it is old and largely unmaintained.

 * Various Perl scripts did not use safe_pipe_capture() instead of
   backticks, leaving them susceptible to end-user input.  They have
   been corrected.

Credits go to joernchen <joernc...@phenoelit.de> for finding the
unsafe constructs in "git cvsserver", and to Jeff King at GitHub for
finding and fixing instances of the same issue in other scripts.



Changes since v2.10.4 are as follows:

Jeff King (3):
  shell: drop git-cvsserver support by default
  archimport: use safe_pipe_capture for user input
  cvsimport: shell-quote variable used in backticks

Junio C Hamano (3):
  cvsserver: move safe_pipe_capture() to the main package
  cvsserver: use safe_pipe_capture for `constant commands` as well
  Git 2.10.5

joernchen (1):
  cvsserver: use safe_pipe_capture instead of backticks



[ANNOUNCE] Git v2.13.6 and others

2017-09-26 Thread Junio C Hamano
Maintenance releases Git v2.10.5, v2.11.4, v2.12.5 and v2.13.6 are
now available at the usual places.  These are solely about hardening
"git shell" that is used on servers against an unsafe user input,
which "git cvsserver" copes with poorly.  A copy of the release notes
for v2.10.5 is attached at the end of the message, but the notes for
other releases listed above essentially say the same thing.

The tarballs are found at:

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

The following public repositories all have a copy of the 'v2.10.5',
'v2.11.4', 'v2.12.5' and 'v2.13.6' tags and some of them have the
'maint-2.10', 'maint-2.11', 'maint-2.12' and 'maint-2.13' branches
that the tags point at:

  url = https://kernel.googlesource.com/pub/scm/git/git
  url = git://repo.or.cz/alt-git.git
  url = https://github.com/gitster/git

Note that the committed version of the release notes for these
versions all incorrectly mention "git daemon", where they should
have said "git shell".  It has been corrected in the attached copy,
but because the release engineering was done several days in advance
and the tags have already been shared with binary packagers and
others at the git-secur...@googlegroups.com mailing list, these
release tarballs are issued _with_ the known typo to avoid confusion
of having two release tags with different contents.  Sorry about that.



Git v2.10.5 Release Notes
=

Fixes since v2.10.4
---

 * "git cvsserver" no longer is invoked by "git shell" by default,
   as it is old and largely unmaintained.

 * Various Perl scripts did not use safe_pipe_capture() instead of
   backticks, leaving them susceptible to end-user input.  They have
   been corrected.

Credits go to joernchen  for finding the
unsafe constructs in "git cvsserver", and to Jeff King at GitHub for
finding and fixing instances of the same issue in other scripts.



Changes since v2.10.4 are as follows:

Jeff King (3):
  shell: drop git-cvsserver support by default
  archimport: use safe_pipe_capture for user input
  cvsimport: shell-quote variable used in backticks

Junio C Hamano (3):
  cvsserver: move safe_pipe_capture() to the main package
  cvsserver: use safe_pipe_capture for `constant commands` as well
  Git 2.10.5

joernchen (1):
  cvsserver: use safe_pipe_capture instead of backticks



[ANNOUNCE] Git v2.14.2

2017-09-26 Thread Junio C Hamano
 it is old and largely unmaintained.

 * Various Perl scripts did not use safe_pipe_capture() instead of
   backticks, leaving them susceptible to end-user input.  They have
   been corrected.

Also contains various documentation updates and code clean-ups.

Credits go to joernchen <joernc...@phenoelit.de> for finding the
unsafe constructs in "git cvsserver", and to Jeff King at GitHub for
finding and fixing instances of the same issue in other scripts.



Changes since v2.14.1 are as follows:

Andreas Heiduk (2):
  doc: add missing values "none" and "default" for diff.wsErrorHighlight
  doc: clarify "config --bool" behaviour with empty string

Anthony Sottile (1):
  git-grep: correct exit code with --quiet and -L

Brandon Williams (2):
  submodule--helper: teach push-check to handle HEAD
  clone: teach recursive clones to respect -q

Christian Couder (2):
  refs: use skip_prefix() in ref_is_hidden()
  sub-process: print the cmd when a capability is unsupported

Dimitrios Christidis (1):
  fmt-merge-msg: fix coding style

Heiko Voigt (1):
  t5526: fix some broken && chains

Hielke Christian Braun (1):
  gitweb: skip unreadable subdirectories

Jeff King (32):
  t1414: document some reflog-walk oddities
  revision: disallow reflog walking with revs->limited
  log: clarify comment about reflog cycles
  log: do not free parents when walking reflog
  get_revision_1(): replace do-while with an early return
  rev-list: check reflog_info before showing usage
  reflog-walk: stop using fake parents
  reflog-walk: apply --since/--until to reflog dates
  check return value of verify_ref_format()
  docs/for-each-ref: update pointer to color syntax
  t: use test_decode_color rather than literal ANSI codes
  ref-filter: simplify automatic color reset
  ref-filter: abstract ref format into its own struct
  ref-filter: move need_color_reset_at_eol into ref_format
  ref-filter: provide a function for parsing sort options
  ref-filter: make parse_ref_filter_atom a private function
  ref-filter: factor out the parsing of sorting atoms
  ref-filter: pass ref_format struct to atom parsers
  color: check color.ui in git_default_config()
  for-each-ref: load config earlier
  rev-list: pass diffopt->use_colors through to pretty-print
  pretty: respect color settings for %C placeholders
  ref-filter: consult want_color() before emitting colors
  t6018: flesh out empty input/output rev-list tests
  revision: add rev_input_given flag
  rev-list: don't show usage when we see empty ref patterns
  revision: do not fallback to default when rev_input_given is set
  hashcmp: use memcmp instead of open-coded loop
  doc: fix typo in sendemail.identity
  shell: drop git-cvsserver support by default
  archimport: use safe_pipe_capture for user input
  cvsimport: shell-quote variable used in backticks

Johannes Schindelin (2):
  run_processes_parallel: change confusing task_cb convention
  git-gui (MinGW): make use of MSys2's msgfmt

Jonathan Nieder (4):
  vcs-svn: remove more unused prototypes and declarations
  vcs-svn: remove custom mode constants
  vcs-svn: remove repo_delete wrapper function
  vcs-svn: move remaining repo_tree functions to fast_export.h

Jonathan Tan (7):
  fsck: remove redundant parse_tree() invocation
  object: remove "used" field from struct object
  fsck: cleanup unused variable
  Documentation: migrate sub-process docs to header
  sub-process: refactor handshake to common function
  tests: ensure fsck fails on corrupt packfiles
  Doc: clarify that pack-objects makes packs, plural

Junio C Hamano (11):
  http.c: http.sslcert and http.sslkey are both pathnames
  perl/Git.pm: typofix in a comment
  Prepare for 2.14.2
  RelNotes: further fixes for 2.14.2 from the master front
  cvsserver: move safe_pipe_capture() to the main package
  cvsserver: use safe_pipe_capture for `constant commands` as well
  Git 2.10.5
  Git 2.11.4
  Git 2.12.5
  Git 2.13.6
  Git 2.14.2

Kaartic Sivaraam (1):
  commit: check for empty message before the check for untouched template

Kevin Daudt (1):
  stash: prevent warning about null bytes in input

Lars Schneider (7):
  t0021: keep filter log files on comparison
  t0021: make debug log file name configurable
  t0021: write "OUT " only on success
  convert: put the flags field before the flag itself for consistent style
  convert: move multiple file filter error handling to separate function
  convert: refactor capabilities negotiation
  convert: add "status=delayed" to filter process protocol

Martin Ågren (7):
  builtin.h: take over documentation fro

[ANNOUNCE] Git v2.14.2

2017-09-26 Thread Junio C Hamano
s old and largely unmaintained.

 * Various Perl scripts did not use safe_pipe_capture() instead of
   backticks, leaving them susceptible to end-user input.  They have
   been corrected.

Also contains various documentation updates and code clean-ups.

Credits go to joernchen  for finding the
unsafe constructs in "git cvsserver", and to Jeff King at GitHub for
finding and fixing instances of the same issue in other scripts.



Changes since v2.14.1 are as follows:

Andreas Heiduk (2):
  doc: add missing values "none" and "default" for diff.wsErrorHighlight
  doc: clarify "config --bool" behaviour with empty string

Anthony Sottile (1):
  git-grep: correct exit code with --quiet and -L

Brandon Williams (2):
  submodule--helper: teach push-check to handle HEAD
  clone: teach recursive clones to respect -q

Christian Couder (2):
  refs: use skip_prefix() in ref_is_hidden()
  sub-process: print the cmd when a capability is unsupported

Dimitrios Christidis (1):
  fmt-merge-msg: fix coding style

Heiko Voigt (1):
  t5526: fix some broken && chains

Hielke Christian Braun (1):
  gitweb: skip unreadable subdirectories

Jeff King (32):
  t1414: document some reflog-walk oddities
  revision: disallow reflog walking with revs->limited
  log: clarify comment about reflog cycles
  log: do not free parents when walking reflog
  get_revision_1(): replace do-while with an early return
  rev-list: check reflog_info before showing usage
  reflog-walk: stop using fake parents
  reflog-walk: apply --since/--until to reflog dates
  check return value of verify_ref_format()
  docs/for-each-ref: update pointer to color syntax
  t: use test_decode_color rather than literal ANSI codes
  ref-filter: simplify automatic color reset
  ref-filter: abstract ref format into its own struct
  ref-filter: move need_color_reset_at_eol into ref_format
  ref-filter: provide a function for parsing sort options
  ref-filter: make parse_ref_filter_atom a private function
  ref-filter: factor out the parsing of sorting atoms
  ref-filter: pass ref_format struct to atom parsers
  color: check color.ui in git_default_config()
  for-each-ref: load config earlier
  rev-list: pass diffopt->use_colors through to pretty-print
  pretty: respect color settings for %C placeholders
  ref-filter: consult want_color() before emitting colors
  t6018: flesh out empty input/output rev-list tests
  revision: add rev_input_given flag
  rev-list: don't show usage when we see empty ref patterns
  revision: do not fallback to default when rev_input_given is set
  hashcmp: use memcmp instead of open-coded loop
  doc: fix typo in sendemail.identity
  shell: drop git-cvsserver support by default
  archimport: use safe_pipe_capture for user input
  cvsimport: shell-quote variable used in backticks

Johannes Schindelin (2):
  run_processes_parallel: change confusing task_cb convention
  git-gui (MinGW): make use of MSys2's msgfmt

Jonathan Nieder (4):
  vcs-svn: remove more unused prototypes and declarations
  vcs-svn: remove custom mode constants
  vcs-svn: remove repo_delete wrapper function
  vcs-svn: move remaining repo_tree functions to fast_export.h

Jonathan Tan (7):
  fsck: remove redundant parse_tree() invocation
  object: remove "used" field from struct object
  fsck: cleanup unused variable
  Documentation: migrate sub-process docs to header
  sub-process: refactor handshake to common function
  tests: ensure fsck fails on corrupt packfiles
  Doc: clarify that pack-objects makes packs, plural

Junio C Hamano (11):
  http.c: http.sslcert and http.sslkey are both pathnames
  perl/Git.pm: typofix in a comment
  Prepare for 2.14.2
  RelNotes: further fixes for 2.14.2 from the master front
  cvsserver: move safe_pipe_capture() to the main package
  cvsserver: use safe_pipe_capture for `constant commands` as well
  Git 2.10.5
  Git 2.11.4
  Git 2.12.5
  Git 2.13.6
  Git 2.14.2

Kaartic Sivaraam (1):
  commit: check for empty message before the check for untouched template

Kevin Daudt (1):
  stash: prevent warning about null bytes in input

Lars Schneider (7):
  t0021: keep filter log files on comparison
  t0021: make debug log file name configurable
  t0021: write "OUT " only on success
  convert: put the flags field before the flag itself for consistent style
  convert: move multiple file filter error handling to separate function
  convert: refactor capabilities negotiation
  convert: add "status=delayed" to filter process protocol

Martin Ågren (7):
  builtin.h: take over documentation from api-builtin.txt
  git.c

[ANNOUNCE] Git v2.14.1, v2.13.5, and others

2017-08-10 Thread Junio C Hamano
The latest maintenance release Git v2.14.1 is now available at the
usual places, together with releases for older maintenance track for
the same issue: v2.7.6, v2.8.6, v2.9.5, v2.10.4, v2.11.3, v2.12.4,
and v2.13.5.

These contain a security fix for CVE-2017-1000117, and are released
in coordination with Subversion and Mercurial that share a similar
issue.  CVE-2017-9800 and CVE-2017-1000116 are assigned to these
systems, respectively, for issues similar to it that are now
addressed in their part of this coordinated release.

The tarballs are found at:

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

The following public repositories all have a copy of these tags:

  url = https://kernel.googlesource.com/pub/scm/git/git
  url = git://repo.or.cz/alt-git.git
  url = https://github.com/gitster/git

A malicious third-party can give a crafted "ssh://..." URL to an
unsuspecting victim, and an attempt to visit the URL can result in
any program that exists on the victim's machine being executed.
Such a URL could be placed in the .gitmodules file of a malicious
project, and an unsuspecting victim could be tricked into running
"git clone --recurse-submodules" to trigger the vulnerability.

Credits to find and fix the issue go to Brian Neel at GitLab, Joern
Schneeweisz of Recurity Labs and Jeff King at GitHub.

 * A "ssh://..." URL can result in a "ssh" command line with a
   hostname that begins with a dash "-", which would cause the "ssh"
   command to instead (mis)treat it as an option.  This is now
   prevented by forbidding such a hostname (which should not impact
   any real-world usage).

 * Similarly, when GIT_PROXY_COMMAND is configured, the command is
   run with host and port that are parsed out from "ssh://..." URL;
   a poorly written GIT_PROXY_COMMAND could be tricked into treating
   a string that begins with a dash "-" as an option.  This is now
   prevented by forbidding such a hostname and port number (again,
   which should not impact any real-world usage).

 * In the same spirit, a repository name that begins with a dash "-"
   is also forbidden now.


[ANNOUNCE] Git v2.14.1, v2.13.5, and others

2017-08-10 Thread Junio C Hamano
The latest maintenance release Git v2.14.1 is now available at the
usual places, together with releases for older maintenance track for
the same issue: v2.7.6, v2.8.6, v2.9.5, v2.10.4, v2.11.3, v2.12.4,
and v2.13.5.

These contain a security fix for CVE-2017-1000117, and are released
in coordination with Subversion and Mercurial that share a similar
issue.  CVE-2017-9800 and CVE-2017-1000116 are assigned to these
systems, respectively, for issues similar to it that are now
addressed in their part of this coordinated release.

The tarballs are found at:

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

The following public repositories all have a copy of these tags:

  url = https://kernel.googlesource.com/pub/scm/git/git
  url = git://repo.or.cz/alt-git.git
  url = https://github.com/gitster/git

A malicious third-party can give a crafted "ssh://..." URL to an
unsuspecting victim, and an attempt to visit the URL can result in
any program that exists on the victim's machine being executed.
Such a URL could be placed in the .gitmodules file of a malicious
project, and an unsuspecting victim could be tricked into running
"git clone --recurse-submodules" to trigger the vulnerability.

Credits to find and fix the issue go to Brian Neel at GitLab, Joern
Schneeweisz of Recurity Labs and Jeff King at GitHub.

 * A "ssh://..." URL can result in a "ssh" command line with a
   hostname that begins with a dash "-", which would cause the "ssh"
   command to instead (mis)treat it as an option.  This is now
   prevented by forbidding such a hostname (which should not impact
   any real-world usage).

 * Similarly, when GIT_PROXY_COMMAND is configured, the command is
   run with host and port that are parsed out from "ssh://..." URL;
   a poorly written GIT_PROXY_COMMAND could be tricked into treating
   a string that begins with a dash "-" as an option.  This is now
   prevented by forbidding such a hostname and port number (again,
   which should not impact any real-world usage).

 * In the same spirit, a repository name that begins with a dash "-"
   is also forbidden now.


Re: linux-next: Signed-off-by missing for commit in the drivers-x86 tree

2017-08-04 Thread Junio C Hamano
Linus Torvalds  writes:

> On Wed, Aug 2, 2017 at 5:28 PM, Stephen Rothwell  
> wrote:
>>
>> I would say that if you rebase someone's commit(s), then you are on the
>> "patch's delivery path" and so should add a Signed-off-by tag.
>
> Yeah, I agree. Rebasing really is pretty much the exact same thing as
> applying a patch.
>
>> "git rebase" does have a "--signoff" option.
>
> I think you end up signing off twice using that. I don't think it's
> smart enough to say "oh, you already did it once".

Git avoids duplication only when your SoB appears as the last
existing one, so that we can capture a flow of a patch which you
originally signed off, picked up and tweaked further by somebody
else, which comes back to you and you sign it off again.

We may drop yours even when yours is not the last in the existing
chain, but that would be a bug; at least the above is what we try to
do.

> And in general, you simply should never rebase commits that have
> already been publicized. And the fact that you didn't commit them in
> the first place definitely means that they've been public somewhere.
>
> So I would definitely suggest against the "git rebase --signoff"
> model, even if git were to do the "right thing". It's simply
> fundamentally the wrong thing to do.

When those involved are using push/pull as a replacement for
e-mailed patch exchange, then such a workflow should be OK.  There
needs to be a shared understanding that the branch(es) used for such
exchange are unstable and should not be built directly on to be
merged, of course.


Re: linux-next: Signed-off-by missing for commit in the drivers-x86 tree

2017-08-04 Thread Junio C Hamano
Linus Torvalds  writes:

> On Wed, Aug 2, 2017 at 5:28 PM, Stephen Rothwell  
> wrote:
>>
>> I would say that if you rebase someone's commit(s), then you are on the
>> "patch's delivery path" and so should add a Signed-off-by tag.
>
> Yeah, I agree. Rebasing really is pretty much the exact same thing as
> applying a patch.
>
>> "git rebase" does have a "--signoff" option.
>
> I think you end up signing off twice using that. I don't think it's
> smart enough to say "oh, you already did it once".

Git avoids duplication only when your SoB appears as the last
existing one, so that we can capture a flow of a patch which you
originally signed off, picked up and tweaked further by somebody
else, which comes back to you and you sign it off again.

We may drop yours even when yours is not the last in the existing
chain, but that would be a bug; at least the above is what we try to
do.

> And in general, you simply should never rebase commits that have
> already been publicized. And the fact that you didn't commit them in
> the first place definitely means that they've been public somewhere.
>
> So I would definitely suggest against the "git rebase --signoff"
> model, even if git were to do the "right thing". It's simply
> fundamentally the wrong thing to do.

When those involved are using push/pull as a replacement for
e-mailed patch exchange, then such a workflow should be OK.  There
needs to be a shared understanding that the branch(es) used for such
exchange are unstable and should not be built directly on to be
merged, of course.


[ANNOUNCE] Git v2.14.0

2017-08-04 Thread Junio C Hamano
The latest feature release Git v2.14.0 is now available at the
usual places.  It is comprised of 727 non-merge commits since
v2.13.0, contributed by 66 people, 18 of which are new faces.

The tarballs are found at:

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

when kernel.org mirrors catch up.

The following public repositories all have a copy of the 'v2.14.0'
tag and the 'master' 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

New contributors whose contributions weren't in v2.13.0 are as follows.
Welcome to the Git development community!

  Anthony Sottile, A. Wilcox, Ben Peart, Brian Malehorn, Hugues
  Peccatte, James Clarke, Jeff Smith, Kaartic Sivaraam, Liam
  Beguin, Louis, Phillip Wood, Rikard Falkeborn, Sahil Dua,
  Samuel Lijin, Stephen Kent, Sylvestre Ledru, Tyler Brazier,
  and xiaoqiang zhao.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Alejandro R. Sedeño,
  Alexander Shopov, Andreas Heiduk, Beat Bolli, Brandon Williams,
  brian m. carlson, Changwoo Ryu, Christian Couder, David Aguilar,
  David Turner, Dennis Kaarsemaker, Dimitriy Ryazantcev, Eric
  Wong, Hartmut Henkel, Jean-Noel Avila, Jeff Hostetler, Jeff
  King, Jiang Xin, Johannes Schindelin, Johannes Sixt, Jonathan
  Nieder, Jonathan Tan, Jordi Mas, Junio C Hamano, Kyle J. McKay,
  Kyle Meyer, Lars Schneider, Marc Branchaud, Michael Haggerty,
  Miguel Torroja, Mike Hommey, Nguyễn Thái Ngọc Duy, Patrick
  Steinhardt, Peter Krefting, Prathamesh Chavan, Ralf Thielow,
  Ramsay Jones, René Scharfe, Stefan Beller, Štěpán Němec,
  Sven Strickroth, SZEDER Gábor, Thomas Gummerer, Torsten
  Bögershausen, Trần Ngọc Quân, and Ville Skyttä.



Git 2.14 Release Notes
==

Backward compatibility notes and other notable changes.

 * Use of an empty string as a pathspec element that is used for
   'everything matches' is still warned and Git asks users to use a
   more explicit '.' for that instead.  The hope is that existing
   users will not mind this change, and eventually the warning can be
   turned into a hard error, upgrading the deprecation into removal of
   this (mis)feature.  That is not scheduled to happen in the upcoming
   release (yet).

 * Git now avoids blindly falling back to ".git" when the setup
   sequence said we are _not_ in Git repository.  A corner case that
   happens to work right now may be broken by a call to die("BUG").
   We've tried hard to locate such cases and fixed them, but there
   might still be cases that need to be addressed--bug reports are
   greatly appreciated.

 * The experiment to improve the hunk-boundary selection of textual
   diff output has finished, and the "indent heuristics" has now
   become the default.

 * Git can now be built with PCRE v2 instead of v1 of the PCRE
   library. Replace USE_LIBPCRE=YesPlease with USE_LIBPCRE2=YesPlease
   in existing build scripts to build against the new version.  As the
   upstream PCRE maintainer has abandoned v1 maintenance for all but
   the most critical bug fixes, use of v2 is recommended.


Updates since v2.13
---

UI, Workflows & Features

 * The colors in which "git status --short --branch" showed the names
   of the current branch and its remote-tracking branch are now
   configurable.

 * "git clone" learned the "--no-tags" option not to fetch all tags
   initially, and also set up the tagopt not to follow any tags in
   subsequent fetches.

 * "git archive --format=zip" learned to use zip64 extension when
   necessary to go beyond the 4GB limit.

 * "git reset" learned "--recurse-submodules" option.

 * "git diff --submodule=diff" now recurses into nested submodules.

 * "git repack" learned to accept the --threads= option and pass it
   to pack-objects.

 * "git send-email" learned to run sendemail-validate hook to inspect
   and reject a message before sending it out.

 * There is no good reason why "git fetch $there $sha1" should fail
   when the $sha1 names an object at the tip of an advertised ref,
   even when the other side hasn't enabled allowTipSHA1InWant.

 * The "[includeIf "gitdir:$dir"] path=..." mechanism introduced in
   2.13.0 would canonicalize the path of the gitdir being matched,
   and did not match e.g. "gitdir:~/work/*" against a repo in
   "~/work/main" if "~/work" was a symlink to "/mnt/storage/work".
   Now we match both the resolved canonical path and what "pwd" would
   show. The include will happen if either one matches.

 * The "indent" heuristics is now the default in "diff". The
   diff.in

[ANNOUNCE] Git v2.14.0

2017-08-04 Thread Junio C Hamano
The latest feature release Git v2.14.0 is now available at the
usual places.  It is comprised of 727 non-merge commits since
v2.13.0, contributed by 66 people, 18 of which are new faces.

The tarballs are found at:

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

when kernel.org mirrors catch up.

The following public repositories all have a copy of the 'v2.14.0'
tag and the 'master' 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

New contributors whose contributions weren't in v2.13.0 are as follows.
Welcome to the Git development community!

  Anthony Sottile, A. Wilcox, Ben Peart, Brian Malehorn, Hugues
  Peccatte, James Clarke, Jeff Smith, Kaartic Sivaraam, Liam
  Beguin, Louis, Phillip Wood, Rikard Falkeborn, Sahil Dua,
  Samuel Lijin, Stephen Kent, Sylvestre Ledru, Tyler Brazier,
  and xiaoqiang zhao.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Alejandro R. Sedeño,
  Alexander Shopov, Andreas Heiduk, Beat Bolli, Brandon Williams,
  brian m. carlson, Changwoo Ryu, Christian Couder, David Aguilar,
  David Turner, Dennis Kaarsemaker, Dimitriy Ryazantcev, Eric
  Wong, Hartmut Henkel, Jean-Noel Avila, Jeff Hostetler, Jeff
  King, Jiang Xin, Johannes Schindelin, Johannes Sixt, Jonathan
  Nieder, Jonathan Tan, Jordi Mas, Junio C Hamano, Kyle J. McKay,
  Kyle Meyer, Lars Schneider, Marc Branchaud, Michael Haggerty,
  Miguel Torroja, Mike Hommey, Nguyễn Thái Ngọc Duy, Patrick
  Steinhardt, Peter Krefting, Prathamesh Chavan, Ralf Thielow,
  Ramsay Jones, René Scharfe, Stefan Beller, Štěpán Němec,
  Sven Strickroth, SZEDER Gábor, Thomas Gummerer, Torsten
  Bögershausen, Trần Ngọc Quân, and Ville Skyttä.



Git 2.14 Release Notes
==

Backward compatibility notes and other notable changes.

 * Use of an empty string as a pathspec element that is used for
   'everything matches' is still warned and Git asks users to use a
   more explicit '.' for that instead.  The hope is that existing
   users will not mind this change, and eventually the warning can be
   turned into a hard error, upgrading the deprecation into removal of
   this (mis)feature.  That is not scheduled to happen in the upcoming
   release (yet).

 * Git now avoids blindly falling back to ".git" when the setup
   sequence said we are _not_ in Git repository.  A corner case that
   happens to work right now may be broken by a call to die("BUG").
   We've tried hard to locate such cases and fixed them, but there
   might still be cases that need to be addressed--bug reports are
   greatly appreciated.

 * The experiment to improve the hunk-boundary selection of textual
   diff output has finished, and the "indent heuristics" has now
   become the default.

 * Git can now be built with PCRE v2 instead of v1 of the PCRE
   library. Replace USE_LIBPCRE=YesPlease with USE_LIBPCRE2=YesPlease
   in existing build scripts to build against the new version.  As the
   upstream PCRE maintainer has abandoned v1 maintenance for all but
   the most critical bug fixes, use of v2 is recommended.


Updates since v2.13
---

UI, Workflows & Features

 * The colors in which "git status --short --branch" showed the names
   of the current branch and its remote-tracking branch are now
   configurable.

 * "git clone" learned the "--no-tags" option not to fetch all tags
   initially, and also set up the tagopt not to follow any tags in
   subsequent fetches.

 * "git archive --format=zip" learned to use zip64 extension when
   necessary to go beyond the 4GB limit.

 * "git reset" learned "--recurse-submodules" option.

 * "git diff --submodule=diff" now recurses into nested submodules.

 * "git repack" learned to accept the --threads= option and pass it
   to pack-objects.

 * "git send-email" learned to run sendemail-validate hook to inspect
   and reject a message before sending it out.

 * There is no good reason why "git fetch $there $sha1" should fail
   when the $sha1 names an object at the tip of an advertised ref,
   even when the other side hasn't enabled allowTipSHA1InWant.

 * The "[includeIf "gitdir:$dir"] path=..." mechanism introduced in
   2.13.0 would canonicalize the path of the gitdir being matched,
   and did not match e.g. "gitdir:~/work/*" against a repo in
   "~/work/main" if "~/work" was a symlink to "/mnt/storage/work".
   Now we match both the resolved canonical path and what "pwd" would
   show. The include will happen if either one matches.

 * The "indent" heuristics is now the default in "diff". The
   diff.in

[ANNOUNCE] Git v2.13.4

2017-08-01 Thread Junio C Hamano
The latest maintenance release Git v2.13.4 is now available at
the usual places.

There is no update that is particulary important or controversial in
this release; it is primarily to flush the safer fixes that have
already been in the 'master' branch in preparation for the v2.14.0
release down to the maintenance track.

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.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 = https://github.com/gitster/git



Git v2.13.4 Release Notes
=

Fixes since v2.13.3
---

 * Update the character width tables.

 * A recent update broke an alias that contained an uppercase letter,
   which has been fixed.

 * On Cygwin, similar to Windows, "git push //server/share/repository"
   ought to mean a repository on a network share that can be accessed
   locally, but this did not work correctly due to stripping the double
   slashes at the beginning.

 * The progress meter did not give a useful output when we haven't had
   0.5 seconds to measure the throughput during the interval.  Instead
   show the overall throughput rate at the end, which is a much more
   useful number.

 * We run an early part of "git gc" that deals with refs before
   daemonising (and not under lock) even when running a background
   auto-gc, which caused multiple gc processes attempting to run the
   early part at the same time.  This is now prevented by running the
   early part also under the GC lock.

Also contains a handful of small code and documentation clean-ups.



Changes since v2.13.3 are as follows:

Beat Bolli (1):
  unicode: update the width tables to Unicode 10

Eric Wong (1):
  set FD_CLOEXEC properly when O_CLOEXEC is not supported

Jeff King (2):
  gc: run pre-detach operations under lock
  t: handle EOF in test_copy_bytes()

Johannes Schindelin (2):
  t1300: demonstrate that CamelCased aliases regressed
  alias: compare alias name *case-insensitively*

Jonathan Nieder (1):
  pre-rebase hook: capture documentation in a <

[ANNOUNCE] Git v2.13.4

2017-08-01 Thread Junio C Hamano
The latest maintenance release Git v2.13.4 is now available at
the usual places.

There is no update that is particulary important or controversial in
this release; it is primarily to flush the safer fixes that have
already been in the 'master' branch in preparation for the v2.14.0
release down to the maintenance track.

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.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 = https://github.com/gitster/git



Git v2.13.4 Release Notes
=

Fixes since v2.13.3
---

 * Update the character width tables.

 * A recent update broke an alias that contained an uppercase letter,
   which has been fixed.

 * On Cygwin, similar to Windows, "git push //server/share/repository"
   ought to mean a repository on a network share that can be accessed
   locally, but this did not work correctly due to stripping the double
   slashes at the beginning.

 * The progress meter did not give a useful output when we haven't had
   0.5 seconds to measure the throughput during the interval.  Instead
   show the overall throughput rate at the end, which is a much more
   useful number.

 * We run an early part of "git gc" that deals with refs before
   daemonising (and not under lock) even when running a background
   auto-gc, which caused multiple gc processes attempting to run the
   early part at the same time.  This is now prevented by running the
   early part also under the GC lock.

Also contains a handful of small code and documentation clean-ups.



Changes since v2.13.3 are as follows:

Beat Bolli (1):
  unicode: update the width tables to Unicode 10

Eric Wong (1):
  set FD_CLOEXEC properly when O_CLOEXEC is not supported

Jeff King (2):
  gc: run pre-detach operations under lock
  t: handle EOF in test_copy_bytes()

Johannes Schindelin (2):
  t1300: demonstrate that CamelCased aliases regressed
  alias: compare alias name *case-insensitively*

Jonathan Nieder (1):
  pre-rebase hook: capture documentation in a <

[ANNOUNCE] Git v2.14.0-rc1

2017-07-24 Thread Junio C Hamano
A release candidate Git v2.14.0-rc1 is now available for testing
at the usual places.  It is comprised of 708 non-merge commits
since v2.13.0, contributed by 61 people, 14 of which are new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.14.0-rc1' tag and the 'master' 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

New contributors whose contributions weren't in v2.13.0 are as follows.
Welcome to the Git development community!

  A. Wilcox, Ben Peart, Brian Malehorn, James Clarke, Jeff Smith,
  Kaartic Sivaraam, Liam Beguin, Phillip Wood, Rikard Falkeborn,
  Sahil Dua, Samuel Lijin, Stephen Kent, Tyler Brazier, and
  xiaoqiang zhao.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Alejandro R. Sedeño,
  Alexander Shopov, Andreas Heiduk, Beat Bolli, Brandon Williams,
  brian m. carlson, Changwoo Ryu, Christian Couder, David Aguilar,
  David Turner, Dennis Kaarsemaker, Dimitriy Ryazantcev, Eric Wong,
  Jean-Noel Avila, Jeff Hostetler, Jeff King, Jiang Xin, Johannes
  Schindelin, Johannes Sixt, Jonathan Nieder, Jonathan Tan, Jordi
  Mas, Junio C Hamano, Kyle J. McKay, Kyle Meyer, Lars Schneider,
  Marc Branchaud, Michael Haggerty, Miguel Torroja, Mike Hommey,
  Nguyễn Thái Ngọc Duy, Patrick Steinhardt, Peter Krefting,
  Prathamesh Chavan, Ralf Thielow, Ramsay Jones, René Scharfe,
  Stefan Beller, Štěpán Němec, Sven Strickroth, SZEDER Gábor,
  Thomas Gummerer, Torsten Bögershausen, Trần Ngọc Quân,
  and Ville Skyttä.



Git 2.14 Release Notes (draft)
==

Backward compatibility notes and other notable changes.

 * Use of an empty string as a pathspec element that is used for
   'everything matches' is still warned and Git asks users to use a
   more explicit '.' for that instead.  The hope is that existing
   users will not mind this change, and eventually the warning can be
   turned into a hard error, upgrading the deprecation into removal of
   this (mis)feature.  That is not scheduled to happen in the upcoming
   release (yet).

 * Git now avoids blindly falling back to ".git" when the setup
   sequence said we are _not_ in Git repository.  A corner case that
   happens to work right now may be broken by a call to die("BUG").
   We've tried hard to locate such cases and fixed them, but there
   might still be cases that need to be addressed--bug reports are
   greatly appreciated.

 * The experiment to improve the hunk-boundary selection of textual
   diff output has finished, and the "indent heuristics" has now
   become the default.

 * Git can now be built with PCRE v2 instead of v1 of the PCRE
   library. Replace USE_LIBPCRE=YesPlease with USE_LIBPCRE2=YesPlease
   in existing build scripts to build against the new version.  As the
   upstream PCRE maintainer has abandoned v1 maintenance for all but
   the most critical bug fixes, use of v2 is recommended.


Updates since v2.13
---

UI, Workflows & Features

 * The colors in which "git status --short --branch" showed the names
   of the current branch and its remote-tracking branch are now
   configurable.

 * "git clone" learned the "--no-tags" option not to fetch all tags
   initially, and also set up the tagopt not to follow any tags in
   subsequent fetches.

 * "git archive --format=zip" learned to use zip64 extension when
   necessary to go beyond the 4GB limit.

 * "git reset" learned "--recurse-submodules" option.

 * "git diff --submodule=diff" now recurses into nested submodules.

 * "git repack" learned to accept the --threads= option and pass it
   to pack-objects.

 * "git send-email" learned to run sendemail-validate hook to inspect
   and reject a message before sending it out.

 * There is no good reason why "git fetch $there $sha1" should fail
   when the $sha1 names an object at the tip of an advertised ref,
   even when the other side hasn't enabled allowTipSHA1InWant.

 * The "[includeIf "gitdir:$dir"] path=..." mechanism introduced in
   2.13.0 would canonicalize the path of the gitdir being matched,
   and did not match e.g. "gitdir:~/work/*" against a repo in
   "~/work/main" if "~/work" was a symlink to "/mnt/storage/work".
   Now we match both the resolved canonical path and what "pwd" would
   show. The include will happen if either one matches.

 * The "indent" heuristics is now the default in "diff". The
   diff.indentHeuristic configuration variable can be set to "false&quo

[ANNOUNCE] Git v2.14.0-rc1

2017-07-24 Thread Junio C Hamano
A release candidate Git v2.14.0-rc1 is now available for testing
at the usual places.  It is comprised of 708 non-merge commits
since v2.13.0, contributed by 61 people, 14 of which are new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.14.0-rc1' tag and the 'master' 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

New contributors whose contributions weren't in v2.13.0 are as follows.
Welcome to the Git development community!

  A. Wilcox, Ben Peart, Brian Malehorn, James Clarke, Jeff Smith,
  Kaartic Sivaraam, Liam Beguin, Phillip Wood, Rikard Falkeborn,
  Sahil Dua, Samuel Lijin, Stephen Kent, Tyler Brazier, and
  xiaoqiang zhao.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Alejandro R. Sedeño,
  Alexander Shopov, Andreas Heiduk, Beat Bolli, Brandon Williams,
  brian m. carlson, Changwoo Ryu, Christian Couder, David Aguilar,
  David Turner, Dennis Kaarsemaker, Dimitriy Ryazantcev, Eric Wong,
  Jean-Noel Avila, Jeff Hostetler, Jeff King, Jiang Xin, Johannes
  Schindelin, Johannes Sixt, Jonathan Nieder, Jonathan Tan, Jordi
  Mas, Junio C Hamano, Kyle J. McKay, Kyle Meyer, Lars Schneider,
  Marc Branchaud, Michael Haggerty, Miguel Torroja, Mike Hommey,
  Nguyễn Thái Ngọc Duy, Patrick Steinhardt, Peter Krefting,
  Prathamesh Chavan, Ralf Thielow, Ramsay Jones, René Scharfe,
  Stefan Beller, Štěpán Němec, Sven Strickroth, SZEDER Gábor,
  Thomas Gummerer, Torsten Bögershausen, Trần Ngọc Quân,
  and Ville Skyttä.



Git 2.14 Release Notes (draft)
==

Backward compatibility notes and other notable changes.

 * Use of an empty string as a pathspec element that is used for
   'everything matches' is still warned and Git asks users to use a
   more explicit '.' for that instead.  The hope is that existing
   users will not mind this change, and eventually the warning can be
   turned into a hard error, upgrading the deprecation into removal of
   this (mis)feature.  That is not scheduled to happen in the upcoming
   release (yet).

 * Git now avoids blindly falling back to ".git" when the setup
   sequence said we are _not_ in Git repository.  A corner case that
   happens to work right now may be broken by a call to die("BUG").
   We've tried hard to locate such cases and fixed them, but there
   might still be cases that need to be addressed--bug reports are
   greatly appreciated.

 * The experiment to improve the hunk-boundary selection of textual
   diff output has finished, and the "indent heuristics" has now
   become the default.

 * Git can now be built with PCRE v2 instead of v1 of the PCRE
   library. Replace USE_LIBPCRE=YesPlease with USE_LIBPCRE2=YesPlease
   in existing build scripts to build against the new version.  As the
   upstream PCRE maintainer has abandoned v1 maintenance for all but
   the most critical bug fixes, use of v2 is recommended.


Updates since v2.13
---

UI, Workflows & Features

 * The colors in which "git status --short --branch" showed the names
   of the current branch and its remote-tracking branch are now
   configurable.

 * "git clone" learned the "--no-tags" option not to fetch all tags
   initially, and also set up the tagopt not to follow any tags in
   subsequent fetches.

 * "git archive --format=zip" learned to use zip64 extension when
   necessary to go beyond the 4GB limit.

 * "git reset" learned "--recurse-submodules" option.

 * "git diff --submodule=diff" now recurses into nested submodules.

 * "git repack" learned to accept the --threads= option and pass it
   to pack-objects.

 * "git send-email" learned to run sendemail-validate hook to inspect
   and reject a message before sending it out.

 * There is no good reason why "git fetch $there $sha1" should fail
   when the $sha1 names an object at the tip of an advertised ref,
   even when the other side hasn't enabled allowTipSHA1InWant.

 * The "[includeIf "gitdir:$dir"] path=..." mechanism introduced in
   2.13.0 would canonicalize the path of the gitdir being matched,
   and did not match e.g. "gitdir:~/work/*" against a repo in
   "~/work/main" if "~/work" was a symlink to "/mnt/storage/work".
   Now we match both the resolved canonical path and what "pwd" would
   show. The include will happen if either one matches.

 * The "indent" heuristics is now the default in "diff". The
   diff.indentHeuristic configuration variable can be set to "false&quo

Re: [ANNOUNCE] Git v2.14.0-rc0

2017-07-17 Thread Junio C Hamano
Ævar Arnfjörð Bjarmason <ava...@gmail.com> writes:

> On Thu, Jul 13 2017, Junio C. Hamano jotted:
>
> Proposed improvements for the release notes (is this a good way to
> propose RelNotes changes?)

Thanks.  You could also throw a patch just like any bugfix/update
to documentation, I would think.

> I think this may explain it better:
>
>  * The "[includeIf "gitdir:$dir"] path=..." mechanism introduced in
>2.13.0 would canonicalize the path of the gitdir being
>matched.
>
>Therefore it wouldn't match e.g. "gitdir:~/work/*" against a repo in
>"~/work/main" if ~/work was a symlink to "/mnt/storage/work".
>
>Now we match both the resolved canonical path and what "pwd" would
>show. The include will happen if either one matches.

Will use this (and some others) verbatim ;-)  Thanks.

>>  * Update "perl-compatible regular expression" support to enable JIT
>>and also allow linking with the newer PCRE v2 library.
>
> At the risk of advertising work I've done too much, I think it makes
> sense to split this into two separate and somewhat more verbose items:

As I shoot for shorter summary, going down to too much detail in
these entries is not welcome.

However, an exception is the top part of the release notes where we
discuss backward incompatible changes etc. that helps people to
decide the deployment strategy.  Encouraging migration from v1 to v2
belongs there, I would think.


Re: [ANNOUNCE] Git v2.14.0-rc0

2017-07-17 Thread Junio C Hamano
Ævar Arnfjörð Bjarmason  writes:

> On Thu, Jul 13 2017, Junio C. Hamano jotted:
>
> Proposed improvements for the release notes (is this a good way to
> propose RelNotes changes?)

Thanks.  You could also throw a patch just like any bugfix/update
to documentation, I would think.

> I think this may explain it better:
>
>  * The "[includeIf "gitdir:$dir"] path=..." mechanism introduced in
>2.13.0 would canonicalize the path of the gitdir being
>matched.
>
>Therefore it wouldn't match e.g. "gitdir:~/work/*" against a repo in
>"~/work/main" if ~/work was a symlink to "/mnt/storage/work".
>
>Now we match both the resolved canonical path and what "pwd" would
>show. The include will happen if either one matches.

Will use this (and some others) verbatim ;-)  Thanks.

>>  * Update "perl-compatible regular expression" support to enable JIT
>>and also allow linking with the newer PCRE v2 library.
>
> At the risk of advertising work I've done too much, I think it makes
> sense to split this into two separate and somewhat more verbose items:

As I shoot for shorter summary, going down to too much detail in
these entries is not welcome.

However, an exception is the top part of the release notes where we
discuss backward incompatible changes etc. that helps people to
decide the deployment strategy.  Encouraging migration from v1 to v2
belongs there, I would think.


[ANNOUNCE] Git v2.14.0-rc0

2017-07-13 Thread Junio C Hamano
An early preview release Git v2.14.0-rc0 is now available for
testing at the usual places.  It is comprised of 675 non-merge
commits since v2.13.0, contributed by 53 people, 14 of which are
new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.14.0-rc0' tag and the 'master' 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

New contributors whose contributions weren't in v2.13.0 are as follows.
Welcome to the Git development community!

  A. Wilcox, Ben Peart, Brian Malehorn, James Clarke, Jeff Smith,
  Kaartic Sivaraam, Liam Beguin, Phillip Wood, Rikard Falkeborn,
  Sahil Dua, Samuel Lijin, Stephen Kent, Tyler Brazier, and
  xiaoqiang zhao.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Alejandro
  R. Sedeño, Andreas Heiduk, Beat Bolli, Brandon Williams,
  brian m. carlson, Christian Couder, David Aguilar, David
  Turner, Dennis Kaarsemaker, Eric Wong, Jean-Noel Avila, Jeff
  Hostetler, Jeff King, Johannes Schindelin, Johannes Sixt,
  Jonathan Nieder, Jonathan Tan, Junio C Hamano, Kyle J. McKay,
  Kyle Meyer, Lars Schneider, Marc Branchaud, Michael Haggerty,
  Mike Hommey, Nguyễn Thái Ngọc Duy, Patrick Steinhardt,
  Prathamesh Chavan, Ralf Thielow, Ramsay Jones, René Scharfe,
  Stefan Beller, Štěpán Němec, Sven Strickroth, SZEDER Gábor,
  Thomas Gummerer, Torsten Bögershausen, and Ville Skyttä.



Git 2.14 Release Notes (draft)
==

Backward compatibility notes.

 * Use of an empty string as a pathspec element that is used for
   'everything matches' is still warned and Git asks users to use a
   more explicit '.' for that instead.  The hope is that existing
   users will not mind this change, and eventually the warning can be
   turned into a hard error, upgrading the deprecation into removal of
   this (mis)feature.  That is not scheduled to happen in the upcoming
   release (yet).

 * Git now avoids blindly falling back to ".git" when the setup
   sequence said we are _not_ in Git repository.  A corner case that
   happens to work right now may be broken by a call to die("BUG").
   We've tried hard to locate such cases and fixed them, but there
   might still be cases that need to be addressed--bug reports are
   greatly appreciated.

 * The experiment to improve the hunk-boundary selection of textual
   diff output has finished, and the "indent heuristics" has now
   become the default.


Updates since v2.13
---

UI, Workflows & Features

 * The colors in which "git status --short --branch" showed the names
   of the current branch and its remote-tracking branch are now
   configurable.

 * "git clone" learned the "--no-tags" option not to fetch all tags
   initially, and also set up the tagopt not to follow any tags in
   subsequent fetches.

 * "git archive --format=zip" learned to use zip64 extension when
   necessary to go beyond the 4GB limit.

 * "git reset" learned "--recurse-submodules" option.

 * "git diff --submodule=diff" now recurses into nested submodules.

 * "git repack" learned to accept the --threads= option and pass it
   to pack-objects.

 * "git send-email" learned to run sendemail-validate hook to inspect
   and reject a message before sending it out.

 * There is no good reason why "git fetch $there $sha1" should fail
   when the $sha1 names an object at the tip of an advertised ref,
   even when the other side hasn't enabled allowTipSHA1InWant.

 * The recently introduced "[includeIf "gitdir:$dir"] path=..."
   mechanism has further been taught to take symlinks into account.
   The directory "$dir" specified in "gitdir:$dir" may be a symlink to
   a real location, not something that $(getcwd) may return.  In such
   a case, a realpath of "$dir" is compared with the real path of the
   current repository to determine if the contents from the named path
   should be included.

 * Make the "indent" heuristics the default in "diff" and diff.indentHeuristics
   configuration variable an escape hatch for those who do no want it.

 * Many commands learned to pay attention to submodule.recurse
   configuration.

 * The convention for a command line is to follow "git cmdname
   --options" with revisions followed by an optional "--"
   disambiguator and then finally pathspecs.  When "--" is not there,
   we make sure early ones are all interpretable as revs (and do not
   look like paths) and later ones are the other way around.  A
   pat

[ANNOUNCE] Git v2.14.0-rc0

2017-07-13 Thread Junio C Hamano
An early preview release Git v2.14.0-rc0 is now available for
testing at the usual places.  It is comprised of 675 non-merge
commits since v2.13.0, contributed by 53 people, 14 of which are
new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.14.0-rc0' tag and the 'master' 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

New contributors whose contributions weren't in v2.13.0 are as follows.
Welcome to the Git development community!

  A. Wilcox, Ben Peart, Brian Malehorn, James Clarke, Jeff Smith,
  Kaartic Sivaraam, Liam Beguin, Phillip Wood, Rikard Falkeborn,
  Sahil Dua, Samuel Lijin, Stephen Kent, Tyler Brazier, and
  xiaoqiang zhao.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Alejandro
  R. Sedeño, Andreas Heiduk, Beat Bolli, Brandon Williams,
  brian m. carlson, Christian Couder, David Aguilar, David
  Turner, Dennis Kaarsemaker, Eric Wong, Jean-Noel Avila, Jeff
  Hostetler, Jeff King, Johannes Schindelin, Johannes Sixt,
  Jonathan Nieder, Jonathan Tan, Junio C Hamano, Kyle J. McKay,
  Kyle Meyer, Lars Schneider, Marc Branchaud, Michael Haggerty,
  Mike Hommey, Nguyễn Thái Ngọc Duy, Patrick Steinhardt,
  Prathamesh Chavan, Ralf Thielow, Ramsay Jones, René Scharfe,
  Stefan Beller, Štěpán Němec, Sven Strickroth, SZEDER Gábor,
  Thomas Gummerer, Torsten Bögershausen, and Ville Skyttä.



Git 2.14 Release Notes (draft)
==

Backward compatibility notes.

 * Use of an empty string as a pathspec element that is used for
   'everything matches' is still warned and Git asks users to use a
   more explicit '.' for that instead.  The hope is that existing
   users will not mind this change, and eventually the warning can be
   turned into a hard error, upgrading the deprecation into removal of
   this (mis)feature.  That is not scheduled to happen in the upcoming
   release (yet).

 * Git now avoids blindly falling back to ".git" when the setup
   sequence said we are _not_ in Git repository.  A corner case that
   happens to work right now may be broken by a call to die("BUG").
   We've tried hard to locate such cases and fixed them, but there
   might still be cases that need to be addressed--bug reports are
   greatly appreciated.

 * The experiment to improve the hunk-boundary selection of textual
   diff output has finished, and the "indent heuristics" has now
   become the default.


Updates since v2.13
---

UI, Workflows & Features

 * The colors in which "git status --short --branch" showed the names
   of the current branch and its remote-tracking branch are now
   configurable.

 * "git clone" learned the "--no-tags" option not to fetch all tags
   initially, and also set up the tagopt not to follow any tags in
   subsequent fetches.

 * "git archive --format=zip" learned to use zip64 extension when
   necessary to go beyond the 4GB limit.

 * "git reset" learned "--recurse-submodules" option.

 * "git diff --submodule=diff" now recurses into nested submodules.

 * "git repack" learned to accept the --threads= option and pass it
   to pack-objects.

 * "git send-email" learned to run sendemail-validate hook to inspect
   and reject a message before sending it out.

 * There is no good reason why "git fetch $there $sha1" should fail
   when the $sha1 names an object at the tip of an advertised ref,
   even when the other side hasn't enabled allowTipSHA1InWant.

 * The recently introduced "[includeIf "gitdir:$dir"] path=..."
   mechanism has further been taught to take symlinks into account.
   The directory "$dir" specified in "gitdir:$dir" may be a symlink to
   a real location, not something that $(getcwd) may return.  In such
   a case, a realpath of "$dir" is compared with the real path of the
   current repository to determine if the contents from the named path
   should be included.

 * Make the "indent" heuristics the default in "diff" and diff.indentHeuristics
   configuration variable an escape hatch for those who do no want it.

 * Many commands learned to pay attention to submodule.recurse
   configuration.

 * The convention for a command line is to follow "git cmdname
   --options" with revisions followed by an optional "--"
   disambiguator and then finally pathspecs.  When "--" is not there,
   we make sure early ones are all interpretable as revs (and do not
   look like paths) and later ones are the other way around.  A
   pat

[ANNOUNCE] Git v2.13.3

2017-07-12 Thread Junio C Hamano
The latest maintenance release Git v2.13.3 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.3'
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.3 Release Notes
=

Fixes since v2.13.2
---

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

 * The 'diff-highlight' program (in contrib/) has been restructured
   for easier reuse by an external project 'diff-so-fancy'.

 * "git mergetool" learned to work around a wrapper MacOS X adds
   around underlying meld.

 * An example in documentation that does not work in multi worktree
   configuration has been corrected.

 * The pretty-format specifiers like '%h', '%t', etc. had an
   optimization that no longer works correctly.  In preparation/hope
   of getting it correctly implemented, first discard the optimization
   that is broken.

 * The code to pick up and execute command alias definition from the
   configuration used to switch to the top of the working tree and
   then come back when the expanded alias was executed, which was
   unnecessarilyl complex.  Attempt to simplify the logic by using the
   early-config mechanism that does not chdir around.

 * "git add -p" were updated in 2.12 timeframe to cope with custom
   core.commentchar but the implementation was buggy and a
   metacharacter like $ and * did not work.

 * Fix a recent regression to "git rebase -i" and add tests that would
   have caught it and others.

 * An unaligned 32-bit access in pack-bitmap code ahs been corrected.

 * Tighten error checks for invalid "git apply" input.

 * The split index code did not honor core.sharedrepository setting
   correctly.

 * The Makefile rule in contrib/subtree for building documentation
   learned to honour USE_ASCIIDOCTOR just like the main documentation
   set does.

 * A few tests that tried to verify the contents of push certificates
   did not use 'git rev-parse' to formulate the line to look for in
   the certificate correctly.

 * After "git branch --move" of the currently checked out branch, the
   code to walk the reflog of HEAD via "log -g" and friends
   incorrectly stopped at the reflog entry that records the renaming
   of the branch.

 * The rewrite of "git branch --list" using for-each-ref's internals
   that happened in v2.13 regressed its handling of color.branch.local;
   this has been fixed.

Also contains various documentation updates and code clean-ups.



Changes since v2.13.2 are as follows:

A. Wilcox (1):
  subtree: honour USE_ASCIIDOCTOR when set

Alejandro R. Sedeño (1):
  ref-filter.c: drop return from void function

Andreas Heiduk (2):
  doc: do not use `rm .git/index` when normalizing line endings
  doc: clarify syntax for %C(auto,...) in pretty formats

Christian Couder (3):
  read-cache: use shared perms when writing shared index
  t1301: move modebits() to test-lib-functions.sh
  t1700: make sure split-index respects core.sharedrepository

David Aguilar (1):
  mergetools/meld: improve compatibiilty with Meld on macOS X

James Clarke (1):
  pack-bitmap: don't perform unaligned memory access

Jeff King (10):
  diff-highlight: split code into module
  add--interactive: handle EOF in prompt_yesno
  add--interactive: quote commentChar regex
  reflog-walk: skip over double-null oid due to HEAD rename
  reflog-walk: duplicate strings in complete_reflogs list
  reflog-walk: don't free reflogs added to cache
  reflog-walk: include all fields when freeing complete_reflogs
  branch: only perform HEAD check for local branches
  branch: use BRANCH_COLOR_LOCAL in ref-filter format
  branch: set remote color in ref-filter branch immediately

Johannes Schindelin (8):
  discover_git_directory(): avoid setting invalid git_dir
  config: report correct line number upon error
  help: use early config when autocorrecting aliases
  t1308: relax the test verifying that empty alias values are disallowed
  t7006: demonstrate a problem with aliases in subdirectories
  alias: use the early config machinery to expand aliases
  sequencer: print autostash messages to stderr
  t5534: fix misleading grep invocation

Junio C Hamano (5):
  t3420: fix under GETTEXT_POISON build
  t1450: use egrep for regexp "alternation"
  submodule--helper: do not call utf8_fprintf() unnecessarily
  Prepar

[ANNOUNCE] Git v2.13.3

2017-07-12 Thread Junio C Hamano
The latest maintenance release Git v2.13.3 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.3'
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.3 Release Notes
=

Fixes since v2.13.2
---

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

 * The 'diff-highlight' program (in contrib/) has been restructured
   for easier reuse by an external project 'diff-so-fancy'.

 * "git mergetool" learned to work around a wrapper MacOS X adds
   around underlying meld.

 * An example in documentation that does not work in multi worktree
   configuration has been corrected.

 * The pretty-format specifiers like '%h', '%t', etc. had an
   optimization that no longer works correctly.  In preparation/hope
   of getting it correctly implemented, first discard the optimization
   that is broken.

 * The code to pick up and execute command alias definition from the
   configuration used to switch to the top of the working tree and
   then come back when the expanded alias was executed, which was
   unnecessarilyl complex.  Attempt to simplify the logic by using the
   early-config mechanism that does not chdir around.

 * "git add -p" were updated in 2.12 timeframe to cope with custom
   core.commentchar but the implementation was buggy and a
   metacharacter like $ and * did not work.

 * Fix a recent regression to "git rebase -i" and add tests that would
   have caught it and others.

 * An unaligned 32-bit access in pack-bitmap code ahs been corrected.

 * Tighten error checks for invalid "git apply" input.

 * The split index code did not honor core.sharedrepository setting
   correctly.

 * The Makefile rule in contrib/subtree for building documentation
   learned to honour USE_ASCIIDOCTOR just like the main documentation
   set does.

 * A few tests that tried to verify the contents of push certificates
   did not use 'git rev-parse' to formulate the line to look for in
   the certificate correctly.

 * After "git branch --move" of the currently checked out branch, the
   code to walk the reflog of HEAD via "log -g" and friends
   incorrectly stopped at the reflog entry that records the renaming
   of the branch.

 * The rewrite of "git branch --list" using for-each-ref's internals
   that happened in v2.13 regressed its handling of color.branch.local;
   this has been fixed.

Also contains various documentation updates and code clean-ups.



Changes since v2.13.2 are as follows:

A. Wilcox (1):
  subtree: honour USE_ASCIIDOCTOR when set

Alejandro R. Sedeño (1):
  ref-filter.c: drop return from void function

Andreas Heiduk (2):
  doc: do not use `rm .git/index` when normalizing line endings
  doc: clarify syntax for %C(auto,...) in pretty formats

Christian Couder (3):
  read-cache: use shared perms when writing shared index
  t1301: move modebits() to test-lib-functions.sh
  t1700: make sure split-index respects core.sharedrepository

David Aguilar (1):
  mergetools/meld: improve compatibiilty with Meld on macOS X

James Clarke (1):
  pack-bitmap: don't perform unaligned memory access

Jeff King (10):
  diff-highlight: split code into module
  add--interactive: handle EOF in prompt_yesno
  add--interactive: quote commentChar regex
  reflog-walk: skip over double-null oid due to HEAD rename
  reflog-walk: duplicate strings in complete_reflogs list
  reflog-walk: don't free reflogs added to cache
  reflog-walk: include all fields when freeing complete_reflogs
  branch: only perform HEAD check for local branches
  branch: use BRANCH_COLOR_LOCAL in ref-filter format
  branch: set remote color in ref-filter branch immediately

Johannes Schindelin (8):
  discover_git_directory(): avoid setting invalid git_dir
  config: report correct line number upon error
  help: use early config when autocorrecting aliases
  t1308: relax the test verifying that empty alias values are disallowed
  t7006: demonstrate a problem with aliases in subdirectories
  alias: use the early config machinery to expand aliases
  sequencer: print autostash messages to stderr
  t5534: fix misleading grep invocation

Junio C Hamano (5):
  t3420: fix under GETTEXT_POISON build
  t1450: use egrep for regexp "alternation"
  submodule--helper: do not call utf8_fprintf() unnecessarily
  Prepar

[ANNOUNCE] Git v2.13.2

2017-06-24 Thread Junio C Hamano
h" 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



[ANNOUNCE] Git v2.13.2

2017-06-24 Thread Junio C Hamano
h" 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



[ANNOUNCE] Git v2.13.1

2017-06-04 Thread Junio C Hamano
, causing
   intermittent test failures.  This has been fixed by disabling
   traces from "receive-pack" in the test.

 * "foo\bar\baz" in "git fetch foo\bar\baz", even though there is no
   slashes in it, cannot be a nickname for a remote on Windows, as
   that is likely to be a pathname on a local filesystem.

 * The "collision detecting" SHA-1 implementation shipped with 2.13
   was quite broken on some big-endian platforms and/or platforms that
   do not like unaligned fetches.  Update to the upstream code which
   has already fixed these issues.

 * "git am -h" triggered a BUG().

 * The interaction of "url.*.insteadOf" and custom URL scheme's
   whitelisting is now documented better.

Also contains various documentation updates and code clean-ups.



Changes since v2.13.0 are as follows:

Andreas Heiduk (4):
  Documentation: fix reference to ifExists for interpret-trailers
  Documentation: fix formatting typo in pretty-formats.txt
  doc: filter-branch does not require re-export of vars
  doc: rewrite description for rev-parse --short

Brian Malehorn (1):
  interpret-trailers: honor the cut line

Jean-Noel Avila (3):
  usability: don't ask questions if no reply is required
  read-tree -m: make error message for merging 0 trees less smart aleck
  git-filter-branch: be more direct in an error message

Jeff King (14):
  am: fix commit buffer leak in get_commit_info()
  am: simplify allocations in get_commit_info()
  am: shorten ident_split variable name in get_commit_info()
  pack-objects: disable pack reuse for object-selection options
  t5310: fix "; do" style
  docs/config: clarify include/includeIf relationship
  docs/config: give a relative includeIf example
  docs/config: avoid the term "expand" for includes
  docs/config: consistify include.path examples
  t5400: avoid concurrent writes into a trace file
  ref-filter: resolve HEAD when parsing %(HEAD) atom
  revision.c: ignore broken tags with ignore_missing_links
  am: handle "-h" argument earlier
  docs/config: mention protocol implications of url.insteadOf

Johannes Schindelin (31):
  mingw: avoid memory leak when splitting PATH
  winansi: avoid use of uninitialized value
  winansi: avoid buffer overrun
  add_commit_patch_id(): avoid allocating memory unnecessarily
  git_config_rename_section_in_file(): avoid resource leak
  get_mail_commit_oid(): avoid resource leak
  difftool: address a couple of resource/memory leaks
  status: close file descriptor after reading git-rebase-todo
  mailinfo & mailsplit: check for EOF while parsing
  cat-file: fix memory leak
  checkout: fix memory leak
  split_commit_in_progress(): simplify & fix memory leak
  setup_bare_git_dir(): help static analysis
  setup_discovered_git_dir(): plug memory leak
  pack-redundant: plug memory leak
  mktree: plug memory leaks reported by Coverity
  fast-export: avoid leaking memory in handle_tag()
  receive-pack: plug memory leak in update()
  line-log: avoid memory leak
  shallow: avoid memory leak
  add_reflog_for_walk: avoid memory leak
  remote: plug memory leak in match_explicit()
  name-rev: avoid leaking memory in the `deref` case
  show_worktree(): plug memory leak
  submodule_uses_worktrees(): plug memory leak
  Fix build with core.autocrlf=true
  git-new-workdir: mark script as LF-only
  completion: mark bash script as LF-only
  t3901: move supporting files into t/t3901/
  Fix the remaining tests that failed with core.autocrlf=true
  t4051: mark supporting files as requiring LF-only line endings

Johannes Sixt (2):
  mingw.h: permit arguments with side effects for is_dir_sep
  Windows: do not treat a path with backslashes as a remote's nick name

Jonathan Nieder (2):
  credential doc: make multiple-helper behavior more prominent
  clone: handle empty config values in -c

Jonathan Tan (3):
  sequencer: add newline before adding footers
  docs: correct receive.advertisePushOptions default
  receive-pack: verify push options in cert

Junio C Hamano (6):
  apply.c: fix whitespace-only mismerge
  checkout: fix memory leak
  doc: replace more gmane links
  read-tree: "read-tree -m --empty" does not make sense
  Prepare for 2.13.1; more topics to follow
  Git 2.13.1

Kyle Meyer (1):
  config.txt: add an entry for log.showSignature

Lars Schneider (6):
  travis-ci: build documentation with AsciiDoc and Asciidoctor
  travis-ci: parallelize documentation build
  travis-ci: unset compiler for jobs that do not need one
  travis-ci: check AsciiDoc/AsciiDoctor stderr output
  travis-ci: setup "prove cache" in "script" ste

[ANNOUNCE] Git v2.13.1

2017-06-04 Thread Junio C Hamano
, causing
   intermittent test failures.  This has been fixed by disabling
   traces from "receive-pack" in the test.

 * "foo\bar\baz" in "git fetch foo\bar\baz", even though there is no
   slashes in it, cannot be a nickname for a remote on Windows, as
   that is likely to be a pathname on a local filesystem.

 * The "collision detecting" SHA-1 implementation shipped with 2.13
   was quite broken on some big-endian platforms and/or platforms that
   do not like unaligned fetches.  Update to the upstream code which
   has already fixed these issues.

 * "git am -h" triggered a BUG().

 * The interaction of "url.*.insteadOf" and custom URL scheme's
   whitelisting is now documented better.

Also contains various documentation updates and code clean-ups.



Changes since v2.13.0 are as follows:

Andreas Heiduk (4):
  Documentation: fix reference to ifExists for interpret-trailers
  Documentation: fix formatting typo in pretty-formats.txt
  doc: filter-branch does not require re-export of vars
  doc: rewrite description for rev-parse --short

Brian Malehorn (1):
  interpret-trailers: honor the cut line

Jean-Noel Avila (3):
  usability: don't ask questions if no reply is required
  read-tree -m: make error message for merging 0 trees less smart aleck
  git-filter-branch: be more direct in an error message

Jeff King (14):
  am: fix commit buffer leak in get_commit_info()
  am: simplify allocations in get_commit_info()
  am: shorten ident_split variable name in get_commit_info()
  pack-objects: disable pack reuse for object-selection options
  t5310: fix "; do" style
  docs/config: clarify include/includeIf relationship
  docs/config: give a relative includeIf example
  docs/config: avoid the term "expand" for includes
  docs/config: consistify include.path examples
  t5400: avoid concurrent writes into a trace file
  ref-filter: resolve HEAD when parsing %(HEAD) atom
  revision.c: ignore broken tags with ignore_missing_links
  am: handle "-h" argument earlier
  docs/config: mention protocol implications of url.insteadOf

Johannes Schindelin (31):
  mingw: avoid memory leak when splitting PATH
  winansi: avoid use of uninitialized value
  winansi: avoid buffer overrun
  add_commit_patch_id(): avoid allocating memory unnecessarily
  git_config_rename_section_in_file(): avoid resource leak
  get_mail_commit_oid(): avoid resource leak
  difftool: address a couple of resource/memory leaks
  status: close file descriptor after reading git-rebase-todo
  mailinfo & mailsplit: check for EOF while parsing
  cat-file: fix memory leak
  checkout: fix memory leak
  split_commit_in_progress(): simplify & fix memory leak
  setup_bare_git_dir(): help static analysis
  setup_discovered_git_dir(): plug memory leak
  pack-redundant: plug memory leak
  mktree: plug memory leaks reported by Coverity
  fast-export: avoid leaking memory in handle_tag()
  receive-pack: plug memory leak in update()
  line-log: avoid memory leak
  shallow: avoid memory leak
  add_reflog_for_walk: avoid memory leak
  remote: plug memory leak in match_explicit()
  name-rev: avoid leaking memory in the `deref` case
  show_worktree(): plug memory leak
  submodule_uses_worktrees(): plug memory leak
  Fix build with core.autocrlf=true
  git-new-workdir: mark script as LF-only
  completion: mark bash script as LF-only
  t3901: move supporting files into t/t3901/
  Fix the remaining tests that failed with core.autocrlf=true
  t4051: mark supporting files as requiring LF-only line endings

Johannes Sixt (2):
  mingw.h: permit arguments with side effects for is_dir_sep
  Windows: do not treat a path with backslashes as a remote's nick name

Jonathan Nieder (2):
  credential doc: make multiple-helper behavior more prominent
  clone: handle empty config values in -c

Jonathan Tan (3):
  sequencer: add newline before adding footers
  docs: correct receive.advertisePushOptions default
  receive-pack: verify push options in cert

Junio C Hamano (6):
  apply.c: fix whitespace-only mismerge
  checkout: fix memory leak
  doc: replace more gmane links
  read-tree: "read-tree -m --empty" does not make sense
  Prepare for 2.13.1; more topics to follow
  Git 2.13.1

Kyle Meyer (1):
  config.txt: add an entry for log.showSignature

Lars Schneider (6):
  travis-ci: build documentation with AsciiDoc and Asciidoctor
  travis-ci: parallelize documentation build
  travis-ci: unset compiler for jobs that do not need one
  travis-ci: check AsciiDoc/AsciiDoctor stderr output
  travis-ci: setup "prove cache" in "script" ste

[ANNOUNCE] Git v2.12.3 and others

2017-05-09 Thread Junio C Hamano
Maintenance releases Git v2.4.12, v2.5.6, v2.6.7, v2.7.5, v2.8.5,
v2.9.4, v2.10.3, v2.11.2, and v2.12.3 have been tagged and are now
available at the usual places.

These are primarily to fix a recently disclosed problem with "git
shell", which may allow a user who comes over SSH to run an
interactive pager by causing it to spawn "git upload-pack --help"
(CVE-2017-8386).  Some (like v2.12.3) have other fixes that have
been accumulating included as well.

"git-shell" is a restricted login shell that can be used on a server
to prevent SSH clients from running any programs except those needed
for git fetches and pushes. If you are not running a server, or if
your server has not been explicitly configured to use git-shell as a
login shell, you are not affected.  Also note that sites running "git
shell" behind gitolite are NOT vulnerable.

The tarballs are found at:

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

The following public repositories all have a copy of these tags:

  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


[ANNOUNCE] Git v2.12.3 and others

2017-05-09 Thread Junio C Hamano
Maintenance releases Git v2.4.12, v2.5.6, v2.6.7, v2.7.5, v2.8.5,
v2.9.4, v2.10.3, v2.11.2, and v2.12.3 have been tagged and are now
available at the usual places.

These are primarily to fix a recently disclosed problem with "git
shell", which may allow a user who comes over SSH to run an
interactive pager by causing it to spawn "git upload-pack --help"
(CVE-2017-8386).  Some (like v2.12.3) have other fixes that have
been accumulating included as well.

"git-shell" is a restricted login shell that can be used on a server
to prevent SSH clients from running any programs except those needed
for git fetches and pushes. If you are not running a server, or if
your server has not been explicitly configured to use git-shell as a
login shell, you are not affected.  Also note that sites running "git
shell" behind gitolite are NOT vulnerable.

The tarballs are found at:

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

The following public repositories all have a copy of these tags:

  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


[ANNOUNCE] Git v2.13.0

2017-05-09 Thread Junio C Hamano
The latest feature release Git v2.13.0 is now available at the
usual places.  It is comprised of 729 non-merge commits since
v2.12.0, contributed by 65 people, 15 of which are new faces.

This release also contains the security patch in v2.12.3 and
others to fix CVE-2017-8386.

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.0'
tag and the 'master' 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

New contributors whose contributions weren't in v2.12.0 are as follows.
Welcome to the Git development community!

  Allan Xavier, Andreas Heiduk, Devin J. Pohly, Devin Lehmacher,
  Hiroshi Shirosaki, Johan Hovold, Maxim Moseychuk, Mostyn
  Bramley-Moore, Prathamesh Chavan, Quentin Pradet, René Genz,
  Segev Finer, Sergey Ryazanov, Stephen Hicks, and Valery Tolstov.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Henrie,
  Brandon Williams, brian m. carlson, Christian Couder, Cornelius
  Weig, David Aguilar, David Turner, Eric Wong, Giuseppe Bilotta,
  Jacob Keller, Jean-Noel Avila, Jeff Hostetler, Jeff King,
  Jiang Xin, Johannes Schindelin, Jonathan Nieder, Jonathan Tan,
  Jordi Mas, Junio C Hamano, Karthik Nayak, Kevin Willford,
  Kyle Meyer, Lars Schneider, Linus Torvalds, Luke Diamand, Matt
  McCutchen, Michael Haggerty, Michael J Gruber, Michael Rappazzo,
  Mike Hommey, Nguyễn Thái Ngọc Duy, Patrick Steinhardt,
  Peter Krefting, Ralf Thielow, Ramsay Jones, Ray Chen, René
  Scharfe, Ross Lagerwall, Santiago Torres, Sebastian Schuberth,
  Simon Ruderich, Stefan Beller, SZEDER Gábor, Thomas Gummerer,
  Torsten Bögershausen, Trần Ngọc Quân, Vasco Almeida,
  and Vegard Nossum.



Git 2.13 Release Notes
==

Backward compatibility notes.

 * Use of an empty string as a pathspec element that is used for
   'everything matches' is still warned and Git asks users to use a
   more explicit '.' for that instead.  The hope is that existing
   users will not mind this change, and eventually the warning can be
   turned into a hard error, upgrading the deprecation into removal of
   this (mis)feature.  That is not scheduled to happen in the upcoming
   release (yet).

 * The historical argument order "git merge  HEAD ..."
   has been deprecated for quite some time, and is now removed.

 * The default location "~/.git-credential-cache/socket" for the
   socket used to communicate with the credential-cache daemon has
   been moved to "~/.cache/git/credential/socket".

 * Git now avoids blindly falling back to ".git" when the setup
   sequence said we are _not_ in Git repository.  A corner case that
   happens to work right now may be broken by a call to die("BUG").
   We've tried hard to locate such cases and fixed them, but there
   might still be cases that need to be addressed--bug reports are
   greatly appreciated.


Updates since v2.12
---

UI, Workflows & Features

 * "git describe" and "git name-rev" have been taught to take more
   than one refname patterns to restrict the set of refs to base their
   naming output on, and also learned to take negative patterns to
   name refs not to be used for naming via their "--exclude" option.

 * Deletion of a branch "foo/bar" could remove .git/refs/heads/foo
   once there no longer is any other branch whose name begins with
   "foo/", but we didn't do so so far.  Now we do.

 * When "git merge" detects a path that is renamed in one history
   while the other history deleted (or modified) it, it now reports
   both paths to help the user understand what is going on in the two
   histories being merged.

 * The  part in "http.." configuration variable
   can now be spelled with '*' that serves as wildcard.
   E.g. "http.https://*.example.com.proxy; can be used to specify the
   proxy used for https://a.example.com, https://b.example.com, etc.,
   i.e. any host in the example.com domain.

 * "git tag" did not leave useful message when adding a new entry to
   reflog; this was left unnoticed for a long time because refs/tags/*
   doesn't keep reflog by default.

 * The "negative" pathspec feature was somewhat more cumbersome to use
   than necessary in that its short-hand used "!" which needed to be
   escaped from shells, and it required "exclude from what?" specified.

 * The command line options for ssh invocation needs to be tweaked for
   some implementations of SSH (e.g. Pu

[ANNOUNCE] Git v2.13.0

2017-05-09 Thread Junio C Hamano
The latest feature release Git v2.13.0 is now available at the
usual places.  It is comprised of 729 non-merge commits since
v2.12.0, contributed by 65 people, 15 of which are new faces.

This release also contains the security patch in v2.12.3 and
others to fix CVE-2017-8386.

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.0'
tag and the 'master' 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

New contributors whose contributions weren't in v2.12.0 are as follows.
Welcome to the Git development community!

  Allan Xavier, Andreas Heiduk, Devin J. Pohly, Devin Lehmacher,
  Hiroshi Shirosaki, Johan Hovold, Maxim Moseychuk, Mostyn
  Bramley-Moore, Prathamesh Chavan, Quentin Pradet, René Genz,
  Segev Finer, Sergey Ryazanov, Stephen Hicks, and Valery Tolstov.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Henrie,
  Brandon Williams, brian m. carlson, Christian Couder, Cornelius
  Weig, David Aguilar, David Turner, Eric Wong, Giuseppe Bilotta,
  Jacob Keller, Jean-Noel Avila, Jeff Hostetler, Jeff King,
  Jiang Xin, Johannes Schindelin, Jonathan Nieder, Jonathan Tan,
  Jordi Mas, Junio C Hamano, Karthik Nayak, Kevin Willford,
  Kyle Meyer, Lars Schneider, Linus Torvalds, Luke Diamand, Matt
  McCutchen, Michael Haggerty, Michael J Gruber, Michael Rappazzo,
  Mike Hommey, Nguyễn Thái Ngọc Duy, Patrick Steinhardt,
  Peter Krefting, Ralf Thielow, Ramsay Jones, Ray Chen, René
  Scharfe, Ross Lagerwall, Santiago Torres, Sebastian Schuberth,
  Simon Ruderich, Stefan Beller, SZEDER Gábor, Thomas Gummerer,
  Torsten Bögershausen, Trần Ngọc Quân, Vasco Almeida,
  and Vegard Nossum.



Git 2.13 Release Notes
==

Backward compatibility notes.

 * Use of an empty string as a pathspec element that is used for
   'everything matches' is still warned and Git asks users to use a
   more explicit '.' for that instead.  The hope is that existing
   users will not mind this change, and eventually the warning can be
   turned into a hard error, upgrading the deprecation into removal of
   this (mis)feature.  That is not scheduled to happen in the upcoming
   release (yet).

 * The historical argument order "git merge  HEAD ..."
   has been deprecated for quite some time, and is now removed.

 * The default location "~/.git-credential-cache/socket" for the
   socket used to communicate with the credential-cache daemon has
   been moved to "~/.cache/git/credential/socket".

 * Git now avoids blindly falling back to ".git" when the setup
   sequence said we are _not_ in Git repository.  A corner case that
   happens to work right now may be broken by a call to die("BUG").
   We've tried hard to locate such cases and fixed them, but there
   might still be cases that need to be addressed--bug reports are
   greatly appreciated.


Updates since v2.12
---

UI, Workflows & Features

 * "git describe" and "git name-rev" have been taught to take more
   than one refname patterns to restrict the set of refs to base their
   naming output on, and also learned to take negative patterns to
   name refs not to be used for naming via their "--exclude" option.

 * Deletion of a branch "foo/bar" could remove .git/refs/heads/foo
   once there no longer is any other branch whose name begins with
   "foo/", but we didn't do so so far.  Now we do.

 * When "git merge" detects a path that is renamed in one history
   while the other history deleted (or modified) it, it now reports
   both paths to help the user understand what is going on in the two
   histories being merged.

 * The  part in "http.." configuration variable
   can now be spelled with '*' that serves as wildcard.
   E.g. "http.https://*.example.com.proxy; can be used to specify the
   proxy used for https://a.example.com, https://b.example.com, etc.,
   i.e. any host in the example.com domain.

 * "git tag" did not leave useful message when adding a new entry to
   reflog; this was left unnoticed for a long time because refs/tags/*
   doesn't keep reflog by default.

 * The "negative" pathspec feature was somewhat more cumbersome to use
   than necessary in that its short-hand used "!" which needed to be
   escaped from shells, and it required "exclude from what?" specified.

 * The command line options for ssh invocation needs to be tweaked for
   some implementations of SSH (e.g. Pu

[ANNOUNCE] Git v2.13.0-rc2

2017-05-04 Thread Junio C Hamano
A release candidate Git v2.13.0-rc2 is now available for testing
at the usual places.  It is comprised of 699 non-merge commits
since v2.12.0, contributed by 59 people, 15 of which are new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.13.0-rc2' tag and the 'master' 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

New contributors whose contributions weren't in v2.12.0 are as follows.
Welcome to the Git development community!

  Allan Xavier, Andreas Heiduk, Devin J. Pohly, Devin Lehmacher,
  Hiroshi Shirosaki, Johan Hovold, Maxim Moseychuk, Mostyn
  Bramley-Moore, Prathamesh Chavan, Quentin Pradet, René Genz,
  Segev Finer, Sergey Ryazanov, Stephen Hicks, and Valery Tolstov.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Ævar Arnfjörð Bjarmason, Alex Henrie, Brandon Williams,
  brian m. carlson, Christian Couder, Cornelius Weig, David
  Aguilar, David Turner, Eric Wong, Giuseppe Bilotta, Jacob Keller,
  Jean-Noel Avila, Jeff Hostetler, Jeff King, Johannes Schindelin,
  Jonathan Nieder, Jonathan Tan, Junio C Hamano, Karthik Nayak,
  Kevin Willford, Kyle Meyer, Lars Schneider, Linus Torvalds,
  Luke Diamand, Matt McCutchen, Michael Haggerty, Michael J Gruber,
  Michael Rappazzo, Mike Hommey, Nguyễn Thái Ngọc Duy, Patrick
  Steinhardt, Peter Krefting, Ralf Thielow, Ramsay Jones, René
  Scharfe, Ross Lagerwall, Santiago Torres, Sebastian Schuberth,
  Simon Ruderich, Stefan Beller, SZEDER Gábor, Thomas Gummerer,
  Torsten Bögershausen, and Vegard Nossum.



Git 2.13 Release Notes (draft)
==

Backward compatibility notes.

 * Use of an empty string as a pathspec element that is used for
   'everything matches' is still warned and Git asks users to use a
   more explicit '.' for that instead.  The hope is that existing
   users will not mind this change, and eventually the warning can be
   turned into a hard error, upgrading the deprecation into removal of
   this (mis)feature.  That is not scheduled to happen in the upcoming
   release (yet).

 * The historical argument order "git merge  HEAD ..."
   has been deprecated for quite some time, and is now removed.

 * The default location "~/.git-credential-cache/socket" for the
   socket used to communicate with the credential-cache daemon has
   been moved to "~/.cache/git/credential/socket".

 * Git now avoids blindly falling back to ".git" when the setup
   sequence said we are _not_ in Git repository.  A corner case that
   happens to work right now may be broken by a call to die("BUG").
   We've tried hard to locate such cases and fixed them, but there
   might still be cases that need to be addressed--bug reports are
   greatly appreciated.


Updates since v2.12
---

UI, Workflows & Features

 * "git describe" and "git name-rev" have been taught to take more
   than one refname patterns to restrict the set of refs to base their
   naming output on, and also learned to take negative patterns to
   name refs not to be used for naming via their "--exclude" option.

 * Deletion of a branch "foo/bar" could remove .git/refs/heads/foo
   once there no longer is any other branch whose name begins with
   "foo/", but we didn't do so so far.  Now we do.

 * When "git merge" detects a path that is renamed in one history
   while the other history deleted (or modified) it, it now reports
   both paths to help the user understand what is going on in the two
   histories being merged.

 * The  part in "http.." configuration variable
   can now be spelled with '*' that serves as wildcard.
   E.g. "http.https://*.example.com.proxy; can be used to specify the
   proxy used for https://a.example.com, https://b.example.com, etc.,
   i.e. any host in the example.com domain.

 * "git tag" did not leave useful message when adding a new entry to
   reflog; this was left unnoticed for a long time because refs/tags/*
   doesn't keep reflog by default.

 * The "negative" pathspec feature was somewhat more cumbersome to use
   than necessary in that its short-hand used "!" which needed to be
   escaped from shells, and it required "exclude from what?" specified.

 * The command line options for ssh invocation needs to be tweaked for
   some implementations of SSH (e.g. PuTTY plink wants "-P "
   while OpenSSH wants "-p " to specify port to connect to), and
   the variant was guessed when GIT_S

[ANNOUNCE] Git v2.13.0-rc2

2017-05-04 Thread Junio C Hamano
A release candidate Git v2.13.0-rc2 is now available for testing
at the usual places.  It is comprised of 699 non-merge commits
since v2.12.0, contributed by 59 people, 15 of which are new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.13.0-rc2' tag and the 'master' 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

New contributors whose contributions weren't in v2.12.0 are as follows.
Welcome to the Git development community!

  Allan Xavier, Andreas Heiduk, Devin J. Pohly, Devin Lehmacher,
  Hiroshi Shirosaki, Johan Hovold, Maxim Moseychuk, Mostyn
  Bramley-Moore, Prathamesh Chavan, Quentin Pradet, René Genz,
  Segev Finer, Sergey Ryazanov, Stephen Hicks, and Valery Tolstov.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Ævar Arnfjörð Bjarmason, Alex Henrie, Brandon Williams,
  brian m. carlson, Christian Couder, Cornelius Weig, David
  Aguilar, David Turner, Eric Wong, Giuseppe Bilotta, Jacob Keller,
  Jean-Noel Avila, Jeff Hostetler, Jeff King, Johannes Schindelin,
  Jonathan Nieder, Jonathan Tan, Junio C Hamano, Karthik Nayak,
  Kevin Willford, Kyle Meyer, Lars Schneider, Linus Torvalds,
  Luke Diamand, Matt McCutchen, Michael Haggerty, Michael J Gruber,
  Michael Rappazzo, Mike Hommey, Nguyễn Thái Ngọc Duy, Patrick
  Steinhardt, Peter Krefting, Ralf Thielow, Ramsay Jones, René
  Scharfe, Ross Lagerwall, Santiago Torres, Sebastian Schuberth,
  Simon Ruderich, Stefan Beller, SZEDER Gábor, Thomas Gummerer,
  Torsten Bögershausen, and Vegard Nossum.



Git 2.13 Release Notes (draft)
==

Backward compatibility notes.

 * Use of an empty string as a pathspec element that is used for
   'everything matches' is still warned and Git asks users to use a
   more explicit '.' for that instead.  The hope is that existing
   users will not mind this change, and eventually the warning can be
   turned into a hard error, upgrading the deprecation into removal of
   this (mis)feature.  That is not scheduled to happen in the upcoming
   release (yet).

 * The historical argument order "git merge  HEAD ..."
   has been deprecated for quite some time, and is now removed.

 * The default location "~/.git-credential-cache/socket" for the
   socket used to communicate with the credential-cache daemon has
   been moved to "~/.cache/git/credential/socket".

 * Git now avoids blindly falling back to ".git" when the setup
   sequence said we are _not_ in Git repository.  A corner case that
   happens to work right now may be broken by a call to die("BUG").
   We've tried hard to locate such cases and fixed them, but there
   might still be cases that need to be addressed--bug reports are
   greatly appreciated.


Updates since v2.12
---

UI, Workflows & Features

 * "git describe" and "git name-rev" have been taught to take more
   than one refname patterns to restrict the set of refs to base their
   naming output on, and also learned to take negative patterns to
   name refs not to be used for naming via their "--exclude" option.

 * Deletion of a branch "foo/bar" could remove .git/refs/heads/foo
   once there no longer is any other branch whose name begins with
   "foo/", but we didn't do so so far.  Now we do.

 * When "git merge" detects a path that is renamed in one history
   while the other history deleted (or modified) it, it now reports
   both paths to help the user understand what is going on in the two
   histories being merged.

 * The  part in "http.." configuration variable
   can now be spelled with '*' that serves as wildcard.
   E.g. "http.https://*.example.com.proxy; can be used to specify the
   proxy used for https://a.example.com, https://b.example.com, etc.,
   i.e. any host in the example.com domain.

 * "git tag" did not leave useful message when adding a new entry to
   reflog; this was left unnoticed for a long time because refs/tags/*
   doesn't keep reflog by default.

 * The "negative" pathspec feature was somewhat more cumbersome to use
   than necessary in that its short-hand used "!" which needed to be
   escaped from shells, and it required "exclude from what?" specified.

 * The command line options for ssh invocation needs to be tweaked for
   some implementations of SSH (e.g. PuTTY plink wants "-P "
   while OpenSSH wants "-p " to specify port to connect to), and
   the variant was guessed when GIT_S

[ANNOUNCE] Git v2.13.0-rc1

2017-04-26 Thread Junio C Hamano
A release candidate Git v2.13.0-rc1 is now available for testing
at the usual places.  It is comprised of 684 non-merge commits
since v2.12.0, contributed by 54 people, 13 of which are new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.13.0-rc1' tag and the 'master' 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

New contributors whose contributions weren't in v2.12.0 are as follows.
Welcome to the Git development community!

  Allan Xavier, Andreas Heiduk, Devin J. Pohly, Devin Lehmacher,
  Hiroshi Shirosaki, Johan Hovold, Maxim Moseychuk, Mostyn
  Bramley-Moore, Prathamesh Chavan, Quentin Pradet, Segev Finer,
  Sergey Ryazanov, and Valery Tolstov.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Ævar Arnfjörð Bjarmason, Alex Henrie, Brandon Williams, brian
  m. carlson, Christian Couder, Cornelius Weig, David Aguilar,
  David Turner, Eric Wong, Giuseppe Bilotta, Jacob Keller, Jeff
  Hostetler, Jeff King, Johannes Schindelin, Jonathan Nieder,
  Jonathan Tan, Junio C Hamano, Karthik Nayak, Kevin Willford,
  Kyle Meyer, Lars Schneider, Linus Torvalds, Luke Diamand, Matt
  McCutchen, Michael Haggerty, Michael J Gruber, Michael Rappazzo,
  Mike Hommey, Nguyễn Thái Ngọc Duy, Patrick Steinhardt, Ralf
  Thielow, Ramsay Jones, René Scharfe, Ross Lagerwall, Santiago
  Torres, Sebastian Schuberth, Stefan Beller, SZEDER Gábor,
  Thomas Gummerer, Torsten Bögershausen, and Vegard Nossum.



Git 2.13 Release Notes (draft)
==

Backward compatibility notes.

 * Use of an empty string as a pathspec element that is used for
   'everything matches' is still warned and Git asks users to use a
   more explicit '.' for that instead.  The hope is that existing
   users will not mind this change, and eventually the warning can be
   turned into a hard error, upgrading the deprecation into removal of
   this (mis)feature.  That is not scheduled to happen in the upcoming
   release (yet).

 * The historical argument order "git merge  HEAD ..."
   has been deprecated for quite some time, and is now removed.

 * The default location "~/.git-credential-cache/socket" for the
   socket used to communicate with the credential-cache daemon has
   been moved to "~/.cache/git/credential/socket".

 * Git now avoids blindly falling back to ".git" when the setup
   sequence said we are _not_ in Git repository.  A corner case that
   happens to work right now may be broken by a call to die("BUG").
   We've tried hard to locate such cases and fixed them, but there
   might still be cases that need to be addressed--bug reports are
   greatly appreciated.


Updates since v2.12
---

UI, Workflows & Features

 * "git describe" and "git name-rev" have been taught to take more
   than one refname patterns to restrict the set of refs to base their
   naming output on, and also learned to take negative patterns to
   name refs not to be used for naming via their "--exclude" option.

 * Deletion of a branch "foo/bar" could remove .git/refs/heads/foo
   once there no longer is any other branch whose name begins with
   "foo/", but we didn't do so so far.  Now we do.

 * When "git merge" detects a path that is renamed in one history
   while the other history deleted (or modified) it, it now reports
   both paths to help the user understand what is going on in the two
   histories being merged.

 * The  part in "http.." configuration variable
   can now be spelled with '*' that serves as wildcard.
   E.g. "http.https://*.example.com.proxy; can be used to specify the
   proxy used for https://a.example.com, https://b.example.com, etc.,
   i.e. any host in the example.com domain.

 * "git tag" did not leave useful message when adding a new entry to
   reflog; this was left unnoticed for a long time because refs/tags/*
   doesn't keep reflog by default.

 * The "negative" pathspec feature was somewhat more cumbersome to use
   than necessary in that its short-hand used "!" which needed to be
   escaped from shells, and it required "exclude from what?" specified.

 * The command line options for ssh invocation needs to be tweaked for
   some implementations of SSH (e.g. PuTTY plink wants "-P "
   while OpenSSH wants "-p " to specify port to connect to), and
   the variant was guessed when GIT_SSH environment variable is used
   to specify it.  The logic to guess now ap

[ANNOUNCE] Git v2.13.0-rc1

2017-04-26 Thread Junio C Hamano
A release candidate Git v2.13.0-rc1 is now available for testing
at the usual places.  It is comprised of 684 non-merge commits
since v2.12.0, contributed by 54 people, 13 of which are new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.13.0-rc1' tag and the 'master' 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

New contributors whose contributions weren't in v2.12.0 are as follows.
Welcome to the Git development community!

  Allan Xavier, Andreas Heiduk, Devin J. Pohly, Devin Lehmacher,
  Hiroshi Shirosaki, Johan Hovold, Maxim Moseychuk, Mostyn
  Bramley-Moore, Prathamesh Chavan, Quentin Pradet, Segev Finer,
  Sergey Ryazanov, and Valery Tolstov.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Ævar Arnfjörð Bjarmason, Alex Henrie, Brandon Williams, brian
  m. carlson, Christian Couder, Cornelius Weig, David Aguilar,
  David Turner, Eric Wong, Giuseppe Bilotta, Jacob Keller, Jeff
  Hostetler, Jeff King, Johannes Schindelin, Jonathan Nieder,
  Jonathan Tan, Junio C Hamano, Karthik Nayak, Kevin Willford,
  Kyle Meyer, Lars Schneider, Linus Torvalds, Luke Diamand, Matt
  McCutchen, Michael Haggerty, Michael J Gruber, Michael Rappazzo,
  Mike Hommey, Nguyễn Thái Ngọc Duy, Patrick Steinhardt, Ralf
  Thielow, Ramsay Jones, René Scharfe, Ross Lagerwall, Santiago
  Torres, Sebastian Schuberth, Stefan Beller, SZEDER Gábor,
  Thomas Gummerer, Torsten Bögershausen, and Vegard Nossum.



Git 2.13 Release Notes (draft)
==

Backward compatibility notes.

 * Use of an empty string as a pathspec element that is used for
   'everything matches' is still warned and Git asks users to use a
   more explicit '.' for that instead.  The hope is that existing
   users will not mind this change, and eventually the warning can be
   turned into a hard error, upgrading the deprecation into removal of
   this (mis)feature.  That is not scheduled to happen in the upcoming
   release (yet).

 * The historical argument order "git merge  HEAD ..."
   has been deprecated for quite some time, and is now removed.

 * The default location "~/.git-credential-cache/socket" for the
   socket used to communicate with the credential-cache daemon has
   been moved to "~/.cache/git/credential/socket".

 * Git now avoids blindly falling back to ".git" when the setup
   sequence said we are _not_ in Git repository.  A corner case that
   happens to work right now may be broken by a call to die("BUG").
   We've tried hard to locate such cases and fixed them, but there
   might still be cases that need to be addressed--bug reports are
   greatly appreciated.


Updates since v2.12
---

UI, Workflows & Features

 * "git describe" and "git name-rev" have been taught to take more
   than one refname patterns to restrict the set of refs to base their
   naming output on, and also learned to take negative patterns to
   name refs not to be used for naming via their "--exclude" option.

 * Deletion of a branch "foo/bar" could remove .git/refs/heads/foo
   once there no longer is any other branch whose name begins with
   "foo/", but we didn't do so so far.  Now we do.

 * When "git merge" detects a path that is renamed in one history
   while the other history deleted (or modified) it, it now reports
   both paths to help the user understand what is going on in the two
   histories being merged.

 * The  part in "http.." configuration variable
   can now be spelled with '*' that serves as wildcard.
   E.g. "http.https://*.example.com.proxy; can be used to specify the
   proxy used for https://a.example.com, https://b.example.com, etc.,
   i.e. any host in the example.com domain.

 * "git tag" did not leave useful message when adding a new entry to
   reflog; this was left unnoticed for a long time because refs/tags/*
   doesn't keep reflog by default.

 * The "negative" pathspec feature was somewhat more cumbersome to use
   than necessary in that its short-hand used "!" which needed to be
   escaped from shells, and it required "exclude from what?" specified.

 * The command line options for ssh invocation needs to be tweaked for
   some implementations of SSH (e.g. PuTTY plink wants "-P "
   while OpenSSH wants "-p " to specify port to connect to), and
   the variant was guessed when GIT_SSH environment variable is used
   to specify it.  The logic to guess now ap

[ANNOUNCE] Git v2.12.2

2017-03-24 Thread Junio C Hamano
th --no-index
  show-branch: drop head_len variable
  show-branch: store resolved head in heap buffer
  remote: avoid reading $GIT_DIR config in non-repo
  grep: treat revs the same for --untracked as for --no-index
  show-branch: use skip_prefix to drop magic numbers
  tempfile: set errno to a known value before calling ferror()
  t6300: avoid creating refs/heads/HEAD
  ewah: fix eword_t/uint64_t confusion
  receive-pack: fix deadlock when we cannot create tmpdir
  send-pack: extract parsing of "unpack" response
  send-pack: use skip_prefix for parsing unpack status
  send-pack: improve unpack-status error messages
  send-pack: read "unpack" status even on pack-objects failure
  send-pack: report signal death of pack-objects
  http-walker: fix buffer underflow processing remote alternates

Johan Hovold (1):
  send-email: only allow one address per body tag

Jonathan Nieder (1):
  remote helpers: avoid blind fall-back to ".git" when setting GIT_DIR

Jonathan Tan (2):
  grep: do not unnecessarily query repo for "--"
  upload-pack: report "not our ref" to client

Junio C Hamano (5):
  config: move a few helper functions up
  config: use git_config_parse_key() in git_config_parse_parameter()
  diff: do not short-cut CHECK_SIZE_ONLY check in diff_populate_filespec()
  Prepare for 2.12.2
  Git 2.12.2

Michael J Gruber (2):
  git-status: make porcelain more robust
  mailmap: use Michael J Gruber's new address

Nguyễn Thái Ngọc Duy (1):
  git-commit.txt: list post-rewrite in HOOKS section

Patrick Steinhardt (2):
  docs/diffcore: fix grammar in diffcore-rename header
  docs/diffcore: unquote "Complete Rewrites" in headers

Ramsay Jones (2):
  wrapper.c: remove unused git_mkstemp() function
  wrapper.c: remove unused gitmkstemps() function

René Scharfe (3):
  sha1_file: release fallback base's memory in unpack_entry()
  commit: be more precise when searching for headers
  commit: don't check for space twice when looking for header

Ross Lagerwall (1):
  remote: ignore failure to remove missing branch..merge

Sebastian Schuberth (1):
  contrib: git-remote-{bzr,hg} placeholders don't need Python

Stefan Beller (1):
  submodule-config: correct error reporting for invalid ignore value

Ævar Arnfjörð Bjarmason (2):
  doc: change erroneous --[no]-whatever into --[no-]whatever
  push: mention "push.default=tracking" in the documentation



[ANNOUNCE] Git v2.12.2

2017-03-24 Thread Junio C Hamano
th --no-index
  show-branch: drop head_len variable
  show-branch: store resolved head in heap buffer
  remote: avoid reading $GIT_DIR config in non-repo
  grep: treat revs the same for --untracked as for --no-index
  show-branch: use skip_prefix to drop magic numbers
  tempfile: set errno to a known value before calling ferror()
  t6300: avoid creating refs/heads/HEAD
  ewah: fix eword_t/uint64_t confusion
  receive-pack: fix deadlock when we cannot create tmpdir
  send-pack: extract parsing of "unpack" response
  send-pack: use skip_prefix for parsing unpack status
  send-pack: improve unpack-status error messages
  send-pack: read "unpack" status even on pack-objects failure
  send-pack: report signal death of pack-objects
  http-walker: fix buffer underflow processing remote alternates

Johan Hovold (1):
  send-email: only allow one address per body tag

Jonathan Nieder (1):
  remote helpers: avoid blind fall-back to ".git" when setting GIT_DIR

Jonathan Tan (2):
  grep: do not unnecessarily query repo for "--"
  upload-pack: report "not our ref" to client

Junio C Hamano (5):
  config: move a few helper functions up
  config: use git_config_parse_key() in git_config_parse_parameter()
  diff: do not short-cut CHECK_SIZE_ONLY check in diff_populate_filespec()
  Prepare for 2.12.2
  Git 2.12.2

Michael J Gruber (2):
  git-status: make porcelain more robust
  mailmap: use Michael J Gruber's new address

Nguyễn Thái Ngọc Duy (1):
  git-commit.txt: list post-rewrite in HOOKS section

Patrick Steinhardt (2):
  docs/diffcore: fix grammar in diffcore-rename header
  docs/diffcore: unquote "Complete Rewrites" in headers

Ramsay Jones (2):
  wrapper.c: remove unused git_mkstemp() function
  wrapper.c: remove unused gitmkstemps() function

René Scharfe (3):
  sha1_file: release fallback base's memory in unpack_entry()
  commit: be more precise when searching for headers
  commit: don't check for space twice when looking for header

Ross Lagerwall (1):
  remote: ignore failure to remove missing branch..merge

Sebastian Schuberth (1):
  contrib: git-remote-{bzr,hg} placeholders don't need Python

Stefan Beller (1):
  submodule-config: correct error reporting for invalid ignore value

Ævar Arnfjörð Bjarmason (2):
  doc: change erroneous --[no]-whatever into --[no-]whatever
  push: mention "push.default=tracking" in the documentation



[ANNOUNCE] Git v2.12.1

2017-03-20 Thread Junio C Hamano
The latest maintenance release Git v2.12.1 is now available at
the usual places.

The tarballs are NOT YET found at:

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

but hopefully will be in a few days (I am having trouble reaching
there).

The following public repositories all have a copy of the 'v2.12.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.12.1 Release Notes
=

Fixes since v2.12
-

 * Reduce authentication round-trip over HTTP when the server supports
   just a single authentication method.  This also improves the
   behaviour when Git is misconfigured to enable http.emptyAuth
   against a server that does not authenticate without a username
   (i.e. not using Kerberos etc., which makes http.emptyAuth
   pointless).

 * Windows port wants to use OpenSSL's implementation of SHA-1
   routines, so let them.

 * Add 32-bit Linux variant to the set of platforms to be tested with
   Travis CI.

 * When a redirected http transport gets an error during the
   redirected request, we ignored the error we got from the server,
   and ended up giving a not-so-useful error message.

 * The patch subcommand of "git add -i" was meant to have paths
   selection prompt just like other subcommand, unlike "git add -p"
   directly jumps to hunk selection.  Recently, this was broken and
   "add -i" lost the paths selection dialog, but it now has been
   fixed.

 * Git v2.12 was shipped with an embarrassing breakage where various
   operations that verify paths given from the user stopped dying when
   seeing an issue, and instead later triggering segfault.

 * The code to parse "git log -L..." command line was buggy when there
   are many ranges specified with -L; overrun of the allocated buffer
   has been fixed.

 * The command-line parsing of "git log -L" copied internal data
   structures using incorrect size on ILP32 systems.

Also contains various documentation updates and code clean-ups.



Changes since v2.12.0 are as follows:

Allan Xavier (1):
  line-log.c: prevent crash during union of too many ranges

Jeff Hostetler (1):
  mingw: use OpenSSL's SHA-1 routines

Jeff King (3):
  http: restrict auth methods to what the server advertises
  http: add an "auto" mode for http.emptyauth
  add--interactive: fix missing file prompt for patch mode with "-i"

Johannes Schindelin (3):
  Travis: also test on 32-bit Linux
  t1501: demonstrate NULL pointer access with invalid GIT_WORK_TREE
  real_pathdup(): fix callsites that wanted it to die on error

Jonathan Tan (1):
  http: attempt updating base URL only if no error

Junio C Hamano (2):
  Preparing for 2.12.1
  Git 2.12.1

Maxim Moseychuk (2):
  stop_progress_msg: convert xsnprintf to xstrfmt
  bisect_next_all: convert xsnprintf to xstrfmt

Vegard Nossum (1):
  line-log: use COPY_ARRAY to fix mis-sized memcpy



[ANNOUNCE] Git v2.12.1

2017-03-20 Thread Junio C Hamano
The latest maintenance release Git v2.12.1 is now available at
the usual places.

The tarballs are NOT YET found at:

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

but hopefully will be in a few days (I am having trouble reaching
there).

The following public repositories all have a copy of the 'v2.12.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.12.1 Release Notes
=

Fixes since v2.12
-

 * Reduce authentication round-trip over HTTP when the server supports
   just a single authentication method.  This also improves the
   behaviour when Git is misconfigured to enable http.emptyAuth
   against a server that does not authenticate without a username
   (i.e. not using Kerberos etc., which makes http.emptyAuth
   pointless).

 * Windows port wants to use OpenSSL's implementation of SHA-1
   routines, so let them.

 * Add 32-bit Linux variant to the set of platforms to be tested with
   Travis CI.

 * When a redirected http transport gets an error during the
   redirected request, we ignored the error we got from the server,
   and ended up giving a not-so-useful error message.

 * The patch subcommand of "git add -i" was meant to have paths
   selection prompt just like other subcommand, unlike "git add -p"
   directly jumps to hunk selection.  Recently, this was broken and
   "add -i" lost the paths selection dialog, but it now has been
   fixed.

 * Git v2.12 was shipped with an embarrassing breakage where various
   operations that verify paths given from the user stopped dying when
   seeing an issue, and instead later triggering segfault.

 * The code to parse "git log -L..." command line was buggy when there
   are many ranges specified with -L; overrun of the allocated buffer
   has been fixed.

 * The command-line parsing of "git log -L" copied internal data
   structures using incorrect size on ILP32 systems.

Also contains various documentation updates and code clean-ups.



Changes since v2.12.0 are as follows:

Allan Xavier (1):
  line-log.c: prevent crash during union of too many ranges

Jeff Hostetler (1):
  mingw: use OpenSSL's SHA-1 routines

Jeff King (3):
  http: restrict auth methods to what the server advertises
  http: add an "auto" mode for http.emptyauth
  add--interactive: fix missing file prompt for patch mode with "-i"

Johannes Schindelin (3):
  Travis: also test on 32-bit Linux
  t1501: demonstrate NULL pointer access with invalid GIT_WORK_TREE
  real_pathdup(): fix callsites that wanted it to die on error

Jonathan Tan (1):
  http: attempt updating base URL only if no error

Junio C Hamano (2):
  Preparing for 2.12.1
  Git 2.12.1

Maxim Moseychuk (2):
  stop_progress_msg: convert xsnprintf to xstrfmt
  bisect_next_all: convert xsnprintf to xstrfmt

Vegard Nossum (1):
  line-log: use COPY_ARRAY to fix mis-sized memcpy



Re: [ANNOUNCE] Git v2.12.1

2017-03-20 Thread Junio C Hamano
Junio C Hamano <gits...@pobox.com> writes:

> The tarballs are NOT YET found at:
>
> https://www.kernel.org/pub/software/scm/git/
>
> but hopefully will be in a few days (I am having trouble reaching
> there).

Now they are.

Thanks.



Re: [ANNOUNCE] Git v2.12.1

2017-03-20 Thread Junio C Hamano
Junio C Hamano  writes:

> The tarballs are NOT YET found at:
>
> https://www.kernel.org/pub/software/scm/git/
>
> but hopefully will be in a few days (I am having trouble reaching
> there).

Now they are.

Thanks.



Re: [ANNOUNCE] Git v2.12.0

2017-02-25 Thread Junio C Hamano
Willy Tarreau <w...@1wt.eu> writes:

> Hi Junio,
>
> On Fri, Feb 24, 2017 at 11:28:58AM -0800, Junio C Hamano wrote:
>>  * Use of an empty string that is used for 'everything matches' is
>>still warned and Git asks users to use a more explicit '.' for that
>>instead.  The hope is that existing users will not mind this
>>change, and eventually the warning can be turned into a hard error,
>>upgrading the deprecation into removal of this (mis)feature.  That
>>is not scheduled to happen in the upcoming release (yet).
>
> FWIW '.' is not equivalent to '' when it comes to grep or such commands,

I am amused and amazed ;-).  

The above is not about "grep" but was meant to describe "pathspec".
We used to take "" as a pathspec element that means "every path
matches", but recently started deprecating it and ask users to be
more explicit by using "." (as a directory as a pathspec element
matches everything inside the directory).  We are not changing the
pattern matching done by "git grep" or "log --grep".  What is
changing is that between the two that means the same thing:

cd t/ && git log ""
cd t/ && git log .

the former is deprecated.

I find it amusing that I have been writing the above in the draft
release notes without realizing that I failed to say that it is
about pathspec for quite some time, and without realizing that the
above can be misinterpreted as if it is talking about grep patterns.

And I find it amazing that it took this long for somebody to spot
that misleading vagueness in this description and point it out.

It should probably be updated to start like so:

Use of an empty string as a pathspec element that is used
for 'everything matches' is ...

Thanks.


Re: [ANNOUNCE] Git v2.12.0

2017-02-25 Thread Junio C Hamano
Willy Tarreau  writes:

> Hi Junio,
>
> On Fri, Feb 24, 2017 at 11:28:58AM -0800, Junio C Hamano wrote:
>>  * Use of an empty string that is used for 'everything matches' is
>>still warned and Git asks users to use a more explicit '.' for that
>>instead.  The hope is that existing users will not mind this
>>change, and eventually the warning can be turned into a hard error,
>>upgrading the deprecation into removal of this (mis)feature.  That
>>is not scheduled to happen in the upcoming release (yet).
>
> FWIW '.' is not equivalent to '' when it comes to grep or such commands,

I am amused and amazed ;-).  

The above is not about "grep" but was meant to describe "pathspec".
We used to take "" as a pathspec element that means "every path
matches", but recently started deprecating it and ask users to be
more explicit by using "." (as a directory as a pathspec element
matches everything inside the directory).  We are not changing the
pattern matching done by "git grep" or "log --grep".  What is
changing is that between the two that means the same thing:

cd t/ && git log ""
cd t/ && git log .

the former is deprecated.

I find it amusing that I have been writing the above in the draft
release notes without realizing that I failed to say that it is
about pathspec for quite some time, and without realizing that the
above can be misinterpreted as if it is talking about grep patterns.

And I find it amazing that it took this long for somebody to spot
that misleading vagueness in this description and point it out.

It should probably be updated to start like so:

Use of an empty string as a pathspec element that is used
for 'everything matches' is ...

Thanks.


[ANNOUNCE] Git v2.12.0

2017-02-24 Thread Junio C Hamano
The latest feature release Git v2.12.0 is now available at the
usual places.  It is comprised of 517 non-merge commits since
v2.11.0, contributed by 80 people, 24 of which are new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the 'v2.12.0'
tag and the 'master' 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

New contributors whose contributions weren't in v2.11.0 are as follows.
Welcome to the Git development community!

  Alan Davies, Andreas Krey, Cornelius Weig, Damien Regad, David
  Pursehouse, Denton Liu, George Vanburgh, Igor Kushnir, Jack
  Bates, Joachim Jablon, Jordi Mas, Kristoffer Haugsbakk, Kyle
  Meyer, Luis Ressel, Lukas Puehringer, Markus Hitter, Peter Law,
  Rasmus Villemoes, Rogier Goossens, Stefan Dotterweich, Steven
  Penny, Vinicius Kursancew, Vladimir Panteleev, and Wolfram Sang.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  마누엘, Alexander Shopov, Alex Henrie, Anthony Ramine,
  Beat Bolli, Brandon Williams, brian m. carlson, Changwoo Ryu,
  Chris Packham, Christian Couder, David Aguilar, David Turner,
  Dennis Kaarsemaker, Dimitriy Ryazantcev, Elia Pinto, Eric Wong,
  Grégoire Paris, Heiko Voigt, Jacob Keller, Jean-Noel Avila,
  Jeff Hostetler, Jeff King, Jiang Xin, Johannes Schindelin,
  Johannes Sixt, Jonathan Tan, Junio C Hamano, Kyle J. McKay,
  Lars Schneider, Linus Torvalds, Luke Diamand, Matt McCutchen,
  Max Kirillov, Mike Hommey, Nguyễn Thái Ngọc Duy, Patrick
  Steinhardt, Paul Mackerras, Peter Krefting, Philip Oakley,
  Pranit Bauva, Ralf Thielow, Ramsay Jones, Ray Chen, René
  Scharfe, Richard Hansen, Santiago Torres, Satoshi Yasushima,
  Stefan Beller, Stephan Beyer, SZEDER Gábor, Thomas Gummerer,
  Torsten Bögershausen, Trần Ngọc Quân, Vasco Almeida,
  Vegard Nossum, and Vitaly "_Vi" Shukela.



Git 2.12 Release Notes
==

Backward compatibility notes.

 * Use of an empty string that is used for 'everything matches' is
   still warned and Git asks users to use a more explicit '.' for that
   instead.  The hope is that existing users will not mind this
   change, and eventually the warning can be turned into a hard error,
   upgrading the deprecation into removal of this (mis)feature.  That
   is not scheduled to happen in the upcoming release (yet).

 * The historical argument order "git merge  HEAD ..."
   has been deprecated for quite some time, and will be removed in a
   future release.

 * An ancient script "git relink" has been removed.


Updates since v2.11
---

UI, Workflows & Features

 * Various updates to "git p4".

 * "git p4" didn't interact with the internal of .git directory
   correctly in the modern "git-worktree"-enabled world.

 * "git branch --list" and friends learned "--ignore-case" option to
   optionally sort branches and tags case insensitively.

 * In addition to %(subject), %(body), "log --pretty=format:..."
   learned a new placeholder %(trailers).

 * "git rebase" learned "--quit" option, which allows a user to
   remove the metadata left by an earlier "git rebase" that was
   manually aborted without using "git rebase --abort".

 * "git clone --reference $there --recurse-submodules $super" has been
   taught to guess repositories usable as references for submodules of
   $super that are embedded in $there while making a clone of the
   superproject borrow objects from $there; extend the mechanism to
   also allow submodules of these submodules to borrow repositories
   embedded in these clones of the submodules embedded in the clone of
   the superproject.

 * Porcelain scripts written in Perl are getting internationalized.

 * "git merge --continue" has been added as a synonym to "git commit"
   to conclude a merge that has stopped due to conflicts.

 * Finer-grained control of what protocols are allowed for transports
   during clone/fetch/push have been enabled via a new configuration
   mechanism.

 * "git shortlog" learned "--committer" option to group commits by
   committer, instead of author.

 * GitLFS integration with "git p4" has been updated.

 * The isatty() emulation for Windows has been updated to eradicate
   the previous hack that depended on internals of (older) MSVC
   runtime.

 * Some platforms no longer understand "latin-1" that is still seen in
   the wild in e-mail headers; replace them with "iso-8859-1" that is
   more widely

[ANNOUNCE] Git v2.12.0

2017-02-24 Thread Junio C Hamano
The latest feature release Git v2.12.0 is now available at the
usual places.  It is comprised of 517 non-merge commits since
v2.11.0, contributed by 80 people, 24 of which are new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the 'v2.12.0'
tag and the 'master' 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

New contributors whose contributions weren't in v2.11.0 are as follows.
Welcome to the Git development community!

  Alan Davies, Andreas Krey, Cornelius Weig, Damien Regad, David
  Pursehouse, Denton Liu, George Vanburgh, Igor Kushnir, Jack
  Bates, Joachim Jablon, Jordi Mas, Kristoffer Haugsbakk, Kyle
  Meyer, Luis Ressel, Lukas Puehringer, Markus Hitter, Peter Law,
  Rasmus Villemoes, Rogier Goossens, Stefan Dotterweich, Steven
  Penny, Vinicius Kursancew, Vladimir Panteleev, and Wolfram Sang.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  마누엘, Alexander Shopov, Alex Henrie, Anthony Ramine,
  Beat Bolli, Brandon Williams, brian m. carlson, Changwoo Ryu,
  Chris Packham, Christian Couder, David Aguilar, David Turner,
  Dennis Kaarsemaker, Dimitriy Ryazantcev, Elia Pinto, Eric Wong,
  Grégoire Paris, Heiko Voigt, Jacob Keller, Jean-Noel Avila,
  Jeff Hostetler, Jeff King, Jiang Xin, Johannes Schindelin,
  Johannes Sixt, Jonathan Tan, Junio C Hamano, Kyle J. McKay,
  Lars Schneider, Linus Torvalds, Luke Diamand, Matt McCutchen,
  Max Kirillov, Mike Hommey, Nguyễn Thái Ngọc Duy, Patrick
  Steinhardt, Paul Mackerras, Peter Krefting, Philip Oakley,
  Pranit Bauva, Ralf Thielow, Ramsay Jones, Ray Chen, René
  Scharfe, Richard Hansen, Santiago Torres, Satoshi Yasushima,
  Stefan Beller, Stephan Beyer, SZEDER Gábor, Thomas Gummerer,
  Torsten Bögershausen, Trần Ngọc Quân, Vasco Almeida,
  Vegard Nossum, and Vitaly "_Vi" Shukela.



Git 2.12 Release Notes
==

Backward compatibility notes.

 * Use of an empty string that is used for 'everything matches' is
   still warned and Git asks users to use a more explicit '.' for that
   instead.  The hope is that existing users will not mind this
   change, and eventually the warning can be turned into a hard error,
   upgrading the deprecation into removal of this (mis)feature.  That
   is not scheduled to happen in the upcoming release (yet).

 * The historical argument order "git merge  HEAD ..."
   has been deprecated for quite some time, and will be removed in a
   future release.

 * An ancient script "git relink" has been removed.


Updates since v2.11
---

UI, Workflows & Features

 * Various updates to "git p4".

 * "git p4" didn't interact with the internal of .git directory
   correctly in the modern "git-worktree"-enabled world.

 * "git branch --list" and friends learned "--ignore-case" option to
   optionally sort branches and tags case insensitively.

 * In addition to %(subject), %(body), "log --pretty=format:..."
   learned a new placeholder %(trailers).

 * "git rebase" learned "--quit" option, which allows a user to
   remove the metadata left by an earlier "git rebase" that was
   manually aborted without using "git rebase --abort".

 * "git clone --reference $there --recurse-submodules $super" has been
   taught to guess repositories usable as references for submodules of
   $super that are embedded in $there while making a clone of the
   superproject borrow objects from $there; extend the mechanism to
   also allow submodules of these submodules to borrow repositories
   embedded in these clones of the submodules embedded in the clone of
   the superproject.

 * Porcelain scripts written in Perl are getting internationalized.

 * "git merge --continue" has been added as a synonym to "git commit"
   to conclude a merge that has stopped due to conflicts.

 * Finer-grained control of what protocols are allowed for transports
   during clone/fetch/push have been enabled via a new configuration
   mechanism.

 * "git shortlog" learned "--committer" option to group commits by
   committer, instead of author.

 * GitLFS integration with "git p4" has been updated.

 * The isatty() emulation for Windows has been updated to eradicate
   the previous hack that depended on internals of (older) MSVC
   runtime.

 * Some platforms no longer understand "latin-1" that is still seen in
   the wild in e-mail headers; replace them with "iso-8859-1" that is
   more widely

[ANNOUNCE] Git v2.12.0-rc2

2017-02-17 Thread Junio C Hamano
A release candidate Git v2.12.0-rc2 is now available for testing
at the usual places.  It is comprised of 487 non-merge commits
since v2.11.0, contributed by 67 people, 21 of which are new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.12.0-rc2' tag and the 'master' 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

New contributors whose contributions weren't in v2.11.0 are as follows.
Welcome to the Git development community!

  Alan Davies, Andreas Krey, Cornelius Weig, David Pursehouse,
  Denton Liu, George Vanburgh, Igor Kushnir, Jack Bates,
  Kristoffer Haugsbakk, Kyle Meyer, Luis Ressel, Lukas Puehringer,
  Markus Hitter, Peter Law, Rasmus Villemoes, Rogier Goossens,
  Stefan Dotterweich, Steven Penny, Vinicius Kursancew, Vladimir
  Panteleev, and Wolfram Sang.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  마누엘, Alex Henrie, Beat Bolli, Brandon Williams, brian
  m. carlson, Chris Packham, Christian Couder, David Aguilar, David
  Turner, Dennis Kaarsemaker, Dimitriy Ryazantcev, Elia Pinto,
  Eric Wong, Heiko Voigt, Jacob Keller, Jeff Hostetler, Jeff King,
  Johannes Schindelin, Johannes Sixt, Jonathan Tan, Junio C Hamano,
  Kyle J. McKay, Lars Schneider, Linus Torvalds, Luke Diamand, Matt
  McCutchen, Max Kirillov, Mike Hommey, Nguyễn Thái Ngọc Duy,
  Patrick Steinhardt, Paul Mackerras, Philip Oakley, Pranit Bauva,
  Ramsay Jones, René Scharfe, Richard Hansen, Santiago Torres,
  Satoshi Yasushima, Stefan Beller, Stephan Beyer, SZEDER Gábor,
  Thomas Gummerer, Torsten Bögershausen, Vasco Almeida, Vegard
  Nossum, and Vitaly "_Vi" Shukela.



Git 2.12 Release Notes (draft)
==

Backward compatibility notes.

 * Use of an empty string that is used for 'everything matches' is
   still warned and Git asks users to use a more explicit '.' for that
   instead.  The hope is that existing users will not mind this
   change, and eventually the warning can be turned into a hard error,
   upgrading the deprecation into removal of this (mis)feature.  That
   is not scheduled to happen in the upcoming release (yet).

 * The historical argument order "git merge  HEAD ..."
   has been deprecated for quite some time, and will be removed in a
   future release.

 * An ancient script "git relink" has been removed.


Updates since v2.11
---

UI, Workflows & Features

 * Various updates to "git p4".

 * "git p4" didn't interact with the internal of .git directory
   correctly in the modern "git-worktree"-enabled world.

 * "git branch --list" and friends learned "--ignore-case" option to
   optionally sort branches and tags case insensitively.

 * In addition to %(subject), %(body), "log --pretty=format:..."
   learned a new placeholder %(trailers).

 * "git rebase" learned "--quit" option, which allows a user to
   remove the metadata left by an earlier "git rebase" that was
   manually aborted without using "git rebase --abort".

 * "git clone --reference $there --recurse-submodules $super" has been
   taught to guess repositories usable as references for submodules of
   $super that are embedded in $there while making a clone of the
   superproject borrow objects from $there; extend the mechanism to
   also allow submodules of these submodules to borrow repositories
   embedded in these clones of the submodules embedded in the clone of
   the superproject.

 * Porcelain scripts written in Perl are getting internationalized.

 * "git merge --continue" has been added as a synonym to "git commit"
   to conclude a merge that has stopped due to conflicts.

 * Finer-grained control of what protocols are allowed for transports
   during clone/fetch/push have been enabled via a new configuration
   mechanism.

 * "git shortlog" learned "--committer" option to group commits by
   committer, instead of author.

 * GitLFS integration with "git p4" has been updated.

 * The isatty() emulation for Windows has been updated to eradicate
   the previous hack that depended on internals of (older) MSVC
   runtime.

 * Some platforms no longer understand "latin-1" that is still seen in
   the wild in e-mail headers; replace them with "iso-8859-1" that is
   more widely known when conversion fails from/to it.

 * "git grep" has been taught to optionally recurse into submodules.

 * "git rm" used to refus

[ANNOUNCE] Git v2.12.0-rc2

2017-02-17 Thread Junio C Hamano
A release candidate Git v2.12.0-rc2 is now available for testing
at the usual places.  It is comprised of 487 non-merge commits
since v2.11.0, contributed by 67 people, 21 of which are new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.12.0-rc2' tag and the 'master' 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

New contributors whose contributions weren't in v2.11.0 are as follows.
Welcome to the Git development community!

  Alan Davies, Andreas Krey, Cornelius Weig, David Pursehouse,
  Denton Liu, George Vanburgh, Igor Kushnir, Jack Bates,
  Kristoffer Haugsbakk, Kyle Meyer, Luis Ressel, Lukas Puehringer,
  Markus Hitter, Peter Law, Rasmus Villemoes, Rogier Goossens,
  Stefan Dotterweich, Steven Penny, Vinicius Kursancew, Vladimir
  Panteleev, and Wolfram Sang.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  마누엘, Alex Henrie, Beat Bolli, Brandon Williams, brian
  m. carlson, Chris Packham, Christian Couder, David Aguilar, David
  Turner, Dennis Kaarsemaker, Dimitriy Ryazantcev, Elia Pinto,
  Eric Wong, Heiko Voigt, Jacob Keller, Jeff Hostetler, Jeff King,
  Johannes Schindelin, Johannes Sixt, Jonathan Tan, Junio C Hamano,
  Kyle J. McKay, Lars Schneider, Linus Torvalds, Luke Diamand, Matt
  McCutchen, Max Kirillov, Mike Hommey, Nguyễn Thái Ngọc Duy,
  Patrick Steinhardt, Paul Mackerras, Philip Oakley, Pranit Bauva,
  Ramsay Jones, René Scharfe, Richard Hansen, Santiago Torres,
  Satoshi Yasushima, Stefan Beller, Stephan Beyer, SZEDER Gábor,
  Thomas Gummerer, Torsten Bögershausen, Vasco Almeida, Vegard
  Nossum, and Vitaly "_Vi" Shukela.



Git 2.12 Release Notes (draft)
==

Backward compatibility notes.

 * Use of an empty string that is used for 'everything matches' is
   still warned and Git asks users to use a more explicit '.' for that
   instead.  The hope is that existing users will not mind this
   change, and eventually the warning can be turned into a hard error,
   upgrading the deprecation into removal of this (mis)feature.  That
   is not scheduled to happen in the upcoming release (yet).

 * The historical argument order "git merge  HEAD ..."
   has been deprecated for quite some time, and will be removed in a
   future release.

 * An ancient script "git relink" has been removed.


Updates since v2.11
---

UI, Workflows & Features

 * Various updates to "git p4".

 * "git p4" didn't interact with the internal of .git directory
   correctly in the modern "git-worktree"-enabled world.

 * "git branch --list" and friends learned "--ignore-case" option to
   optionally sort branches and tags case insensitively.

 * In addition to %(subject), %(body), "log --pretty=format:..."
   learned a new placeholder %(trailers).

 * "git rebase" learned "--quit" option, which allows a user to
   remove the metadata left by an earlier "git rebase" that was
   manually aborted without using "git rebase --abort".

 * "git clone --reference $there --recurse-submodules $super" has been
   taught to guess repositories usable as references for submodules of
   $super that are embedded in $there while making a clone of the
   superproject borrow objects from $there; extend the mechanism to
   also allow submodules of these submodules to borrow repositories
   embedded in these clones of the submodules embedded in the clone of
   the superproject.

 * Porcelain scripts written in Perl are getting internationalized.

 * "git merge --continue" has been added as a synonym to "git commit"
   to conclude a merge that has stopped due to conflicts.

 * Finer-grained control of what protocols are allowed for transports
   during clone/fetch/push have been enabled via a new configuration
   mechanism.

 * "git shortlog" learned "--committer" option to group commits by
   committer, instead of author.

 * GitLFS integration with "git p4" has been updated.

 * The isatty() emulation for Windows has been updated to eradicate
   the previous hack that depended on internals of (older) MSVC
   runtime.

 * Some platforms no longer understand "latin-1" that is still seen in
   the wild in e-mail headers; replace them with "iso-8859-1" that is
   more widely known when conversion fails from/to it.

 * "git grep" has been taught to optionally recurse into submodules.

 * "git rm" used to refus

[ANNOUNCE] Git v2.12.0-rc1

2017-02-10 Thread Junio C Hamano
A release candidate Git v2.12.0-rc1 is now available for testing
at the usual places.  It is comprised of 455 non-merge commits
since v2.11.0, contributed by 65 people, 20 of which are new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.12.0-rc1' tag and the 'master' 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

New contributors whose contributions weren't in v2.11.0 are as follows.
Welcome to the Git development community!

  Alan Davies, Andreas Krey, Cornelius Weig, Denton Liu, George
  Vanburgh, Igor Kushnir, Jack Bates, Kristoffer Haugsbakk, Kyle
  Meyer, Luis Ressel, Lukas Puehringer, Markus Hitter, Peter Law,
  Rasmus Villemoes, Rogier Goossens, Stefan Dotterweich, Steven
  Penny, Vinicius Kursancew, Vladimir Panteleev, and Wolfram Sang.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  마누엘, Alex Henrie, Beat Bolli, Brandon Williams, brian
  m. carlson, Chris Packham, Christian Couder, David Aguilar, David
  Turner, Dennis Kaarsemaker, Dimitriy Ryazantcev, Elia Pinto,
  Eric Wong, Heiko Voigt, Jacob Keller, Jeff Hostetler, Jeff King,
  Johannes Schindelin, Johannes Sixt, Jonathan Tan, Junio C Hamano,
  Kyle J. McKay, Lars Schneider, Linus Torvalds, Luke Diamand, Matt
  McCutchen, Max Kirillov, Mike Hommey, Nguyễn Thái Ngọc Duy,
  Patrick Steinhardt, Paul Mackerras, Philip Oakley, Pranit Bauva,
  Ramsay Jones, René Scharfe, Richard Hansen, Santiago Torres,
  Satoshi Yasushima, Stefan Beller, Stephan Beyer, SZEDER Gábor,
  Torsten Bögershausen, Vasco Almeida, Vegard Nossum, and Vitaly
  "_Vi" Shukela.



Git 2.12 Release Notes (draft)
==

Backward compatibility notes.

 * Use of an empty string that is used for 'everything matches' is
   still warned and Git asks users to use a more explicit '.' for that
   instead.  The hope is that existing users will not mind this
   change, and eventually the warning can be turned into a hard error,
   upgrading the deprecation into removal of this (mis)feature.  That
   is not scheduled to happen in the upcoming release (yet).

 * The historical argument order "git merge  HEAD ..."
   has been deprecated for quite some time, and will be removed in a
   future release.

 * An ancient script "git relink" has been removed.


Updates since v2.11
---

UI, Workflows & Features

 * Various updates to "git p4".

 * "git p4" didn't interact with the internal of .git directory
   correctly in the modern "git-worktree"-enabled world.

 * "git branch --list" and friends learned "--ignore-case" option to
   optionally sort branches and tags case insensitively.

 * In addition to %(subject), %(body), "log --pretty=format:..."
   learned a new placeholder %(trailers).

 * "git rebase" learned "--quit" option, which allows a user to
   remove the metadata left by an earlier "git rebase" that was
   manually aborted without using "git rebase --abort".

 * "git clone --reference $there --recurse-submodules $super" has been
   taught to guess repositories usable as references for submodules of
   $super that are embedded in $there while making a clone of the
   superproject borrow objects from $there; extend the mechanism to
   also allow submodules of these submodules to borrow repositories
   embedded in these clones of the submodules embedded in the clone of
   the superproject.

 * Porcelain scripts written in Perl are getting internationalized.

 * "git merge --continue" has been added as a synonym to "git commit"
   to conclude a merge that has stopped due to conflicts.

 * Finer-grained control of what protocols are allowed for transports
   during clone/fetch/push have been enabled via a new configuration
   mechanism.

 * "git shortlog" learned "--committer" option to group commits by
   committer, instead of author.

 * GitLFS integration with "git p4" has been updated.

 * The isatty() emulation for Windows has been updated to eradicate
   the previous hack that depended on internals of (older) MSVC
   runtime.

 * Some platforms no longer understand "latin-1" that is still seen in
   the wild in e-mail headers; replace them with "iso-8859-1" that is
   more widely known when conversion fails from/to it.

 * "git grep" has been taught to optionally recurse into submodules.

 * "git rm" used to refuse to remove a submodule when it has i

[ANNOUNCE] Git v2.12.0-rc1

2017-02-10 Thread Junio C Hamano
A release candidate Git v2.12.0-rc1 is now available for testing
at the usual places.  It is comprised of 455 non-merge commits
since v2.11.0, contributed by 65 people, 20 of which are new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.12.0-rc1' tag and the 'master' 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

New contributors whose contributions weren't in v2.11.0 are as follows.
Welcome to the Git development community!

  Alan Davies, Andreas Krey, Cornelius Weig, Denton Liu, George
  Vanburgh, Igor Kushnir, Jack Bates, Kristoffer Haugsbakk, Kyle
  Meyer, Luis Ressel, Lukas Puehringer, Markus Hitter, Peter Law,
  Rasmus Villemoes, Rogier Goossens, Stefan Dotterweich, Steven
  Penny, Vinicius Kursancew, Vladimir Panteleev, and Wolfram Sang.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  마누엘, Alex Henrie, Beat Bolli, Brandon Williams, brian
  m. carlson, Chris Packham, Christian Couder, David Aguilar, David
  Turner, Dennis Kaarsemaker, Dimitriy Ryazantcev, Elia Pinto,
  Eric Wong, Heiko Voigt, Jacob Keller, Jeff Hostetler, Jeff King,
  Johannes Schindelin, Johannes Sixt, Jonathan Tan, Junio C Hamano,
  Kyle J. McKay, Lars Schneider, Linus Torvalds, Luke Diamand, Matt
  McCutchen, Max Kirillov, Mike Hommey, Nguyễn Thái Ngọc Duy,
  Patrick Steinhardt, Paul Mackerras, Philip Oakley, Pranit Bauva,
  Ramsay Jones, René Scharfe, Richard Hansen, Santiago Torres,
  Satoshi Yasushima, Stefan Beller, Stephan Beyer, SZEDER Gábor,
  Torsten Bögershausen, Vasco Almeida, Vegard Nossum, and Vitaly
  "_Vi" Shukela.



Git 2.12 Release Notes (draft)
==

Backward compatibility notes.

 * Use of an empty string that is used for 'everything matches' is
   still warned and Git asks users to use a more explicit '.' for that
   instead.  The hope is that existing users will not mind this
   change, and eventually the warning can be turned into a hard error,
   upgrading the deprecation into removal of this (mis)feature.  That
   is not scheduled to happen in the upcoming release (yet).

 * The historical argument order "git merge  HEAD ..."
   has been deprecated for quite some time, and will be removed in a
   future release.

 * An ancient script "git relink" has been removed.


Updates since v2.11
---

UI, Workflows & Features

 * Various updates to "git p4".

 * "git p4" didn't interact with the internal of .git directory
   correctly in the modern "git-worktree"-enabled world.

 * "git branch --list" and friends learned "--ignore-case" option to
   optionally sort branches and tags case insensitively.

 * In addition to %(subject), %(body), "log --pretty=format:..."
   learned a new placeholder %(trailers).

 * "git rebase" learned "--quit" option, which allows a user to
   remove the metadata left by an earlier "git rebase" that was
   manually aborted without using "git rebase --abort".

 * "git clone --reference $there --recurse-submodules $super" has been
   taught to guess repositories usable as references for submodules of
   $super that are embedded in $there while making a clone of the
   superproject borrow objects from $there; extend the mechanism to
   also allow submodules of these submodules to borrow repositories
   embedded in these clones of the submodules embedded in the clone of
   the superproject.

 * Porcelain scripts written in Perl are getting internationalized.

 * "git merge --continue" has been added as a synonym to "git commit"
   to conclude a merge that has stopped due to conflicts.

 * Finer-grained control of what protocols are allowed for transports
   during clone/fetch/push have been enabled via a new configuration
   mechanism.

 * "git shortlog" learned "--committer" option to group commits by
   committer, instead of author.

 * GitLFS integration with "git p4" has been updated.

 * The isatty() emulation for Windows has been updated to eradicate
   the previous hack that depended on internals of (older) MSVC
   runtime.

 * Some platforms no longer understand "latin-1" that is still seen in
   the wild in e-mail headers; replace them with "iso-8859-1" that is
   more widely known when conversion fails from/to it.

 * "git grep" has been taught to optionally recurse into submodules.

 * "git rm" used to refuse to remove a submodule when it has i

[ANNOUNCE] Git v2.12.0-rc0

2017-02-03 Thread Junio C Hamano
An early preview release Git v2.12.0-rc0 is now available for
testing at the usual places.  It is comprised of 441 non-merge
commits since v2.11.0, contributed by 63 people, 19 of which are
new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.12.0-rc0' tag and the 'master' 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

New contributors whose contributions weren't in v2.11.0 are as follows.
Welcome to the Git development community!

  Alan Davies, Andreas Krey, Cornelius Weig, George Vanburgh,
  Igor Kushnir, Jack Bates, Kristoffer Haugsbakk, Kyle Meyer,
  Luis Ressel, Lukas Puehringer, Markus Hitter, Peter Law, Rasmus
  Villemoes, Rogier Goossens, Stefan Dotterweich, Steven Penny,
  Vinicius Kursancew, Vladimir Panteleev, and Wolfram Sang.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  마누엘, Alex Henrie, Beat Bolli, Brandon Williams, brian
  m. carlson, Chris Packham, Christian Couder, David Aguilar,
  David Turner, Dennis Kaarsemaker, Dimitriy Ryazantcev, Elia
  Pinto, Eric Wong, Heiko Voigt, Jacob Keller, Jeff Hostetler,
  Jeff King, Johannes Schindelin, Johannes Sixt, Jonathan Tan,
  Junio C Hamano, Kyle J. McKay, Lars Schneider, Linus Torvalds,
  Luke Diamand, Matt McCutchen, Max Kirillov, Mike Hommey, Nguyễn
  Thái Ngọc Duy, Paul Mackerras, Philip Oakley, Pranit Bauva,
  Ramsay Jones, René Scharfe, Richard Hansen, Santiago Torres,
  Satoshi Yasushima, Stefan Beller, Stephan Beyer, SZEDER Gábor,
  Torsten Bögershausen, Vasco Almeida, Vegard Nossum, and Vitaly
  "_Vi" Shukela.



Git 2.12 Release Notes (draft)
==

Backward compatibility notes.

 * Use of an empty string that is used for 'everything matches' is
   still warned and Git asks users to use a more explicit '.' for that
   instead.  The hope is that existing users will not mind this
   change, and eventually the warning can be turned into a hard error,
   upgrading the deprecation into removal of this (mis)feature.  That
   is not scheduled to happen in the upcoming release (yet).

 * The historical argument order "git merge  HEAD ..."
   has been deprecated for quite some time, and will be removed in a
   future release.

 * An ancient script "git relink" has been removed.


Updates since v2.11
---

UI, Workflows & Features

 * Various updates to "git p4".

 * "git p4" didn't interact with the internal of .git directory
   correctly in the modern "git-worktree"-enabled world.

 * "git branch --list" and friends learned "--ignore-case" option to
   optionally sort branches and tags case insensitively.

 * In addition to %(subject), %(body), "log --pretty=format:..."
   learned a new placeholder %(trailers).

 * "git rebase" learned "--quit" option, which allows a user to
   remove the metadata left by an earlier "git rebase" that was
   manually aborted without using "git rebase --abort".

 * "git clone --reference $there --recurse-submodules $super" has been
   taught to guess repositories usable as references for submodules of
   $super that are embedded in $there while making a clone of the
   superproject borrow objects from $there; extend the mechanism to
   also allow submodules of these submodules to borrow repositories
   embedded in these clones of the submodules embedded in the clone of
   the superproject.

 * Porcelain scripts written in Perl are getting internationalized.

 * "git merge --continue" has been added as a synonym to "git commit"
   to conclude a merge that has stopped due to conflicts.

 * Finer-grained control of what protocols are allowed for transports
   during clone/fetch/push have been enabled via a new configuration
   mechanism.

 * "git shortlog" learned "--committer" option to group commits by
   committer, instead of author.

 * GitLFS integration with "git p4" has been updated.

 * The isatty() emulation for Windows has been updated to eradicate
   the previous hack that depended on internals of (older) MSVC
   runtime.

 * Some platforms no longer understand "latin-1" that is still seen in
   the wild in e-mail headers; replace them with "iso-8859-1" that is
   more widely known when conversion fails from/to it.

 * "git grep" has been taught to optionally recurse into submodules.

 * "git rm" used to refuse to remove a submodule when it has its own
   git 

[ANNOUNCE] Git v2.12.0-rc0

2017-02-03 Thread Junio C Hamano
An early preview release Git v2.12.0-rc0 is now available for
testing at the usual places.  It is comprised of 441 non-merge
commits since v2.11.0, contributed by 63 people, 19 of which are
new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.12.0-rc0' tag and the 'master' 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

New contributors whose contributions weren't in v2.11.0 are as follows.
Welcome to the Git development community!

  Alan Davies, Andreas Krey, Cornelius Weig, George Vanburgh,
  Igor Kushnir, Jack Bates, Kristoffer Haugsbakk, Kyle Meyer,
  Luis Ressel, Lukas Puehringer, Markus Hitter, Peter Law, Rasmus
  Villemoes, Rogier Goossens, Stefan Dotterweich, Steven Penny,
  Vinicius Kursancew, Vladimir Panteleev, and Wolfram Sang.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  마누엘, Alex Henrie, Beat Bolli, Brandon Williams, brian
  m. carlson, Chris Packham, Christian Couder, David Aguilar,
  David Turner, Dennis Kaarsemaker, Dimitriy Ryazantcev, Elia
  Pinto, Eric Wong, Heiko Voigt, Jacob Keller, Jeff Hostetler,
  Jeff King, Johannes Schindelin, Johannes Sixt, Jonathan Tan,
  Junio C Hamano, Kyle J. McKay, Lars Schneider, Linus Torvalds,
  Luke Diamand, Matt McCutchen, Max Kirillov, Mike Hommey, Nguyễn
  Thái Ngọc Duy, Paul Mackerras, Philip Oakley, Pranit Bauva,
  Ramsay Jones, René Scharfe, Richard Hansen, Santiago Torres,
  Satoshi Yasushima, Stefan Beller, Stephan Beyer, SZEDER Gábor,
  Torsten Bögershausen, Vasco Almeida, Vegard Nossum, and Vitaly
  "_Vi" Shukela.



Git 2.12 Release Notes (draft)
==

Backward compatibility notes.

 * Use of an empty string that is used for 'everything matches' is
   still warned and Git asks users to use a more explicit '.' for that
   instead.  The hope is that existing users will not mind this
   change, and eventually the warning can be turned into a hard error,
   upgrading the deprecation into removal of this (mis)feature.  That
   is not scheduled to happen in the upcoming release (yet).

 * The historical argument order "git merge  HEAD ..."
   has been deprecated for quite some time, and will be removed in a
   future release.

 * An ancient script "git relink" has been removed.


Updates since v2.11
---

UI, Workflows & Features

 * Various updates to "git p4".

 * "git p4" didn't interact with the internal of .git directory
   correctly in the modern "git-worktree"-enabled world.

 * "git branch --list" and friends learned "--ignore-case" option to
   optionally sort branches and tags case insensitively.

 * In addition to %(subject), %(body), "log --pretty=format:..."
   learned a new placeholder %(trailers).

 * "git rebase" learned "--quit" option, which allows a user to
   remove the metadata left by an earlier "git rebase" that was
   manually aborted without using "git rebase --abort".

 * "git clone --reference $there --recurse-submodules $super" has been
   taught to guess repositories usable as references for submodules of
   $super that are embedded in $there while making a clone of the
   superproject borrow objects from $there; extend the mechanism to
   also allow submodules of these submodules to borrow repositories
   embedded in these clones of the submodules embedded in the clone of
   the superproject.

 * Porcelain scripts written in Perl are getting internationalized.

 * "git merge --continue" has been added as a synonym to "git commit"
   to conclude a merge that has stopped due to conflicts.

 * Finer-grained control of what protocols are allowed for transports
   during clone/fetch/push have been enabled via a new configuration
   mechanism.

 * "git shortlog" learned "--committer" option to group commits by
   committer, instead of author.

 * GitLFS integration with "git p4" has been updated.

 * The isatty() emulation for Windows has been updated to eradicate
   the previous hack that depended on internals of (older) MSVC
   runtime.

 * Some platforms no longer understand "latin-1" that is still seen in
   the wild in e-mail headers; replace them with "iso-8859-1" that is
   more widely known when conversion fails from/to it.

 * "git grep" has been taught to optionally recurse into submodules.

 * "git rm" used to refuse to remove a submodule when it has its own
   git 

[ANNOUNCE] Git v2.11.1

2017-02-02 Thread Junio C Hamano
ch check whether submodule needs pushing into one call
  submodule_needs_pushing(): explain the behaviour when we cannot answer

Jack Bates (1):
  diff: handle --no-abbrev in no-index case

Jeff Hostetler (1):
  mingw: replace isatty() hack

Jeff King (32):
  rev-parse: fix parent shorthands with --symbolic
  t7610: clean up foo.XX tmpdir
  http: simplify update_url_from_redirect
  http: always update the base URL for redirects
  remote-curl: rename shadowed options variable
  http: make redirects more obvious
  http: treat http-alternates like redirects
  http-walker: complain about non-404 loose object errors
  stash: prefer plumbing over git-diff
  alternates: accept double-quoted paths
  tmp-objdir: quote paths we add to alternates
  Makefile: reformat FIND_SOURCE_FILES
  Makefile: exclude test cruft from FIND_SOURCE_FILES
  Makefile: match shell scripts in FIND_SOURCE_FILES
  Makefile: exclude contrib from FIND_SOURCE_FILES
  parse-options: print "fatal:" before usage_msg_opt()
  README: replace gmane link with public-inbox
  t5000: extract nongit function to test-lib-functions.sh
  index-pack: complain when --stdin is used outside of a repo
  t: use nongit() function where applicable
  index-pack: skip collision check when not in repository
  archive-zip: load userdiff config
  rebase--interactive: count squash commits above 10 correctly
  blame: fix alignment with --abbrev=40
  blame: handle --no-abbrev
  blame: output porcelain "previous" header for each file
  git_exec_path: do not return the result of getenv()
  execv_dashed_external: use child_process struct
  execv_dashed_external: stop exiting with negative code
  execv_dashed_external: wait for child on signal death
  t7810: avoid assumption about invalid regex syntax
  CodingGuidelines: clarify multi-line brace style

Johannes Schindelin (6):
  cherry-pick: demonstrate a segmentation fault
  merge-recursive: handle NULL in add_cacheinfo() correctly
  mingw: intercept isatty() to handle /dev/null as Git expects it
  mingw: adjust is_console() to work with stdin
  git_exec_path: avoid Coverity warning about unfree()d result
  mingw: follow-up to "replace isatty() hack"

Johannes Sixt (3):
  t5547-push-quarantine: run the path separator test on Windows, too
  normalize_path_copy(): fix pushing to //server/share/dir on Windows
  t5615-alternate-env: double-quotes in file names do not work on Windows

Jonathan Tan (1):
  fetch: do not redundantly calculate tag refmap

Junio C Hamano (11):
  utf8: refactor code to decide fallback encoding
  utf8: accept "latin-1" as ISO-8859-1
  push: do not use potentially ambiguous default refspec
  compression: unify pack.compression configuration parsing
  pull: fast-forward "pull --rebase=true"
  preparing for 2.10.3
  Revert "sequencer: remove useless get_dir() function"
  config.abbrev: document the new default that auto-scales
  Almost ready for 2.11.1
  Ready for 2.11.1
  Git 2.11.1

Kristoffer Haugsbakk (4):
  doc: add articles (grammar)
  doc: add verb in front of command to run
  doc: make the intent of sentence clearer
  doc: omit needless "for"

Kyle J. McKay (1):
  mailinfo.c: move side-effects outside of assert

Kyle Meyer (1):
  branch_get_push: do not segfault when HEAD is detached

Lars Schneider (6):
  travis-ci: update P4 to 16.2 and GitLFS to 1.5.2 in Linux build
  git-p4: fix empty file processing for large file system backend GitLFS
  t0021: minor filter process test cleanup
  docs: warn about possible '=' in clean/smudge filter process values
  t0021: fix flaky test
  travis-ci: fix Perforce install on macOS

Luis Ressel (1):
  date-formats.txt: Typo fix

Luke Diamand (1):
  git-p4: avoid crash adding symlinked directory

Matt McCutchen (2):
  doc: mention transfer data leaks in more places
  git-gc.txt: expand discussion of races with other processes

Max Kirillov (1):
  mingw: consider that UNICODE_STRING::Length counts bytes

Mike Hommey (1):
  fast-import: properly fanout notes when tree is imported

Nguyễn Thái Ngọc Duy (13):
  worktree.c: zero new 'struct worktree' on allocation
  worktree: reorder an if statement
  get_worktrees() must return main worktree as first item even on error
  worktree.c: get_worktrees() takes a new flag argument
  worktree list: keep the list sorted
  merge-recursive.c: use string_list_sort instead of qsort
  shallow.c: rename fields in paint_info to better express their purposes
  shallow.c: stop abusing COMMIT_SLAB_SIZE for paint_info's memory pools
  shallow.c: make paint_alloc slightly more robust
  shallow.c: remove useless code
  config.c: handle erro

[ANNOUNCE] Git v2.11.1

2017-02-02 Thread Junio C Hamano
bmodule needs pushing into one call
  submodule_needs_pushing(): explain the behaviour when we cannot answer

Jack Bates (1):
  diff: handle --no-abbrev in no-index case

Jeff Hostetler (1):
  mingw: replace isatty() hack

Jeff King (32):
  rev-parse: fix parent shorthands with --symbolic
  t7610: clean up foo.XX tmpdir
  http: simplify update_url_from_redirect
  http: always update the base URL for redirects
  remote-curl: rename shadowed options variable
  http: make redirects more obvious
  http: treat http-alternates like redirects
  http-walker: complain about non-404 loose object errors
  stash: prefer plumbing over git-diff
  alternates: accept double-quoted paths
  tmp-objdir: quote paths we add to alternates
  Makefile: reformat FIND_SOURCE_FILES
  Makefile: exclude test cruft from FIND_SOURCE_FILES
  Makefile: match shell scripts in FIND_SOURCE_FILES
  Makefile: exclude contrib from FIND_SOURCE_FILES
  parse-options: print "fatal:" before usage_msg_opt()
  README: replace gmane link with public-inbox
  t5000: extract nongit function to test-lib-functions.sh
  index-pack: complain when --stdin is used outside of a repo
  t: use nongit() function where applicable
  index-pack: skip collision check when not in repository
  archive-zip: load userdiff config
  rebase--interactive: count squash commits above 10 correctly
  blame: fix alignment with --abbrev=40
  blame: handle --no-abbrev
  blame: output porcelain "previous" header for each file
  git_exec_path: do not return the result of getenv()
  execv_dashed_external: use child_process struct
  execv_dashed_external: stop exiting with negative code
  execv_dashed_external: wait for child on signal death
  t7810: avoid assumption about invalid regex syntax
  CodingGuidelines: clarify multi-line brace style

Johannes Schindelin (6):
  cherry-pick: demonstrate a segmentation fault
  merge-recursive: handle NULL in add_cacheinfo() correctly
  mingw: intercept isatty() to handle /dev/null as Git expects it
  mingw: adjust is_console() to work with stdin
  git_exec_path: avoid Coverity warning about unfree()d result
  mingw: follow-up to "replace isatty() hack"

Johannes Sixt (3):
  t5547-push-quarantine: run the path separator test on Windows, too
  normalize_path_copy(): fix pushing to //server/share/dir on Windows
  t5615-alternate-env: double-quotes in file names do not work on Windows

Jonathan Tan (1):
  fetch: do not redundantly calculate tag refmap

Junio C Hamano (11):
  utf8: refactor code to decide fallback encoding
  utf8: accept "latin-1" as ISO-8859-1
  push: do not use potentially ambiguous default refspec
  compression: unify pack.compression configuration parsing
  pull: fast-forward "pull --rebase=true"
  preparing for 2.10.3
  Revert "sequencer: remove useless get_dir() function"
  config.abbrev: document the new default that auto-scales
  Almost ready for 2.11.1
  Ready for 2.11.1
  Git 2.11.1

Kristoffer Haugsbakk (4):
  doc: add articles (grammar)
  doc: add verb in front of command to run
  doc: make the intent of sentence clearer
  doc: omit needless "for"

Kyle J. McKay (1):
  mailinfo.c: move side-effects outside of assert

Kyle Meyer (1):
  branch_get_push: do not segfault when HEAD is detached

Lars Schneider (6):
  travis-ci: update P4 to 16.2 and GitLFS to 1.5.2 in Linux build
  git-p4: fix empty file processing for large file system backend GitLFS
  t0021: minor filter process test cleanup
  docs: warn about possible '=' in clean/smudge filter process values
  t0021: fix flaky test
  travis-ci: fix Perforce install on macOS

Luis Ressel (1):
  date-formats.txt: Typo fix

Luke Diamand (1):
  git-p4: avoid crash adding symlinked directory

Matt McCutchen (2):
  doc: mention transfer data leaks in more places
  git-gc.txt: expand discussion of races with other processes

Max Kirillov (1):
  mingw: consider that UNICODE_STRING::Length counts bytes

Mike Hommey (1):
  fast-import: properly fanout notes when tree is imported

Nguyễn Thái Ngọc Duy (13):
  worktree.c: zero new 'struct worktree' on allocation
  worktree: reorder an if statement
  get_worktrees() must return main worktree as first item even on error
  worktree.c: get_worktrees() takes a new flag argument
  worktree list: keep the list sorted
  merge-recursive.c: use string_list_sort instead of qsort
  shallow.c: rename fields in paint_info to better express their purposes
  shallow.c: stop abusing COMMIT_SLAB_SIZE for paint_info's memory pools
  shallow.c: make paint_alloc slightly more robust
  shallow.c: remove useless code
  config.c: handle error case for fstat() c

Re: [RFC for GIT] pull-request: add praise to people doing QA

2017-01-19 Thread Junio C Hamano
Wolfram Sang  writes:

> I didn't know about trailers before. As I undestand it, I could use
> "Tested-by" as the key, and the commit subject as the value. This list
> then could be parsed and brought into proper output shape. It would
> simplify the subject parsing, but most things my AWK script currently
> does would still need to stay or to be reimplemented (extracting names
> from tags, creating arrays of tags given by $name). Am I correct?

That is not exactly what I had in mind.  I was wondering if we can
do without any external script, implementing the logic you added
inside shortlog with an extra option that triggers the whole thing,
which may call into the same trailers API as used by the
interpret-trailers command to do the parsing and picking out parts.


Re: [RFC for GIT] pull-request: add praise to people doing QA

2017-01-19 Thread Junio C Hamano
Wolfram Sang  writes:

> I didn't know about trailers before. As I undestand it, I could use
> "Tested-by" as the key, and the commit subject as the value. This list
> then could be parsed and brought into proper output shape. It would
> simplify the subject parsing, but most things my AWK script currently
> does would still need to stay or to be reimplemented (extracting names
> from tags, creating arrays of tags given by $name). Am I correct?

That is not exactly what I had in mind.  I was wondering if we can
do without any external script, implementing the logic you added
inside shortlog with an extra option that triggers the whole thing,
which may call into the same trailers API as used by the
interpret-trailers command to do the parsing and picking out parts.


Re: [RFC for GIT] pull-request: add praise to people doing QA

2017-01-15 Thread Junio C Hamano
Wolfram Sang  writes:

> === new stuff starts here
>
> with much appreciated quality assurance from
> 
> Andy Shevchenko (1):
>   (Rev.) i2c: piix4: Avoid race conditions with IMC
>
> Benjamin Tissoires (1):
>   (Test) i2c: do not enable fall back to Host Notify by default
>
> Vladimir Zapolskiy (1):
>   (Rev.) i2c: print correct device invalid address
>
> === diffstat, ...
>
> This patch is a very early RFC to collect opinions. I am not very familiar 
> with
> the git codebase, but I guess using a filter needs to be reworked, the
> dependency on GNU awk may be frowned upon (though 'asorti' is really useful
> here), the reg-ex are not super-solid, and it should be a command-line option,
> of course. That all being said, it was a fast way to produce what I would like
> to add to my pull requests for the i2c subsystem and to see if other 
> kernel/git
> maintainers are interested in something like this.
>
> Disclaimer: while this patch applies to the git codebase, I have to admit that
> I simply patched around in /usr/lib/git-core of my Debian machine :)
>
> So much for now, let me know what you think,

So the idea is to have list of those whose names appear on
Reviewed-by: and Tested-by: collected and listed after the list of
commit titles and author names.  I personally do not see much
downsides in doing so, but I do not consume that many PRs myself, so
let's hear from those who actually do process many of them.

As to the implementation, I am wondering if we can make this somehow
work well with the "trailers" code we already have, instead of
inventing yet another parser of trailers.  

In its current shape, "interpret-trailers" focuses on "editing" an
existing commit log message to tweak the trailer lines.  That mode
of operation would help amending and rebasing, and to do that it
needs to parse the commit log message, identify trailer blocks,
parse out each trailer lines, etc.  

There is no fundamental reason why its output must be an edited
original commit log message---it should be usable as a filter that
picks trailer lines of the selected trailer type, like "Tested-By",
etc.


Re: [RFC for GIT] pull-request: add praise to people doing QA

2017-01-15 Thread Junio C Hamano
Wolfram Sang  writes:

> === new stuff starts here
>
> with much appreciated quality assurance from
> 
> Andy Shevchenko (1):
>   (Rev.) i2c: piix4: Avoid race conditions with IMC
>
> Benjamin Tissoires (1):
>   (Test) i2c: do not enable fall back to Host Notify by default
>
> Vladimir Zapolskiy (1):
>   (Rev.) i2c: print correct device invalid address
>
> === diffstat, ...
>
> This patch is a very early RFC to collect opinions. I am not very familiar 
> with
> the git codebase, but I guess using a filter needs to be reworked, the
> dependency on GNU awk may be frowned upon (though 'asorti' is really useful
> here), the reg-ex are not super-solid, and it should be a command-line option,
> of course. That all being said, it was a fast way to produce what I would like
> to add to my pull requests for the i2c subsystem and to see if other 
> kernel/git
> maintainers are interested in something like this.
>
> Disclaimer: while this patch applies to the git codebase, I have to admit that
> I simply patched around in /usr/lib/git-core of my Debian machine :)
>
> So much for now, let me know what you think,

So the idea is to have list of those whose names appear on
Reviewed-by: and Tested-by: collected and listed after the list of
commit titles and author names.  I personally do not see much
downsides in doing so, but I do not consume that many PRs myself, so
let's hear from those who actually do process many of them.

As to the implementation, I am wondering if we can make this somehow
work well with the "trailers" code we already have, instead of
inventing yet another parser of trailers.  

In its current shape, "interpret-trailers" focuses on "editing" an
existing commit log message to tweak the trailer lines.  That mode
of operation would help amending and rebasing, and to do that it
needs to parse the commit log message, identify trailer blocks,
parse out each trailer lines, etc.  

There is no fundamental reason why its output must be an edited
original commit log message---it should be usable as a filter that
picks trailer lines of the selected trailer type, like "Tested-By",
etc.


Re: [PATCH] printk: Remove no longer used second struct cont

2016-12-15 Thread Junio C Hamano
Joe Perches  writes:

> grep 2.5.4 was the last version that supported the -P option to
> grep through for multiple lines.

Does anybody know why it was dropped?


Re: [PATCH] printk: Remove no longer used second struct cont

2016-12-15 Thread Junio C Hamano
Joe Perches  writes:

> grep 2.5.4 was the last version that supported the -P option to
> grep through for multiple lines.

Does anybody know why it was dropped?


[ANNOUNCE] Git v2.11.0

2016-11-29 Thread Junio C Hamano
The latest feature release Git v2.11.0 is now available at the
usual places.  It is comprised of 673 non-merge commits since
v2.10.0, contributed by 74 people, 15 of which are new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the 'v2.11.0'
tag and the 'master' 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

New contributors whose contributions weren't in v2.10.0 are as follows.
Welcome to the Git development community!

  Aaron M Watson, Brandon Williams, Brian Henderson, Emily Xie,
  Gavin Lambert, Ian Kelling, Jeff Hostetler, jfbu, Mantas
  Mikulėnas, Petr Stodulka, Satoshi Yasushima, Stefan Christ,
  Vegard Nossum, yaras, and Younes Khoudli.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Henrie,
  Alex Riesen, Anders Kaseorg, Andreas Schwab, Beat Bolli, Ben
  North, brian m. carlson, Changwoo Ryu, Chris Packham, Christian
  Couder, David Aguilar, David Turner, Dennis Kaarsemaker,
  Dimitriy Ryazantcev, Elia Pinto, Eric Wong, Jacob Keller,
  Jakub Narębski, Jean-Noel Avila, Jean-Noël AVILA, Jeff King,
  Jiang Xin, Johannes Schindelin, Johannes Sixt, Jonathan Nieder,
  Jonathan Tan, Josh Triplett, Junio C Hamano, Karsten Blees,
  Kevin Daudt, Kirill Smelkov, Lars Schneider, Linus Torvalds,
  Marc Branchaud, Matthieu Moy, Michael Haggerty, Michael J
  Gruber, Mike Ralphson, Nguyễn Thái Ngọc Duy, Olaf Hering,
  Orgad Shaneh, Patrick Steinhardt, Pat Thoyts, Peter Krefting,
  Philip Oakley, Pranit Bauva, Ralf Thielow, Ray Chen, René
  Scharfe, Ronnie Sahlberg, Stefan Beller, SZEDER Gábor, Thomas
  Gummerer, Tobias Klauser, Trần Ngọc Quân, Vasco Almeida,
  and Дилян Палаузов.



Git 2.11 Release Notes
==

Backward compatibility notes.

 * An empty string used as a pathspec element has always meant
   'everything matches', but it is too easy to write a script that
   finds a path to remove in $path and run 'git rm "$paht"' by
   mistake (when the user meant to give "$path"), which ends up
   removing everything.  This release starts warning about the
   use of an empty string that is used for 'everything matches' and
   asks users to use a more explicit '.' for that instead.

   The hope is that existing users will not mind this change, and
   eventually the warning can be turned into a hard error, upgrading
   the deprecation into removal of this (mis)feature.

 * The historical argument order "git merge  HEAD ..."
   has been deprecated for quite some time, and will be removed in the
   next release (not this one).

 * The default abbreviation length, which has historically been 7, now
   scales as the repository grows, using the approximate number of
   objects in the repository and a bit of math around the birthday
   paradox.  The logic suggests to use 12 hexdigits for the Linux
   kernel, and 9 to 10 for Git itself.


Updates since v2.10
---

UI, Workflows & Features

 * Comes with new version of git-gui, now at its 0.21.0 tag.

 * "git format-patch --cover-letter HEAD^" to format a single patch
   with a separate cover letter now numbers the output as [PATCH 0/1]
   and [PATCH 1/1] by default.

 * An incoming "git push" that attempts to push too many bytes can now
   be rejected by setting a new configuration variable at the receiving
   end.

 * "git nosuchcommand --help" said "No manual entry for gitnosuchcommand",
   which was not intuitive, given that "git nosuchcommand" said "git:
   'nosuchcommand' is not a git command".

 * "git clone --recurse-submodules --reference $path $URL" is a way to
   reduce network transfer cost by borrowing objects in an existing
   $path repository when cloning the superproject from $URL; it
   learned to also peek into $path for presence of corresponding
   repositories of submodules and borrow objects from there when able.

 * The "git diff --submodule={short,log}" mechanism has been enhanced
   to allow "--submodule=diff" to show the patch between the submodule
   commits bound to the superproject.

 * Even though "git hash-objects", which is a tool to take an
   on-filesystem data stream and put it into the Git object store,
   can perform "outside-world-to-Git" conversions (e.g.
   end-of-line conversions and application of the clean-filter), and
   it has had this feature on by default from very early days, its reverse
   operation "git cat-file", which takes an object

[ANNOUNCE] Git v2.11.0

2016-11-29 Thread Junio C Hamano
The latest feature release Git v2.11.0 is now available at the
usual places.  It is comprised of 673 non-merge commits since
v2.10.0, contributed by 74 people, 15 of which are new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the 'v2.11.0'
tag and the 'master' 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

New contributors whose contributions weren't in v2.10.0 are as follows.
Welcome to the Git development community!

  Aaron M Watson, Brandon Williams, Brian Henderson, Emily Xie,
  Gavin Lambert, Ian Kelling, Jeff Hostetler, jfbu, Mantas
  Mikulėnas, Petr Stodulka, Satoshi Yasushima, Stefan Christ,
  Vegard Nossum, yaras, and Younes Khoudli.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Henrie,
  Alex Riesen, Anders Kaseorg, Andreas Schwab, Beat Bolli, Ben
  North, brian m. carlson, Changwoo Ryu, Chris Packham, Christian
  Couder, David Aguilar, David Turner, Dennis Kaarsemaker,
  Dimitriy Ryazantcev, Elia Pinto, Eric Wong, Jacob Keller,
  Jakub Narębski, Jean-Noel Avila, Jean-Noël AVILA, Jeff King,
  Jiang Xin, Johannes Schindelin, Johannes Sixt, Jonathan Nieder,
  Jonathan Tan, Josh Triplett, Junio C Hamano, Karsten Blees,
  Kevin Daudt, Kirill Smelkov, Lars Schneider, Linus Torvalds,
  Marc Branchaud, Matthieu Moy, Michael Haggerty, Michael J
  Gruber, Mike Ralphson, Nguyễn Thái Ngọc Duy, Olaf Hering,
  Orgad Shaneh, Patrick Steinhardt, Pat Thoyts, Peter Krefting,
  Philip Oakley, Pranit Bauva, Ralf Thielow, Ray Chen, René
  Scharfe, Ronnie Sahlberg, Stefan Beller, SZEDER Gábor, Thomas
  Gummerer, Tobias Klauser, Trần Ngọc Quân, Vasco Almeida,
  and Дилян Палаузов.



Git 2.11 Release Notes
==

Backward compatibility notes.

 * An empty string used as a pathspec element has always meant
   'everything matches', but it is too easy to write a script that
   finds a path to remove in $path and run 'git rm "$paht"' by
   mistake (when the user meant to give "$path"), which ends up
   removing everything.  This release starts warning about the
   use of an empty string that is used for 'everything matches' and
   asks users to use a more explicit '.' for that instead.

   The hope is that existing users will not mind this change, and
   eventually the warning can be turned into a hard error, upgrading
   the deprecation into removal of this (mis)feature.

 * The historical argument order "git merge  HEAD ..."
   has been deprecated for quite some time, and will be removed in the
   next release (not this one).

 * The default abbreviation length, which has historically been 7, now
   scales as the repository grows, using the approximate number of
   objects in the repository and a bit of math around the birthday
   paradox.  The logic suggests to use 12 hexdigits for the Linux
   kernel, and 9 to 10 for Git itself.


Updates since v2.10
---

UI, Workflows & Features

 * Comes with new version of git-gui, now at its 0.21.0 tag.

 * "git format-patch --cover-letter HEAD^" to format a single patch
   with a separate cover letter now numbers the output as [PATCH 0/1]
   and [PATCH 1/1] by default.

 * An incoming "git push" that attempts to push too many bytes can now
   be rejected by setting a new configuration variable at the receiving
   end.

 * "git nosuchcommand --help" said "No manual entry for gitnosuchcommand",
   which was not intuitive, given that "git nosuchcommand" said "git:
   'nosuchcommand' is not a git command".

 * "git clone --recurse-submodules --reference $path $URL" is a way to
   reduce network transfer cost by borrowing objects in an existing
   $path repository when cloning the superproject from $URL; it
   learned to also peek into $path for presence of corresponding
   repositories of submodules and borrow objects from there when able.

 * The "git diff --submodule={short,log}" mechanism has been enhanced
   to allow "--submodule=diff" to show the patch between the submodule
   commits bound to the superproject.

 * Even though "git hash-objects", which is a tool to take an
   on-filesystem data stream and put it into the Git object store,
   can perform "outside-world-to-Git" conversions (e.g.
   end-of-line conversions and application of the clean-filter), and
   it has had this feature on by default from very early days, its reverse
   operation "git cat-file", which takes an object

[ANNOUNCE] Git v2.11.0-rc3

2016-11-23 Thread Junio C Hamano
A release candidate Git v2.11.0-rc3 is now available for testing
at the usual places.  It is comprised of 666 non-merge commits
since v2.10.0, contributed by 73 people, 15 of which are new faces.

It turns out that one recent fix exposed codepaths that have not
been using the API correctly, resulting apparent minor regressions
in a few programs.  This hopefully final release candidate contains
fixes to them.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.11.0-rc3' tag and the 'master' 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

New contributors whose contributions weren't in v2.10.0 are as follows.
Welcome to the Git development community!

  Aaron M Watson, Brandon Williams, Brian Henderson, Emily Xie,
  Gavin Lambert, Ian Kelling, Jeff Hostetler, jfbu, Mantas
  Mikulėnas, Petr Stodulka, Satoshi Yasushima, Stefan Christ,
  Vegard Nossum, yaras, and Younes Khoudli.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Henrie,
  Alex Riesen, Anders Kaseorg, Andreas Schwab, Beat Bolli, Ben
  North, brian m. carlson, Changwoo Ryu, Chris Packham, Christian
  Couder, David Aguilar, David Turner, Dennis Kaarsemaker,
  Dimitriy Ryazantcev, Elia Pinto, Eric Wong, Jacob Keller,
  Jakub Narębski, Jean-Noel Avila, Jean-Noël AVILA, Jeff King,
  Jiang Xin, Johannes Schindelin, Johannes Sixt, Jonathan Nieder,
  Jonathan Tan, Josh Triplett, Junio C Hamano, Karsten Blees, Kevin
  Daudt, Kirill Smelkov, Lars Schneider, Linus Torvalds, Matthieu
  Moy, Michael Haggerty, Michael J Gruber, Mike Ralphson, Nguyễn
  Thái Ngọc Duy, Olaf Hering, Orgad Shaneh, Patrick Steinhardt,
  Pat Thoyts, Peter Krefting, Philip Oakley, Pranit Bauva, Ralf
  Thielow, Ray Chen, René Scharfe, Ronnie Sahlberg, Stefan Beller,
  SZEDER Gábor, Thomas Gummerer, Tobias Klauser, Trần Ngọc
  Quân, Vasco Almeida, and Дилян Палаузов.



Git 2.11 Release Notes (draft)
==

Backward compatibility notes.

 * An empty string used as a pathspec element has always meant
   'everything matches', but it is too easy to write a script that
   finds a path to remove in $path and run 'git rm "$paht"' by
   mistake (when the user meant to give "$path"), which ends up
   removing everything.  This release starts warning about the
   use of an empty string that is used for 'everything matches' and
   asks users to use a more explicit '.' for that instead.

   The hope is that existing users will not mind this change, and
   eventually the warning can be turned into a hard error, upgrading
   the deprecation into removal of this (mis)feature.

 * The historical argument order "git merge  HEAD ..."
   has been deprecated for quite some time, and will be removed in the
   next release (not this one).

 * The default abbreviation length, which has historically been 7, now
   scales as the repository grows, using the approximate number of
   objects in the repository and a bit of math around the birthday
   paradox.  The logic suggests to use 12 hexdigits for the Linux
   kernel, and 9 to 10 for Git itself.


Updates since v2.10
---

UI, Workflows & Features

 * Comes with new version of git-gui, now at its 0.21.0 tag.

 * "git format-patch --cover-letter HEAD^" to format a single patch
   with a separate cover letter now numbers the output as [PATCH 0/1]
   and [PATCH 1/1] by default.

 * An incoming "git push" that attempts to push too many bytes can now
   be rejected by setting a new configuration variable at the receiving
   end.

 * "git nosuchcommand --help" said "No manual entry for gitnosuchcommand",
   which was not intuitive, given that "git nosuchcommand" said "git:
   'nosuchcommand' is not a git command".

 * "git clone --recurse-submodules --reference $path $URL" is a way to
   reduce network transfer cost by borrowing objects in an existing
   $path repository when cloning the superproject from $URL; it
   learned to also peek into $path for presence of corresponding
   repositories of submodules and borrow objects from there when able.

 * The "git diff --submodule={short,log}" mechanism has been enhanced
   to allow "--submodule=diff" to show the patch between the submodule
   commits bound to the superproject.

 * Even though "git hash-objects", which is a tool to take an
   on-filesystem data stream and put it into the Git object store,
   allowed to perform the "outside-world-t

[ANNOUNCE] Git v2.11.0-rc3

2016-11-23 Thread Junio C Hamano
A release candidate Git v2.11.0-rc3 is now available for testing
at the usual places.  It is comprised of 666 non-merge commits
since v2.10.0, contributed by 73 people, 15 of which are new faces.

It turns out that one recent fix exposed codepaths that have not
been using the API correctly, resulting apparent minor regressions
in a few programs.  This hopefully final release candidate contains
fixes to them.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.11.0-rc3' tag and the 'master' 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

New contributors whose contributions weren't in v2.10.0 are as follows.
Welcome to the Git development community!

  Aaron M Watson, Brandon Williams, Brian Henderson, Emily Xie,
  Gavin Lambert, Ian Kelling, Jeff Hostetler, jfbu, Mantas
  Mikulėnas, Petr Stodulka, Satoshi Yasushima, Stefan Christ,
  Vegard Nossum, yaras, and Younes Khoudli.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Henrie,
  Alex Riesen, Anders Kaseorg, Andreas Schwab, Beat Bolli, Ben
  North, brian m. carlson, Changwoo Ryu, Chris Packham, Christian
  Couder, David Aguilar, David Turner, Dennis Kaarsemaker,
  Dimitriy Ryazantcev, Elia Pinto, Eric Wong, Jacob Keller,
  Jakub Narębski, Jean-Noel Avila, Jean-Noël AVILA, Jeff King,
  Jiang Xin, Johannes Schindelin, Johannes Sixt, Jonathan Nieder,
  Jonathan Tan, Josh Triplett, Junio C Hamano, Karsten Blees, Kevin
  Daudt, Kirill Smelkov, Lars Schneider, Linus Torvalds, Matthieu
  Moy, Michael Haggerty, Michael J Gruber, Mike Ralphson, Nguyễn
  Thái Ngọc Duy, Olaf Hering, Orgad Shaneh, Patrick Steinhardt,
  Pat Thoyts, Peter Krefting, Philip Oakley, Pranit Bauva, Ralf
  Thielow, Ray Chen, René Scharfe, Ronnie Sahlberg, Stefan Beller,
  SZEDER Gábor, Thomas Gummerer, Tobias Klauser, Trần Ngọc
  Quân, Vasco Almeida, and Дилян Палаузов.



Git 2.11 Release Notes (draft)
==

Backward compatibility notes.

 * An empty string used as a pathspec element has always meant
   'everything matches', but it is too easy to write a script that
   finds a path to remove in $path and run 'git rm "$paht"' by
   mistake (when the user meant to give "$path"), which ends up
   removing everything.  This release starts warning about the
   use of an empty string that is used for 'everything matches' and
   asks users to use a more explicit '.' for that instead.

   The hope is that existing users will not mind this change, and
   eventually the warning can be turned into a hard error, upgrading
   the deprecation into removal of this (mis)feature.

 * The historical argument order "git merge  HEAD ..."
   has been deprecated for quite some time, and will be removed in the
   next release (not this one).

 * The default abbreviation length, which has historically been 7, now
   scales as the repository grows, using the approximate number of
   objects in the repository and a bit of math around the birthday
   paradox.  The logic suggests to use 12 hexdigits for the Linux
   kernel, and 9 to 10 for Git itself.


Updates since v2.10
---

UI, Workflows & Features

 * Comes with new version of git-gui, now at its 0.21.0 tag.

 * "git format-patch --cover-letter HEAD^" to format a single patch
   with a separate cover letter now numbers the output as [PATCH 0/1]
   and [PATCH 1/1] by default.

 * An incoming "git push" that attempts to push too many bytes can now
   be rejected by setting a new configuration variable at the receiving
   end.

 * "git nosuchcommand --help" said "No manual entry for gitnosuchcommand",
   which was not intuitive, given that "git nosuchcommand" said "git:
   'nosuchcommand' is not a git command".

 * "git clone --recurse-submodules --reference $path $URL" is a way to
   reduce network transfer cost by borrowing objects in an existing
   $path repository when cloning the superproject from $URL; it
   learned to also peek into $path for presence of corresponding
   repositories of submodules and borrow objects from there when able.

 * The "git diff --submodule={short,log}" mechanism has been enhanced
   to allow "--submodule=diff" to show the patch between the submodule
   commits bound to the superproject.

 * Even though "git hash-objects", which is a tool to take an
   on-filesystem data stream and put it into the Git object store,
   allowed to perform the "outside-world-t

[ANNOUNCE] Git v2.11.0-rc2

2016-11-17 Thread Junio C Hamano
A release candidate Git v2.11.0-rc2 is now available for testing
at the usual places.  It is comprised of 646 non-merge commits
since v2.10.0, contributed by 68 people, 14 of which are new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.11.0-rc2' tag and the 'master' 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

New contributors whose contributions weren't in v2.10.0 are as follows.
Welcome to the Git development community!

  Aaron M Watson, Brandon Williams, Brian Henderson, Emily Xie,
  Gavin Lambert, Ian Kelling, Jeff Hostetler, Mantas Mikulėnas,
  Petr Stodulka, Satoshi Yasushima, Stefan Christ, Vegard Nossum,
  yaras, and Younes Khoudli.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Henrie,
  Alex Riesen, Anders Kaseorg, Andreas Schwab, Beat Bolli, Ben
  North, brian m. carlson, Chris Packham, Christian Couder, David
  Aguilar, David Turner, Dennis Kaarsemaker, Dimitriy Ryazantcev,
  Elia Pinto, Eric Wong, Jacob Keller, Jakub Narębski, Jean-Noël
  AVILA, Jeff King, Jiang Xin, Johannes Schindelin, Johannes Sixt,
  Jonathan Nieder, Jonathan Tan, Josh Triplett, Junio C Hamano,
  Karsten Blees, Kevin Daudt, Kirill Smelkov, Lars Schneider,
  Linus Torvalds, Matthieu Moy, Michael Haggerty, Michael J Gruber,
  Mike Ralphson, Nguyễn Thái Ngọc Duy, Olaf Hering, Orgad
  Shaneh, Patrick Steinhardt, Pat Thoyts, Philip Oakley, Pranit
  Bauva, Ralf Thielow, Ray Chen, René Scharfe, Ronnie Sahlberg,
  Stefan Beller, SZEDER Gábor, Thomas Gummerer, Tobias Klauser,
  Vasco Almeida, and Дилян Палаузов.



Git 2.11 Release Notes (draft)
==

Backward compatibility notes.

 * An empty string used as a pathspec element has always meant
   'everything matches', but it is too easy to write a script that
   finds a path to remove in $path and run 'git rm "$paht"' by
   mistake (when the user meant to give "$path"), which ends up
   removing everything.  This release starts warning about the
   use of an empty string that is used for 'everything matches' and
   asks users to use a more explicit '.' for that instead.

   The hope is that existing users will not mind this change, and
   eventually the warning can be turned into a hard error, upgrading
   the deprecation into removal of this (mis)feature.

 * The historical argument order "git merge  HEAD ..."
   has been deprecated for quite some time, and will be removed in the
   next release (not this one).

 * The default abbreviation length, which has historically been 7, now
   scales as the repository grows, using the approximate number of
   objects in the repository and a bit of math around the birthday
   paradox.  The logic suggests to use 12 hexdigits for the Linux
   kernel, and 9 to 10 for Git itself.


Updates since v2.10
---

UI, Workflows & Features

 * Comes with new version of git-gui, now at its 0.21.0 tag.

 * "git format-patch --cover-letter HEAD^" to format a single patch
   with a separate cover letter now numbers the output as [PATCH 0/1]
   and [PATCH 1/1] by default.

 * An incoming "git push" that attempts to push too many bytes can now
   be rejected by setting a new configuration variable at the receiving
   end.

 * "git nosuchcommand --help" said "No manual entry for gitnosuchcommand",
   which was not intuitive, given that "git nosuchcommand" said "git:
   'nosuchcommand' is not a git command".

 * "git clone --recurse-submodules --reference $path $URL" is a way to
   reduce network transfer cost by borrowing objects in an existing
   $path repository when cloning the superproject from $URL; it
   learned to also peek into $path for presence of corresponding
   repositories of submodules and borrow objects from there when able.

 * The "git diff --submodule={short,log}" mechanism has been enhanced
   to allow "--submodule=diff" to show the patch between the submodule
   commits bound to the superproject.

 * Even though "git hash-objects", which is a tool to take an
   on-filesystem data stream and put it into the Git object store,
   allowed to perform the "outside-world-to-Git" conversions (e.g.
   end-of-line conversions and application of the clean-filter), and
   it had the feature on by default from very early days, its reverse
   operation "git cat-file", which takes an object from the Git object
   store and externalize for th

[ANNOUNCE] Git v2.11.0-rc2

2016-11-17 Thread Junio C Hamano
A release candidate Git v2.11.0-rc2 is now available for testing
at the usual places.  It is comprised of 646 non-merge commits
since v2.10.0, contributed by 68 people, 14 of which are new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.11.0-rc2' tag and the 'master' 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

New contributors whose contributions weren't in v2.10.0 are as follows.
Welcome to the Git development community!

  Aaron M Watson, Brandon Williams, Brian Henderson, Emily Xie,
  Gavin Lambert, Ian Kelling, Jeff Hostetler, Mantas Mikulėnas,
  Petr Stodulka, Satoshi Yasushima, Stefan Christ, Vegard Nossum,
  yaras, and Younes Khoudli.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Henrie,
  Alex Riesen, Anders Kaseorg, Andreas Schwab, Beat Bolli, Ben
  North, brian m. carlson, Chris Packham, Christian Couder, David
  Aguilar, David Turner, Dennis Kaarsemaker, Dimitriy Ryazantcev,
  Elia Pinto, Eric Wong, Jacob Keller, Jakub Narębski, Jean-Noël
  AVILA, Jeff King, Jiang Xin, Johannes Schindelin, Johannes Sixt,
  Jonathan Nieder, Jonathan Tan, Josh Triplett, Junio C Hamano,
  Karsten Blees, Kevin Daudt, Kirill Smelkov, Lars Schneider,
  Linus Torvalds, Matthieu Moy, Michael Haggerty, Michael J Gruber,
  Mike Ralphson, Nguyễn Thái Ngọc Duy, Olaf Hering, Orgad
  Shaneh, Patrick Steinhardt, Pat Thoyts, Philip Oakley, Pranit
  Bauva, Ralf Thielow, Ray Chen, René Scharfe, Ronnie Sahlberg,
  Stefan Beller, SZEDER Gábor, Thomas Gummerer, Tobias Klauser,
  Vasco Almeida, and Дилян Палаузов.



Git 2.11 Release Notes (draft)
==

Backward compatibility notes.

 * An empty string used as a pathspec element has always meant
   'everything matches', but it is too easy to write a script that
   finds a path to remove in $path and run 'git rm "$paht"' by
   mistake (when the user meant to give "$path"), which ends up
   removing everything.  This release starts warning about the
   use of an empty string that is used for 'everything matches' and
   asks users to use a more explicit '.' for that instead.

   The hope is that existing users will not mind this change, and
   eventually the warning can be turned into a hard error, upgrading
   the deprecation into removal of this (mis)feature.

 * The historical argument order "git merge  HEAD ..."
   has been deprecated for quite some time, and will be removed in the
   next release (not this one).

 * The default abbreviation length, which has historically been 7, now
   scales as the repository grows, using the approximate number of
   objects in the repository and a bit of math around the birthday
   paradox.  The logic suggests to use 12 hexdigits for the Linux
   kernel, and 9 to 10 for Git itself.


Updates since v2.10
---

UI, Workflows & Features

 * Comes with new version of git-gui, now at its 0.21.0 tag.

 * "git format-patch --cover-letter HEAD^" to format a single patch
   with a separate cover letter now numbers the output as [PATCH 0/1]
   and [PATCH 1/1] by default.

 * An incoming "git push" that attempts to push too many bytes can now
   be rejected by setting a new configuration variable at the receiving
   end.

 * "git nosuchcommand --help" said "No manual entry for gitnosuchcommand",
   which was not intuitive, given that "git nosuchcommand" said "git:
   'nosuchcommand' is not a git command".

 * "git clone --recurse-submodules --reference $path $URL" is a way to
   reduce network transfer cost by borrowing objects in an existing
   $path repository when cloning the superproject from $URL; it
   learned to also peek into $path for presence of corresponding
   repositories of submodules and borrow objects from there when able.

 * The "git diff --submodule={short,log}" mechanism has been enhanced
   to allow "--submodule=diff" to show the patch between the submodule
   commits bound to the superproject.

 * Even though "git hash-objects", which is a tool to take an
   on-filesystem data stream and put it into the Git object store,
   allowed to perform the "outside-world-to-Git" conversions (e.g.
   end-of-line conversions and application of the clean-filter), and
   it had the feature on by default from very early days, its reverse
   operation "git cat-file", which takes an object from the Git object
   store and externalize for th

[ANNOUNCE] Git v2.11.0-rc1

2016-11-11 Thread Junio C Hamano
A release candidate Git v2.11.0-rc1 is now available for testing
at the usual places.  It is comprised of 642 non-merge commits
since v2.10.0, contributed by 66 people, 14 of which are new faces.

Due to the last-minute fixups and timezone differences, there might
be a few more updates to test scripts that are necessary depending
on your platform, but otherwise this should be pretty much what the
final 2.11 will look like.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.11.0-rc1' tag and the 'master' 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

New contributors whose contributions weren't in v2.10.0 are as follows.
Welcome to the Git development community!

  Aaron M Watson, Brandon Williams, Brian Henderson, Emily Xie,
  Gavin Lambert, Ian Kelling, Jeff Hostetler, Mantas Mikulėnas,
  Petr Stodulka, Satoshi Yasushima, Stefan Christ, Vegard Nossum,
  yaras, and Younes Khoudli.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Henrie,
  Alex Riesen, Anders Kaseorg, Andreas Schwab, Beat Bolli, brian
  m. carlson, Chris Packham, Christian Couder, David Aguilar,
  David Turner, Dennis Kaarsemaker, Dimitriy Ryazantcev, Elia
  Pinto, Eric Wong, Jacob Keller, Jakub Narębski, Jean-Noël
  AVILA, Jeff King, Jiang Xin, Johannes Schindelin, Johannes Sixt,
  Jonathan Nieder, Jonathan Tan, Josh Triplett, Junio C Hamano,
  Karsten Blees, Kevin Daudt, Kirill Smelkov, Lars Schneider,
  Linus Torvalds, Matthieu Moy, Michael Haggerty, Michael J Gruber,
  Mike Ralphson, Nguyễn Thái Ngọc Duy, Olaf Hering, Orgad
  Shaneh, Patrick Steinhardt, Pat Thoyts, Philip Oakley, Pranit
  Bauva, Ralf Thielow, Ray Chen, René Scharfe, Ronnie Sahlberg,
  Stefan Beller, SZEDER Gábor, Thomas Gummerer, Vasco Almeida,
  and Дилян Палаузов.



Git 2.11 Release Notes (draft)
==

Backward compatibility notes.

 * An empty string used as a pathspec element has always meant
   'everything matches', but it is too easy to write a script that
   finds a path to remove in $path and run 'git rm "$paht"' by
   mistake (when the user meant to give "$path"), which ends up
   removing everything.  This release starts warning about the
   use of an empty string that is used for 'everything matches' and
   asks users to use a more explicit '.' for that instead.

   The hope is that existing users will not mind this change, and
   eventually the warning can be turned into a hard error, upgrading
   the deprecation into removal of this (mis)feature.

 * The historical argument order "git merge  HEAD ..."
   has been deprecated for quite some time, and will be removed in the
   next release (not this one).

 * The default abbreviation length, which has historically been 7, now
   scales as the repository grows, using the approximate number of
   objects in the repository and a bit of math around the birthday
   paradox.  The logic suggests to use 12 hexdigits for the Linux
   kernel, and 9 to 10 for Git itself.


Updates since v2.10
---

UI, Workflows & Features

 * Comes with new version of git-gui, now at its 0.21.0 tag.

 * "git format-patch --cover-letter HEAD^" to format a single patch
   with a separate cover letter now numbers the output as [PATCH 0/1]
   and [PATCH 1/1] by default.

 * An incoming "git push" that attempts to push too many bytes can now
   be rejected by setting a new configuration variable at the receiving
   end.

 * "git nosuchcommand --help" said "No manual entry for gitnosuchcommand",
   which was not intuitive, given that "git nosuchcommand" said "git:
   'nosuchcommand' is not a git command".

 * "git clone --recurse-submodules --reference $path $URL" is a way to
   reduce network transfer cost by borrowing objects in an existing
   $path repository when cloning the superproject from $URL; it
   learned to also peek into $path for presence of corresponding
   repositories of submodules and borrow objects from there when able.

 * The "git diff --submodule={short,log}" mechanism has been enhanced
   to allow "--submodule=diff" to show the patch between the submodule
   commits bound to the superproject.

 * Even though "git hash-objects", which is a tool to take an
   on-filesystem data stream and put it into the Git object store,
   allowed to perform the "outside-world-to-Git" conversions (e.g.
   end-of-line conversions and application of the 

[ANNOUNCE] Git v2.11.0-rc1

2016-11-11 Thread Junio C Hamano
A release candidate Git v2.11.0-rc1 is now available for testing
at the usual places.  It is comprised of 642 non-merge commits
since v2.10.0, contributed by 66 people, 14 of which are new faces.

Due to the last-minute fixups and timezone differences, there might
be a few more updates to test scripts that are necessary depending
on your platform, but otherwise this should be pretty much what the
final 2.11 will look like.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.11.0-rc1' tag and the 'master' 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

New contributors whose contributions weren't in v2.10.0 are as follows.
Welcome to the Git development community!

  Aaron M Watson, Brandon Williams, Brian Henderson, Emily Xie,
  Gavin Lambert, Ian Kelling, Jeff Hostetler, Mantas Mikulėnas,
  Petr Stodulka, Satoshi Yasushima, Stefan Christ, Vegard Nossum,
  yaras, and Younes Khoudli.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Henrie,
  Alex Riesen, Anders Kaseorg, Andreas Schwab, Beat Bolli, brian
  m. carlson, Chris Packham, Christian Couder, David Aguilar,
  David Turner, Dennis Kaarsemaker, Dimitriy Ryazantcev, Elia
  Pinto, Eric Wong, Jacob Keller, Jakub Narębski, Jean-Noël
  AVILA, Jeff King, Jiang Xin, Johannes Schindelin, Johannes Sixt,
  Jonathan Nieder, Jonathan Tan, Josh Triplett, Junio C Hamano,
  Karsten Blees, Kevin Daudt, Kirill Smelkov, Lars Schneider,
  Linus Torvalds, Matthieu Moy, Michael Haggerty, Michael J Gruber,
  Mike Ralphson, Nguyễn Thái Ngọc Duy, Olaf Hering, Orgad
  Shaneh, Patrick Steinhardt, Pat Thoyts, Philip Oakley, Pranit
  Bauva, Ralf Thielow, Ray Chen, René Scharfe, Ronnie Sahlberg,
  Stefan Beller, SZEDER Gábor, Thomas Gummerer, Vasco Almeida,
  and Дилян Палаузов.



Git 2.11 Release Notes (draft)
==

Backward compatibility notes.

 * An empty string used as a pathspec element has always meant
   'everything matches', but it is too easy to write a script that
   finds a path to remove in $path and run 'git rm "$paht"' by
   mistake (when the user meant to give "$path"), which ends up
   removing everything.  This release starts warning about the
   use of an empty string that is used for 'everything matches' and
   asks users to use a more explicit '.' for that instead.

   The hope is that existing users will not mind this change, and
   eventually the warning can be turned into a hard error, upgrading
   the deprecation into removal of this (mis)feature.

 * The historical argument order "git merge  HEAD ..."
   has been deprecated for quite some time, and will be removed in the
   next release (not this one).

 * The default abbreviation length, which has historically been 7, now
   scales as the repository grows, using the approximate number of
   objects in the repository and a bit of math around the birthday
   paradox.  The logic suggests to use 12 hexdigits for the Linux
   kernel, and 9 to 10 for Git itself.


Updates since v2.10
---

UI, Workflows & Features

 * Comes with new version of git-gui, now at its 0.21.0 tag.

 * "git format-patch --cover-letter HEAD^" to format a single patch
   with a separate cover letter now numbers the output as [PATCH 0/1]
   and [PATCH 1/1] by default.

 * An incoming "git push" that attempts to push too many bytes can now
   be rejected by setting a new configuration variable at the receiving
   end.

 * "git nosuchcommand --help" said "No manual entry for gitnosuchcommand",
   which was not intuitive, given that "git nosuchcommand" said "git:
   'nosuchcommand' is not a git command".

 * "git clone --recurse-submodules --reference $path $URL" is a way to
   reduce network transfer cost by borrowing objects in an existing
   $path repository when cloning the superproject from $URL; it
   learned to also peek into $path for presence of corresponding
   repositories of submodules and borrow objects from there when able.

 * The "git diff --submodule={short,log}" mechanism has been enhanced
   to allow "--submodule=diff" to show the patch between the submodule
   commits bound to the superproject.

 * Even though "git hash-objects", which is a tool to take an
   on-filesystem data stream and put it into the Git object store,
   allowed to perform the "outside-world-to-Git" conversions (e.g.
   end-of-line conversions and application of the 

[ANNOUNCE] Git v2.11.0-rc0

2016-10-31 Thread Junio C Hamano
An early preview release Git v2.11.0-rc0 is now available for
testing at the usual places.  It is comprised of 617 non-merge
commits since v2.10.0, contributed by 64 people, 14 of which are
new faces.

An updated, slightly slipped from the original, schedule is found at
http://tinyurl.com/gitCal and I am hoping that we can conclude this
cycle before US Thanksgiving.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.11.0-rc0' tag and the 'master' 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

New contributors whose contributions weren't in v2.10.0 are as follows.
Welcome to the Git development community!

  Aaron M Watson, Brandon Williams, Brian Henderson, Emily Xie,
  Gavin Lambert, Ian Kelling, Jeff Hostetler, Mantas Mikulėnas,
  Petr Stodulka, Satoshi Yasushima, Stefan Christ, Vegard Nossum,
  yaras, and Younes Khoudli.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Henrie,
  Alex Riesen, Anders Kaseorg, Beat Bolli, brian m. carlson,
  Chris Packham, Christian Couder, David Aguilar, David Turner,
  Dennis Kaarsemaker, Dimitriy Ryazantcev, Elia Pinto, Eric Wong,
  Jacob Keller, Jakub Narębski, Jean-Noël AVILA, Jeff King,
  Jiang Xin, Johannes Schindelin, Johannes Sixt, Jonathan Nieder,
  Jonathan Tan, Josh Triplett, Junio C Hamano, Karsten Blees,
  Kevin Daudt, Kirill Smelkov, Lars Schneider, Linus Torvalds,
  Matthieu Moy, Michael Haggerty, Michael J Gruber, Mike Ralphson,
  Nguyễn Thái Ngọc Duy, Olaf Hering, Orgad Shaneh, Pat
  Thoyts, Philip Oakley, Pranit Bauva, Ralf Thielow, Ray Chen,
  René Scharfe, Ronnie Sahlberg, Stefan Beller, SZEDER Gábor,
  Thomas Gummerer, Vasco Almeida, and Дилян Палаузов.



Git 2.11 Release Notes (draft)
==

Backward compatibility notes.

 * An empty string used as a pathspec element has always meant
   'everything matches', but it is too easy to write a script that
   finds a path to remove in $path and run 'git rm "$paht"' by
   mistake (when the user meant to give "$path"), which ends up
   removing everything.  This release starts warning about the
   use of an empty string that is used for 'everything matches' and
   asks users to use a more explicit '.' for that instead.

   The hope is that existing users will not mind this change, and
   eventually the warning can be turned into a hard error, upgrading
   the deprecation into removal of this (mis)feature.

 * The historical argument order "git merge  HEAD ..."
   has been deprecated for quite some time, and will be removed in the
   next release (not this one).

 * The default abbreviation length, which has historically been 7, now
   scales as the repository grows, using the approximate number of
   objects in the reopsitory and a bit of math around the birthday
   paradox.  The logic suggests to use 12 hexdigits for the Linux
   kernel, and 9 to 10 for Git itself.


Updates since v2.10
---

UI, Workflows & Features

 * Comes with new version of git-gui, now at its 0.21.0 tag.

 * "git format-patch --cover-letter HEAD^" to format a single patch
   with a separate cover letter now numbers the output as [PATCH 0/1]
   and [PATCH 1/1] by default.

 * An incoming "git push" that attempts to push too many bytes can now
   be rejected by setting a new configuration variable at the receiving
   end.

 * "git nosuchcommand --help" said "No manual entry for gitnosuchcommand",
   which was not intuitive, given that "git nosuchcommand" said "git:
   'nosuchcommand' is not a git command".

 * "git clone --resurse-submodules --reference $path $URL" is a way to
   reduce network transfer cost by borrowing objects in an existing
   $path repository when cloning the superproject from $URL; it
   learned to also peek into $path for presense of corresponding
   repositories of submodules and borrow objects from there when able.

 * The "git diff --submodule={short,log}" mechanism has been enhanced
   to allow "--submodule=diff" to show the patch between the submodule
   commits bound to the superproject.

 * Even though "git hash-objects", which is a tool to take an
   on-filesystem data stream and put it into the Git object store,
   allowed to perform the "outside-world-to-Git" conversions (e.g.
   end-of-line conversions and application of the clean-filter), and
   it had the feature on by default from very early days, its reverse
   

[ANNOUNCE] Git v2.11.0-rc0

2016-10-31 Thread Junio C Hamano
An early preview release Git v2.11.0-rc0 is now available for
testing at the usual places.  It is comprised of 617 non-merge
commits since v2.10.0, contributed by 64 people, 14 of which are
new faces.

An updated, slightly slipped from the original, schedule is found at
http://tinyurl.com/gitCal and I am hoping that we can conclude this
cycle before US Thanksgiving.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.11.0-rc0' tag and the 'master' 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

New contributors whose contributions weren't in v2.10.0 are as follows.
Welcome to the Git development community!

  Aaron M Watson, Brandon Williams, Brian Henderson, Emily Xie,
  Gavin Lambert, Ian Kelling, Jeff Hostetler, Mantas Mikulėnas,
  Petr Stodulka, Satoshi Yasushima, Stefan Christ, Vegard Nossum,
  yaras, and Younes Khoudli.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Henrie,
  Alex Riesen, Anders Kaseorg, Beat Bolli, brian m. carlson,
  Chris Packham, Christian Couder, David Aguilar, David Turner,
  Dennis Kaarsemaker, Dimitriy Ryazantcev, Elia Pinto, Eric Wong,
  Jacob Keller, Jakub Narębski, Jean-Noël AVILA, Jeff King,
  Jiang Xin, Johannes Schindelin, Johannes Sixt, Jonathan Nieder,
  Jonathan Tan, Josh Triplett, Junio C Hamano, Karsten Blees,
  Kevin Daudt, Kirill Smelkov, Lars Schneider, Linus Torvalds,
  Matthieu Moy, Michael Haggerty, Michael J Gruber, Mike Ralphson,
  Nguyễn Thái Ngọc Duy, Olaf Hering, Orgad Shaneh, Pat
  Thoyts, Philip Oakley, Pranit Bauva, Ralf Thielow, Ray Chen,
  René Scharfe, Ronnie Sahlberg, Stefan Beller, SZEDER Gábor,
  Thomas Gummerer, Vasco Almeida, and Дилян Палаузов.



Git 2.11 Release Notes (draft)
==

Backward compatibility notes.

 * An empty string used as a pathspec element has always meant
   'everything matches', but it is too easy to write a script that
   finds a path to remove in $path and run 'git rm "$paht"' by
   mistake (when the user meant to give "$path"), which ends up
   removing everything.  This release starts warning about the
   use of an empty string that is used for 'everything matches' and
   asks users to use a more explicit '.' for that instead.

   The hope is that existing users will not mind this change, and
   eventually the warning can be turned into a hard error, upgrading
   the deprecation into removal of this (mis)feature.

 * The historical argument order "git merge  HEAD ..."
   has been deprecated for quite some time, and will be removed in the
   next release (not this one).

 * The default abbreviation length, which has historically been 7, now
   scales as the repository grows, using the approximate number of
   objects in the reopsitory and a bit of math around the birthday
   paradox.  The logic suggests to use 12 hexdigits for the Linux
   kernel, and 9 to 10 for Git itself.


Updates since v2.10
---

UI, Workflows & Features

 * Comes with new version of git-gui, now at its 0.21.0 tag.

 * "git format-patch --cover-letter HEAD^" to format a single patch
   with a separate cover letter now numbers the output as [PATCH 0/1]
   and [PATCH 1/1] by default.

 * An incoming "git push" that attempts to push too many bytes can now
   be rejected by setting a new configuration variable at the receiving
   end.

 * "git nosuchcommand --help" said "No manual entry for gitnosuchcommand",
   which was not intuitive, given that "git nosuchcommand" said "git:
   'nosuchcommand' is not a git command".

 * "git clone --resurse-submodules --reference $path $URL" is a way to
   reduce network transfer cost by borrowing objects in an existing
   $path repository when cloning the superproject from $URL; it
   learned to also peek into $path for presense of corresponding
   repositories of submodules and borrow objects from there when able.

 * The "git diff --submodule={short,log}" mechanism has been enhanced
   to allow "--submodule=diff" to show the patch between the submodule
   commits bound to the superproject.

 * Even though "git hash-objects", which is a tool to take an
   on-filesystem data stream and put it into the Git object store,
   allowed to perform the "outside-world-to-Git" conversions (e.g.
   end-of-line conversions and application of the clean-filter), and
   it had the feature on by default from very early days, its reverse
   

[ANNOUNCE] Git v2.10.2

2016-10-29 Thread Junio C Hamano
tree that is connected to the bare
   repository.  The check has been corrected to allow it.

 * "git rebase" immediately after "git clone" failed to find the fork
   point from the upstream.

 * When fetching from a remote that has many tags that are irrelevant
   to branches we are following, we used to waste way too many cycles
   when checking if the object pointed at by a tag (that we are not
   going to fetch!) exists in our repository too carefully.

 * The Travis CI configuration we ship ran the tests with --verbose
   option but this risks non-TAP output that happens to be "ok" to be
   misinterpreted as TAP signalling a test that passed.  This resulted
   in unnecessary failure.  This has been corrected by introducing a
   new mode to run our tests in the test harness to send the verbose
   output separately to the log file.

 * Some AsciiDoc formatter mishandles a displayed illustration with
   tabs in it.  Adjust a few of them in merge-base documentation to
   work around them.

Also contains minor documentation updates and code clean-ups.



Changes since v2.10.1 are as follows:

Anders Kaseorg (1):
  imap-send: Tell cURL to use imap:// or imaps://

Brandon Williams (1):
  submodules doc: update documentation for "." used for submodule branches

David Turner (2):
  add David Turner's Two Sigma address
  http: http.emptyauth should allow empty (not just NULL) usernames

Dennis Kaarsemaker (1):
  worktree: allow the main brach of a bare repository to be checked out

Dimitriy Ryazantcev (1):
  l10n: ru.po: update Russian translation

Jakub Narębski (1):
  configure.ac: improve description of NO_REGEX test

Jeff King (11):
  verify_packfile: check pack validity before accessing data
  graph: fix extra spaces in graph_padding_line
  clone: detect errors in normalize_path_copy
  files_read_raw_ref: avoid infinite loop on broken symlinks
  files_read_raw_ref: prevent infinite retry loops in general
  merge-base: handle --fork-point without reflog
  fetch: use "quick" has_sha1_file for tag following
  test-lib: handle TEST_OUTPUT_DIRECTORY with spaces
  test-lib: add --verbose-log option
  travis: use --verbose-log test option
  test-lib: bail out when "-v" used under "prove"

Johannes Schindelin (1):
  reset: fix usage

Jonathan Tan (1):
  fetch-pack: do not reset in_vain on non-novel acks

Junio C Hamano (9):
  streaming: make sure to notice corrupt object
  unpack_sha1_header(): detect malformed object header
  worktree: honor configuration variables
  blame: use DEFAULT_ABBREV macro
  diff_unique_abbrev(): document its assumption and limitation
  Start preparing for 2.10.2
  cocci: refactor common patterns to use xstrdup_or_null()
  t3700: fix broken test under !SANITY
  Git 2.10.2

Kevin Daudt (2):
  t5100-mailinfo: replace common path prefix with variable
  mailinfo: unescape quoted-pair in header fields

Nguyễn Thái Ngọc Duy (1):
  git-commit.txt: clarify --patch mode with pathspec

Philip Oakley (2):
  doc: fix merge-base ASCII art tab spacing
  doc: fix the 'revert a faulty merge' ASCII art tab spacing

Pranit Bauva (2):
  rev-list-options: clarify the usage of --reverse
  t0040: convert all possible tests to use `test-parse-options --expect`

Ralf Thielow (2):
  l10n: de.po: fix translation of autostash
  l10n: de.po: translate 260 new messages

René Scharfe (17):
  contrib/coccinelle: fix semantic patch for oid_to_hex_r()
  add coccicheck make target
  use strbuf_addstr() for adding constant strings to a strbuf, part 2
  pretty: let %C(auto) reset all attributes
  add COPY_ARRAY
  use COPY_ARRAY
  git-gui: stop using deprecated merge syntax
  gitignore: ignore output files of coccicheck make target
  use strbuf_addstr() instead of strbuf_addf() with "%s", part 2
  use strbuf_add_unique_abbrev() for adding short hashes, part 2
  pretty: avoid adding reset for %C(auto) if output is empty
  coccicheck: make transformation for strbuf_addf(sb, "...") more precise
  remove unnecessary NULL check before free(3)
  use strbuf_add_unique_abbrev() for adding short hashes, part 3
  pretty: fix document link for color specification
  avoid pointer arithmetic involving NULL in FLEX_ALLOC_MEM
  inline xalloc_flex() into FLEXPTR_ALLOC_MEM

SZEDER Gábor (1):
  ref-filter: strip format option after a field name only once while parsing

Stefan Beller (1):
  documentation: improve submodule..{url, path} description

Younes Khoudli (1):
  doc: remove reference to the traditional layout in git-tag.txt

Дилян Палаузов (1):
  ./configure.ac: detect SSL in libcurl using curl-config



[ANNOUNCE] Git v2.10.2

2016-10-29 Thread Junio C Hamano
tree that is connected to the bare
   repository.  The check has been corrected to allow it.

 * "git rebase" immediately after "git clone" failed to find the fork
   point from the upstream.

 * When fetching from a remote that has many tags that are irrelevant
   to branches we are following, we used to waste way too many cycles
   when checking if the object pointed at by a tag (that we are not
   going to fetch!) exists in our repository too carefully.

 * The Travis CI configuration we ship ran the tests with --verbose
   option but this risks non-TAP output that happens to be "ok" to be
   misinterpreted as TAP signalling a test that passed.  This resulted
   in unnecessary failure.  This has been corrected by introducing a
   new mode to run our tests in the test harness to send the verbose
   output separately to the log file.

 * Some AsciiDoc formatter mishandles a displayed illustration with
   tabs in it.  Adjust a few of them in merge-base documentation to
   work around them.

Also contains minor documentation updates and code clean-ups.



Changes since v2.10.1 are as follows:

Anders Kaseorg (1):
  imap-send: Tell cURL to use imap:// or imaps://

Brandon Williams (1):
  submodules doc: update documentation for "." used for submodule branches

David Turner (2):
  add David Turner's Two Sigma address
  http: http.emptyauth should allow empty (not just NULL) usernames

Dennis Kaarsemaker (1):
  worktree: allow the main brach of a bare repository to be checked out

Dimitriy Ryazantcev (1):
  l10n: ru.po: update Russian translation

Jakub Narębski (1):
  configure.ac: improve description of NO_REGEX test

Jeff King (11):
  verify_packfile: check pack validity before accessing data
  graph: fix extra spaces in graph_padding_line
  clone: detect errors in normalize_path_copy
  files_read_raw_ref: avoid infinite loop on broken symlinks
  files_read_raw_ref: prevent infinite retry loops in general
  merge-base: handle --fork-point without reflog
  fetch: use "quick" has_sha1_file for tag following
  test-lib: handle TEST_OUTPUT_DIRECTORY with spaces
  test-lib: add --verbose-log option
  travis: use --verbose-log test option
  test-lib: bail out when "-v" used under "prove"

Johannes Schindelin (1):
  reset: fix usage

Jonathan Tan (1):
  fetch-pack: do not reset in_vain on non-novel acks

Junio C Hamano (9):
  streaming: make sure to notice corrupt object
  unpack_sha1_header(): detect malformed object header
  worktree: honor configuration variables
  blame: use DEFAULT_ABBREV macro
  diff_unique_abbrev(): document its assumption and limitation
  Start preparing for 2.10.2
  cocci: refactor common patterns to use xstrdup_or_null()
  t3700: fix broken test under !SANITY
  Git 2.10.2

Kevin Daudt (2):
  t5100-mailinfo: replace common path prefix with variable
  mailinfo: unescape quoted-pair in header fields

Nguyễn Thái Ngọc Duy (1):
  git-commit.txt: clarify --patch mode with pathspec

Philip Oakley (2):
  doc: fix merge-base ASCII art tab spacing
  doc: fix the 'revert a faulty merge' ASCII art tab spacing

Pranit Bauva (2):
  rev-list-options: clarify the usage of --reverse
  t0040: convert all possible tests to use `test-parse-options --expect`

Ralf Thielow (2):
  l10n: de.po: fix translation of autostash
  l10n: de.po: translate 260 new messages

René Scharfe (17):
  contrib/coccinelle: fix semantic patch for oid_to_hex_r()
  add coccicheck make target
  use strbuf_addstr() for adding constant strings to a strbuf, part 2
  pretty: let %C(auto) reset all attributes
  add COPY_ARRAY
  use COPY_ARRAY
  git-gui: stop using deprecated merge syntax
  gitignore: ignore output files of coccicheck make target
  use strbuf_addstr() instead of strbuf_addf() with "%s", part 2
  use strbuf_add_unique_abbrev() for adding short hashes, part 2
  pretty: avoid adding reset for %C(auto) if output is empty
  coccicheck: make transformation for strbuf_addf(sb, "...") more precise
  remove unnecessary NULL check before free(3)
  use strbuf_add_unique_abbrev() for adding short hashes, part 3
  pretty: fix document link for color specification
  avoid pointer arithmetic involving NULL in FLEX_ALLOC_MEM
  inline xalloc_flex() into FLEXPTR_ALLOC_MEM

SZEDER Gábor (1):
  ref-filter: strip format option after a field name only once while parsing

Stefan Beller (1):
  documentation: improve submodule..{url, path} description

Younes Khoudli (1):
  doc: remove reference to the traditional layout in git-tag.txt

Дилян Палаузов (1):
  ./configure.ac: detect SSL in libcurl using curl-config



[ANNOUNCE] Git v2.10.1

2016-10-03 Thread Junio C Hamano
 mmap(2)ed, which may not have a terminating NUL, leading to a read
   beyond the end of the mapped region.  This was fixed by introducing
   a regexec_buf() helper that takes a <ptr,len> pair with REG_STARTEND
   extension.

 * The procedure to build Git on Mac OS X for Travis CI hardcoded the
   internal directory structure we assumed HomeBrew uses, which was a
   no-no.  The procedure has been updated to ask HomeBrew things we
   need to know to fix this.

 * When "git rebase -i" is given a broken instruction, it told the
   user to fix it with "--edit-todo", but didn't say what the step
   after that was (i.e. "--continue").

 * "git add --chmod=+x" added recently lacked documentation, which has
   been corrected.

 * "git add --chmod=+x " added recently only toggled the
   executable bit for paths that are either new or modified. This has
   been corrected to flip the executable bit for all paths that match
   the given pathspec.

 * "git pack-objects --include-tag" was taught that when we know that
   we are sending an object C, we want a tag B that directly points at
   C but also a tag A that points at the tag B.  We used to miss the
   intermediate tag B in some cases.

 * Documentation around tools to import from CVS was fairly outdated.

 * In the codepath that comes up with the hostname to be used in an
   e-mail when the user didn't tell us, we looked at ai_canonname
   field in struct addrinfo without making sure it is not NULL first.

Also contains minor documentation updates and code clean-ups.



Changes since v2.10.0 are as follows:

Alex Henrie (5):
  am: put spaces around pipe in usage string
  cat-file: put spaces around pipes in usage string
  git-rebase--interactive: fix English grammar
  git-merge-octopus: do not capitalize "octopus"
  unpack-trees: do not capitalize "working"

Beat Bolli (1):
  SubmittingPatches: use gitk's "Copy commit summary" format

Brandon Williams (1):
  pathspec: remove unnecessary function prototypes

Brian Henderson (3):
  diff-highlight: add some tests
  diff-highlight: add failing test for handling --graph output
  diff-highlight: add support for --graph output

Elia Pinto (5):
  t5541-http-push-smart.sh: use the GIT_TRACE_CURL environment var
  test-lib.sh: preserve GIT_TRACE_CURL from the environment
  t5550-http-fetch-dumb.sh: use the GIT_TRACE_CURL environment var
  t5551-http-fetch-smart.sh: use the GIT_TRACE_CURL environment var
  git-check-ref-format.txt: fixup documentation

Eric Wong (3):
  http: warn on curl_multi_add_handle failures
  http: consolidate #ifdefs for curl_multi_remove_handle
  http: always remove curl easy from curlm session on release

Jeff King (20):
  rebase-interactive: drop early check for valid ident
  gc: default aggressive depth to 50
  test-lib: drop PID from test-results/*.count
  diff-highlight: ignore test cruft
  diff-highlight: add multi-byte tests
  diff-highlight: avoid highlighting combined diffs
  error_errno: use constant return similar to error()
  color_parse_mem: initialize "struct color" temporary
  t5305: move cleanup into test block
  t5305: drop "dry-run" of unpack-objects
  t5305: use "git -C"
  t5305: simplify packname handling
  pack-objects: walk tag chains for --include-tag
  remote-curl: handle URLs without protocol
  patch-ids: turn off rename detection
  patch-ids: refuse to compute patch-id for merge commit
  docs/cvsimport: prefer cvs-fast-export to parsecvs
  docs/cvs-migration: update link to cvsps homepage
  docs/cvs-migration: mention cvsimport caveats
  ident: handle NULL ai_canonname

Jiang Xin (1):
  l10n: zh_CN: fixed some typos for git 2.10.0

Johannes Schindelin (4):
  git-gui: respect commit.gpgsign again
  regex: -G feeds a non NUL-terminated string to regexec() and 
fails
  regex: add regexec_buf() that can work on a non NUL-terminated string
  regex: use regexec_buf()

Johannes Sixt (4):
  t9903: fix broken && chain
  t6026-merge-attr: clean up background process at end of test case
  t3700-add: create subdirectory gently
  t3700-add: do not check working tree file mode without POSIXPERM

Josh Triplett (1):
  format-patch: show base info before email signature

Junio C Hamano (6):
  submodule: avoid auto-discovery in prepare_submodule_repo_env()
  symbolic-ref -d: do not allow removal of HEAD
  Prepare for 2.9.4
  Start preparing for 2.10.1
  Prepare for 2.10.1
  Git 2.10.1

Kirill Smelkov (1):
  t/perf/run: copy config.mak.autogen & friends to build area

Lars Schneider (1):
  travis-ci: ask homebrew for its path instead of hardcoding it

Matthieu Moy (1):
  Docu

[ANNOUNCE] Git v2.10.1

2016-10-03 Thread Junio C Hamano
p(2)ed, which may not have a terminating NUL, leading to a read
   beyond the end of the mapped region.  This was fixed by introducing
   a regexec_buf() helper that takes a  pair with REG_STARTEND
   extension.

 * The procedure to build Git on Mac OS X for Travis CI hardcoded the
   internal directory structure we assumed HomeBrew uses, which was a
   no-no.  The procedure has been updated to ask HomeBrew things we
   need to know to fix this.

 * When "git rebase -i" is given a broken instruction, it told the
   user to fix it with "--edit-todo", but didn't say what the step
   after that was (i.e. "--continue").

 * "git add --chmod=+x" added recently lacked documentation, which has
   been corrected.

 * "git add --chmod=+x " added recently only toggled the
   executable bit for paths that are either new or modified. This has
   been corrected to flip the executable bit for all paths that match
   the given pathspec.

 * "git pack-objects --include-tag" was taught that when we know that
   we are sending an object C, we want a tag B that directly points at
   C but also a tag A that points at the tag B.  We used to miss the
   intermediate tag B in some cases.

 * Documentation around tools to import from CVS was fairly outdated.

 * In the codepath that comes up with the hostname to be used in an
   e-mail when the user didn't tell us, we looked at ai_canonname
   field in struct addrinfo without making sure it is not NULL first.

Also contains minor documentation updates and code clean-ups.



Changes since v2.10.0 are as follows:

Alex Henrie (5):
  am: put spaces around pipe in usage string
  cat-file: put spaces around pipes in usage string
  git-rebase--interactive: fix English grammar
  git-merge-octopus: do not capitalize "octopus"
  unpack-trees: do not capitalize "working"

Beat Bolli (1):
  SubmittingPatches: use gitk's "Copy commit summary" format

Brandon Williams (1):
  pathspec: remove unnecessary function prototypes

Brian Henderson (3):
  diff-highlight: add some tests
  diff-highlight: add failing test for handling --graph output
  diff-highlight: add support for --graph output

Elia Pinto (5):
  t5541-http-push-smart.sh: use the GIT_TRACE_CURL environment var
  test-lib.sh: preserve GIT_TRACE_CURL from the environment
  t5550-http-fetch-dumb.sh: use the GIT_TRACE_CURL environment var
  t5551-http-fetch-smart.sh: use the GIT_TRACE_CURL environment var
  git-check-ref-format.txt: fixup documentation

Eric Wong (3):
  http: warn on curl_multi_add_handle failures
  http: consolidate #ifdefs for curl_multi_remove_handle
  http: always remove curl easy from curlm session on release

Jeff King (20):
  rebase-interactive: drop early check for valid ident
  gc: default aggressive depth to 50
  test-lib: drop PID from test-results/*.count
  diff-highlight: ignore test cruft
  diff-highlight: add multi-byte tests
  diff-highlight: avoid highlighting combined diffs
  error_errno: use constant return similar to error()
  color_parse_mem: initialize "struct color" temporary
  t5305: move cleanup into test block
  t5305: drop "dry-run" of unpack-objects
  t5305: use "git -C"
  t5305: simplify packname handling
  pack-objects: walk tag chains for --include-tag
  remote-curl: handle URLs without protocol
  patch-ids: turn off rename detection
  patch-ids: refuse to compute patch-id for merge commit
  docs/cvsimport: prefer cvs-fast-export to parsecvs
  docs/cvs-migration: update link to cvsps homepage
  docs/cvs-migration: mention cvsimport caveats
  ident: handle NULL ai_canonname

Jiang Xin (1):
  l10n: zh_CN: fixed some typos for git 2.10.0

Johannes Schindelin (4):
  git-gui: respect commit.gpgsign again
  regex: -G feeds a non NUL-terminated string to regexec() and 
fails
  regex: add regexec_buf() that can work on a non NUL-terminated string
  regex: use regexec_buf()

Johannes Sixt (4):
  t9903: fix broken && chain
  t6026-merge-attr: clean up background process at end of test case
  t3700-add: create subdirectory gently
  t3700-add: do not check working tree file mode without POSIXPERM

Josh Triplett (1):
  format-patch: show base info before email signature

Junio C Hamano (6):
  submodule: avoid auto-discovery in prepare_submodule_repo_env()
  symbolic-ref -d: do not allow removal of HEAD
  Prepare for 2.9.4
  Start preparing for 2.10.1
  Prepare for 2.10.1
  Git 2.10.1

Kirill Smelkov (1):
  t/perf/run: copy config.mak.autogen & friends to build area

Lars Schneider (1):
  travis-ci: ask homebrew for its path instead of hardcoding it

Matthieu Moy (1):
  Documentation/config: 

[ANNOUNCE] Git v2.10.0

2016-09-02 Thread Junio C Hamano
The latest feature release Git v2.10.0 is now available at the
usual places.  It is comprised of 639 non-merge commits since
v2.9.0, contributed by 76 people, 22 of which are new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the 'v2.10.0'
tag and the 'master' 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

New contributors whose contributions weren't in v2.9.0 are as follows.
Welcome to the Git development community!

  Alexander Hirsch, Andreas Brauchli, Andrew Oakley, Antoine Queru,
  Ben Wijen, Christopher Layne, Dave Nicolson, David Glasser, Ed
  Maste, Heiko Becker, Ingo Brückl, Jonathan Tan, Jordan DE GEA,
  Josef Kufner, Keith McGuigan, Kevin Willford, LE Manh Cuong,
  Michael Stahl, Parker Moore, Peter Colberg, Tom Russello,
  and William Duclot.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Alex Henrie, Alfred Perlstein, Armin Kunaschik, brian m. carlson,
  Changwoo Ryu, Charles Bailey, Chris Packham, Christian Couder,
  David A. Greene, David Aguilar, David Kastrup, David Turner,
  Edward Thomson, Elia Pinto, Eric Sunshine, Eric Wong, Heiko
  Voigt, Jacob Keller, Jean-Noel Avila, Jeff King, Jiang Xin,
  Joey Hess, Johannes Schindelin, Johannes Sixt, John Keeping,
  Jonathan Nieder, Josh Triplett, Junio C Hamano, Lars Schneider,
  Lars Vogel, Linus Torvalds, Lukas Fleischer, Matthieu Moy,
  Mehul Jain, Michael Haggerty, Michael J Gruber, Mike Hommey,
  Nguyễn Thái Ngọc Duy, Nicolas Pitre, Orgad Shaneh, Patrick
  Steinhardt, Peter Krefting, Pranit Bauva, Ramsay Jones, René
  Scharfe, Ronald Wampler, Stefan Beller, SZEDER Gábor, Thomas
  Braun, Thomas Gummerer, Torsten Bögershausen, Trần Ngọc
  Quân, Vasco Almeida, and Ville Skyttä.



Git 2.10 Release Notes
==

Backward compatibility notes


Updates since v2.9
--

UI, Workflows & Features

 * "git pull --rebase --verify-signature" learned to warn the user
   that "--verify-signature" is a no-op when rebasing.

 * An upstream project can make a recommendation to shallowly clone
   some submodules in the .gitmodules file it ships.

 * "git worktree add" learned that '-' can be used as a short-hand for
   "@{-1}", the previous branch.

 * Update the funcname definition to support css files.

 * The completion script (in contrib/) learned to complete "git
   status" options.

 * Messages that are generated by auto gc during "git push" on the
   receiving end are now passed back to the sending end in such a way
   that they are shown with "remote: " prefix to avoid confusing the
   users.

 * "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.

 * "upload-pack" allows a custom "git pack-objects" replacement when
   responding to "fetch/clone" via the uploadpack.packObjectsHook.
   (merge b738396 jk/upload-pack-hook later to maint).

 * Teach format-patch and mailsplit (hence "am") how a line that
   happens to begin with "From " in the e-mail message is quoted with
   ">", so that these lines can be restored to their original shape.
   (merge d9925d1 ew/mboxrd-format-am later to maint).

 * "git repack" learned the "--keep-unreachable" option, which sends
   loose unreachable objects to a pack instead of leaving them loose.
   This helps heuristics based on the number of loose objects
   (e.g. "gc --auto").
   (merge e26a8c4 jk/repack-keep-unreachable later to maint).

 * "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.

 * A careless invocation of "git send-email directory/" after editing
   0001-change.patch with an editor often ends up sending both
   0001-change.patch and its backup file, 0001-change.patch~, causing
   embarrassment and a minor confusion.  Detect such an input and
   offer to skip the backup files when sending the patches out.
   (merge 531220b jc/send-email-skip-backup later to maint).

 * "git submodule update" that drives many "git clone" could
   eventually hit flaky servers/network conditions on one of the
   submodules; the command

[ANNOUNCE] Git v2.10.0

2016-09-02 Thread Junio C Hamano
The latest feature release Git v2.10.0 is now available at the
usual places.  It is comprised of 639 non-merge commits since
v2.9.0, contributed by 76 people, 22 of which are new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the 'v2.10.0'
tag and the 'master' 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

New contributors whose contributions weren't in v2.9.0 are as follows.
Welcome to the Git development community!

  Alexander Hirsch, Andreas Brauchli, Andrew Oakley, Antoine Queru,
  Ben Wijen, Christopher Layne, Dave Nicolson, David Glasser, Ed
  Maste, Heiko Becker, Ingo Brückl, Jonathan Tan, Jordan DE GEA,
  Josef Kufner, Keith McGuigan, Kevin Willford, LE Manh Cuong,
  Michael Stahl, Parker Moore, Peter Colberg, Tom Russello,
  and William Duclot.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Alex Henrie, Alfred Perlstein, Armin Kunaschik, brian m. carlson,
  Changwoo Ryu, Charles Bailey, Chris Packham, Christian Couder,
  David A. Greene, David Aguilar, David Kastrup, David Turner,
  Edward Thomson, Elia Pinto, Eric Sunshine, Eric Wong, Heiko
  Voigt, Jacob Keller, Jean-Noel Avila, Jeff King, Jiang Xin,
  Joey Hess, Johannes Schindelin, Johannes Sixt, John Keeping,
  Jonathan Nieder, Josh Triplett, Junio C Hamano, Lars Schneider,
  Lars Vogel, Linus Torvalds, Lukas Fleischer, Matthieu Moy,
  Mehul Jain, Michael Haggerty, Michael J Gruber, Mike Hommey,
  Nguyễn Thái Ngọc Duy, Nicolas Pitre, Orgad Shaneh, Patrick
  Steinhardt, Peter Krefting, Pranit Bauva, Ramsay Jones, René
  Scharfe, Ronald Wampler, Stefan Beller, SZEDER Gábor, Thomas
  Braun, Thomas Gummerer, Torsten Bögershausen, Trần Ngọc
  Quân, Vasco Almeida, and Ville Skyttä.



Git 2.10 Release Notes
==

Backward compatibility notes


Updates since v2.9
--

UI, Workflows & Features

 * "git pull --rebase --verify-signature" learned to warn the user
   that "--verify-signature" is a no-op when rebasing.

 * An upstream project can make a recommendation to shallowly clone
   some submodules in the .gitmodules file it ships.

 * "git worktree add" learned that '-' can be used as a short-hand for
   "@{-1}", the previous branch.

 * Update the funcname definition to support css files.

 * The completion script (in contrib/) learned to complete "git
   status" options.

 * Messages that are generated by auto gc during "git push" on the
   receiving end are now passed back to the sending end in such a way
   that they are shown with "remote: " prefix to avoid confusing the
   users.

 * "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.

 * "upload-pack" allows a custom "git pack-objects" replacement when
   responding to "fetch/clone" via the uploadpack.packObjectsHook.
   (merge b738396 jk/upload-pack-hook later to maint).

 * Teach format-patch and mailsplit (hence "am") how a line that
   happens to begin with "From " in the e-mail message is quoted with
   ">", so that these lines can be restored to their original shape.
   (merge d9925d1 ew/mboxrd-format-am later to maint).

 * "git repack" learned the "--keep-unreachable" option, which sends
   loose unreachable objects to a pack instead of leaving them loose.
   This helps heuristics based on the number of loose objects
   (e.g. "gc --auto").
   (merge e26a8c4 jk/repack-keep-unreachable later to maint).

 * "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.

 * A careless invocation of "git send-email directory/" after editing
   0001-change.patch with an editor often ends up sending both
   0001-change.patch and its backup file, 0001-change.patch~, causing
   embarrassment and a minor confusion.  Detect such an input and
   offer to skip the backup files when sending the patches out.
   (merge 531220b jc/send-email-skip-backup later to maint).

 * "git submodule update" that drives many "git clone" could
   eventually hit flaky servers/network conditions on one of the
   submodules; the command

Re: [PATCH V2] git-send-email: Add ability to cc: any "bylines" in the commit message

2016-08-31 Thread Junio C Hamano
Joe Perches <j...@perches.com> writes:

> On Wed, 2016-08-31 at 12:34 -0700, Junio C Hamano wrote:
>> Joe Perches <j...@perches.com> writes:
>> > Many commits have various forms of bylines similar to
>> A missing blank line (I can tweak while queuing).
> []
>> > +  next if $suppress_cc{'bylines'} and $what !~ 
>> > /Signed-off-by/i and $what =~ /by$/i;
>> Having to keep this /by$/i in sync with whatever definition of
>> bylines is will be error prone.  How about doing it in this way?
>> 
>>  # Now parse the message body
>> +my $bypat = r/[\w-]+-by/;
>>  while (<$fh>) {
>>  ...
>> if (/^(Signed-off-by|Cc|$bypat): (.*)$/i) {
>>  ...
>>  next if $suppress_cc{'bodycc'} and $what =~ 
>> /Cc/i;
>> +next if $suppress_cc{'bylines'} and
>> +$what !~ /^Signed-off-by/i and
>> +$what =~ /^$bypat/i;
>> 
>> Other than that, looking good.
>
> Sure, whatever you want, do you want a v3 from me or can
> you fix it up however you want?

This topic is not my itch, so "however I want" would not be a good
instruction to me--The lazy one in me would be tempted to say "ok,
then I'd drop it altogether" ;-)

I am sure the typo "[^\s]+[\w-]by" in the one we just saw was merely
because you rushed it out without double checking.  We are in
pre-release feature freeze so there is no need to rush.  I'd prefer
to see a final version that is carefully proof-read by the author.

Thanks.


Re: [PATCH V2] git-send-email: Add ability to cc: any "bylines" in the commit message

2016-08-31 Thread Junio C Hamano
Joe Perches  writes:

> On Wed, 2016-08-31 at 12:34 -0700, Junio C Hamano wrote:
>> Joe Perches  writes:
>> > Many commits have various forms of bylines similar to
>> A missing blank line (I can tweak while queuing).
> []
>> > +  next if $suppress_cc{'bylines'} and $what !~ 
>> > /Signed-off-by/i and $what =~ /by$/i;
>> Having to keep this /by$/i in sync with whatever definition of
>> bylines is will be error prone.  How about doing it in this way?
>> 
>>  # Now parse the message body
>> +my $bypat = r/[\w-]+-by/;
>>  while (<$fh>) {
>>  ...
>> if (/^(Signed-off-by|Cc|$bypat): (.*)$/i) {
>>  ...
>>  next if $suppress_cc{'bodycc'} and $what =~ 
>> /Cc/i;
>> +next if $suppress_cc{'bylines'} and
>> +$what !~ /^Signed-off-by/i and
>> +$what =~ /^$bypat/i;
>> 
>> Other than that, looking good.
>
> Sure, whatever you want, do you want a v3 from me or can
> you fix it up however you want?

This topic is not my itch, so "however I want" would not be a good
instruction to me--The lazy one in me would be tempted to say "ok,
then I'd drop it altogether" ;-)

I am sure the typo "[^\s]+[\w-]by" in the one we just saw was merely
because you rushed it out without double checking.  We are in
pre-release feature freeze so there is no need to rush.  I'd prefer
to see a final version that is carefully proof-read by the author.

Thanks.


Re: [PATCH V2] git-send-email: Add ability to cc: any "bylines" in the commit message

2016-08-31 Thread Junio C Hamano
Joe Perches  writes:

> Many commits have various forms of bylines similar to

A missing blank line (I can tweak while queuing).

>  "Acked-by: Name " and "Reported-by: Name "
>
> Add the ability to cc: bylines (e.g. Acked-by:) when using git send-email.
>
> This can be suppressed with --suppress-cc=bylines.
> ...
> @@ -307,8 +308,10 @@ Automating
>patch body (commit message) except for self (use 'self' for that).
>  - 'sob' will avoid including anyone mentioned in Signed-off-by lines except
> for self (use 'self' for that).
> +- 'bylines' will avoid including anyone mentioned in any "-by:" lines
> +  in the patch header except for Signed-off-by.

 feels a bit too informal but I don't think of a better
alternative, perhaps other than "*-by:".

> @@ -1545,7 +1545,7 @@ foreach my $t (@files) {
>   # Now parse the message body
>   while(<$fh>) {
>   $message .=  $_;
> - if (/^(Signed-off-by|Cc): (.*)$/i) {
> + if (/^(Signed-off-by|Cc|[^\s]+[\w-]by): (.*)$/i) {

I thought you wanted

if (/^(Signed-off-by|Cc|[\w-]+-by): (.*)$/i) {

instead to avoid "O_=:;fooby: Joe Perches "
>   chomp;
>   my ($what, $c) = ($1, $2);
>   chomp $c;
> @@ -1555,6 +1555,12 @@ foreach my $t (@files) {
>   } else {
>   next if $suppress_cc{'sob'} and $what =~ 
> /Signed-off-by/i;
>   next if $suppress_cc{'bodycc'} and $what =~ 
> /Cc/i;
> + next if $suppress_cc{'bylines'} and $what !~ 
> /Signed-off-by/i and $what =~ /by$/i;

Having to keep this /by$/i in sync with whatever definition of
bylines is will be error prone.  How about doing it in this way?

# Now parse the message body
+   my $bypat = r/[\w-]+-by/;
while (<$fh>) {
...
if (/^(Signed-off-by|Cc|$bypat): (.*)$/i) {
...
next if $suppress_cc{'bodycc'} and $what =~ 
/Cc/i;
+   next if $suppress_cc{'bylines'} and
+   $what !~ /^Signed-off-by/i and
+   $what =~ /^$bypat/i;

Other than that, looking good.


Re: [PATCH V2] git-send-email: Add ability to cc: any "bylines" in the commit message

2016-08-31 Thread Junio C Hamano
Joe Perches  writes:

> Many commits have various forms of bylines similar to

A missing blank line (I can tweak while queuing).

>  "Acked-by: Name " and "Reported-by: Name "
>
> Add the ability to cc: bylines (e.g. Acked-by:) when using git send-email.
>
> This can be suppressed with --suppress-cc=bylines.
> ...
> @@ -307,8 +308,10 @@ Automating
>patch body (commit message) except for self (use 'self' for that).
>  - 'sob' will avoid including anyone mentioned in Signed-off-by lines except
> for self (use 'self' for that).
> +- 'bylines' will avoid including anyone mentioned in any "-by:" lines
> +  in the patch header except for Signed-off-by.

 feels a bit too informal but I don't think of a better
alternative, perhaps other than "*-by:".

> @@ -1545,7 +1545,7 @@ foreach my $t (@files) {
>   # Now parse the message body
>   while(<$fh>) {
>   $message .=  $_;
> - if (/^(Signed-off-by|Cc): (.*)$/i) {
> + if (/^(Signed-off-by|Cc|[^\s]+[\w-]by): (.*)$/i) {

I thought you wanted

if (/^(Signed-off-by|Cc|[\w-]+-by): (.*)$/i) {

instead to avoid "O_=:;fooby: Joe Perches "
>   chomp;
>   my ($what, $c) = ($1, $2);
>   chomp $c;
> @@ -1555,6 +1555,12 @@ foreach my $t (@files) {
>   } else {
>   next if $suppress_cc{'sob'} and $what =~ 
> /Signed-off-by/i;
>   next if $suppress_cc{'bodycc'} and $what =~ 
> /Cc/i;
> + next if $suppress_cc{'bylines'} and $what !~ 
> /Signed-off-by/i and $what =~ /by$/i;

Having to keep this /by$/i in sync with whatever definition of
bylines is will be error prone.  How about doing it in this way?

# Now parse the message body
+   my $bypat = r/[\w-]+-by/;
while (<$fh>) {
...
if (/^(Signed-off-by|Cc|$bypat): (.*)$/i) {
...
next if $suppress_cc{'bodycc'} and $what =~ 
/Cc/i;
+   next if $suppress_cc{'bylines'} and
+   $what !~ /^Signed-off-by/i and
+   $what =~ /^$bypat/i;

Other than that, looking good.


Re: [PATCH] git-send-email: Add ability to cc: any "trailers" from commit message

2016-08-31 Thread Junio C Hamano
Joe Perches <j...@perches.com> writes:

> On Wed, 2016-08-31 at 10:54 -0700, Junio C Hamano wrote:
>> Joe Perches <j...@perches.com> writes:
>> 
>> > 
>> > Many commits have various forms of trailers similar to
>> >  "Acked-by: Name " and "Reported-by: Name "
>> > 
>> > Add the ability to cc these trailers when using git send-email.
>> I thought you were asking what we call these " followed by
>> " at the end of the log message, and "footers or trailers"
>> was the answer.
>> 
>> I do not have a strong objection against limiting to "-by:" lines;
>> for one thing, it would automatically avoid having to worry about
>> "Bug-ID:" and other trailers that won't have e-mail address at all.
>> 
>> But if you are _only_ picking up "-by:" lines, then calling this
>> option "trailers" is way too wide and confusing.  I do not think
>> there is any specific name for "-by:" lines, though.  Perhaps you
>> would need to invent some name that has "-by" as a substring.
>> 
>> "any-by"?  or just "by"?  I dunno.
>
> Signatures?

Helped-by: and Reported-by: are often written by the author of the
patch and not by those who helped or reported, so calling them signatures
imply the author is forging them, too ;-)

I dunno.

Any name that hints that this applies only to the trailers that ends
with "-by" is fine but "Signatures-by" does not sound very
grammatical.


Re: [PATCH] git-send-email: Add ability to cc: any "trailers" from commit message

2016-08-31 Thread Junio C Hamano
Joe Perches  writes:

> On Wed, 2016-08-31 at 10:54 -0700, Junio C Hamano wrote:
>> Joe Perches  writes:
>> 
>> > 
>> > Many commits have various forms of trailers similar to
>> >  "Acked-by: Name " and "Reported-by: Name "
>> > 
>> > Add the ability to cc these trailers when using git send-email.
>> I thought you were asking what we call these " followed by
>> " at the end of the log message, and "footers or trailers"
>> was the answer.
>> 
>> I do not have a strong objection against limiting to "-by:" lines;
>> for one thing, it would automatically avoid having to worry about
>> "Bug-ID:" and other trailers that won't have e-mail address at all.
>> 
>> But if you are _only_ picking up "-by:" lines, then calling this
>> option "trailers" is way too wide and confusing.  I do not think
>> there is any specific name for "-by:" lines, though.  Perhaps you
>> would need to invent some name that has "-by" as a substring.
>> 
>> "any-by"?  or just "by"?  I dunno.
>
> Signatures?

Helped-by: and Reported-by: are often written by the author of the
patch and not by those who helped or reported, so calling them signatures
imply the author is forging them, too ;-)

I dunno.

Any name that hints that this applies only to the trailers that ends
with "-by" is fine but "Signatures-by" does not sound very
grammatical.


Re: [PATCH] git-send-email: Add ability to cc: any "trailers" from commit message

2016-08-31 Thread Junio C Hamano
Joe Perches  writes:

> Many commits have various forms of trailers similar to
>  "Acked-by: Name " and "Reported-by: Name "
>
> Add the ability to cc these trailers when using git send-email.

I thought you were asking what we call these " followed by
" at the end of the log message, and "footers or trailers"
was the answer.

I do not have a strong objection against limiting to "-by:" lines;
for one thing, it would automatically avoid having to worry about
"Bug-ID:" and other trailers that won't have e-mail address at all.

But if you are _only_ picking up "-by:" lines, then calling this
option "trailers" is way too wide and confusing.  I do not think
there is any specific name for "-by:" lines, though.  Perhaps you
would need to invent some name that has "-by" as a substring.

"any-by"?  or just "by"?  I dunno.

>  if ($suppress_cc{'all'}) {
> - foreach my $entry (qw (cccmd cc author self sob body bodycc)) {
> + foreach my $entry (qw (cccmd cc author self sob body bodycc trailers)) {
>   $suppress_cc{$entry} = 1;
>   }

OK.

> @@ -448,7 +448,7 @@ $suppress_cc{'self'} = $suppress_from if defined 
> $suppress_from;
>  $suppress_cc{'sob'} = !$signed_off_by_cc if defined $signed_off_by_cc;
>  
>  if ($suppress_cc{'body'}) {
> - foreach my $entry (qw (sob bodycc)) {
> + foreach my $entry (qw (sob bodycc trailers)) {
>   $suppress_cc{$entry} = 1;
>   }
>   delete $suppress_cc{'body'};

OK.

> @@ -1545,7 +1545,7 @@ foreach my $t (@files) {
>   # Now parse the message body
>   while(<$fh>) {
>   $message .=  $_;
> - if (/^(Signed-off-by|Cc): (.*)$/i) {
> + if (/^(Signed-off-by|Cc|[^\s]+[_-]by): (.*)$/i) {

Micronits:

 (1) do you really want to grab a run of any non-blanks?  Don't
 you want to exclude at least a colon?
 (2) allowing an underscore looks a bit unusual.  

> @@ -1555,6 +1555,12 @@ foreach my $t (@files) {
>   } else {
>   next if $suppress_cc{'sob'} and $what =~ 
> /Signed-off-by/i;
>   next if $suppress_cc{'bodycc'} and $what =~ 
> /Cc/i;
> + next if $suppress_cc{'trailers'} and $what !~ 
> /Signed-off-by/i && $what =~ /by$/i;
> + }

It is a bit unfortunate that S-o-b is a subset of any-by that forces
you to do this.

> + if ($c !~ /.+@.+/) {
> + printf("(body) Ignoring %s from line '%s'\n",
> +$what, $_) unless $quiet;
> + next;
>   }

This check is new and applies to sob/cc, too.

I am aware of the fact that people sometimes write only a name with
no e-mail address when giving credit to a third-party and we want to
avoid upsetting the underlying MTA by feeding it a non-address.

Looking at existing helper subs like extract_valid_address and
sanitize_address that all addresses we pass to the MTA go through,
it appears to me that we try to support an addr-spec with only
local-part without @domain, so this new check might turn out to be
too strict from that point of view, but on the other hand I suspect
it won't be a huge issue because the addresses in the footers are
for public consumption and it may not make much sense to have a
local-only address there.  I dunno.

>   push @cc, $c;
>   printf("(body) Adding cc: %s from line '%s'\n",


Re: [PATCH] git-send-email: Add ability to cc: any "trailers" from commit message

2016-08-31 Thread Junio C Hamano
Joe Perches  writes:

> Many commits have various forms of trailers similar to
>  "Acked-by: Name " and "Reported-by: Name "
>
> Add the ability to cc these trailers when using git send-email.

I thought you were asking what we call these " followed by
" at the end of the log message, and "footers or trailers"
was the answer.

I do not have a strong objection against limiting to "-by:" lines;
for one thing, it would automatically avoid having to worry about
"Bug-ID:" and other trailers that won't have e-mail address at all.

But if you are _only_ picking up "-by:" lines, then calling this
option "trailers" is way too wide and confusing.  I do not think
there is any specific name for "-by:" lines, though.  Perhaps you
would need to invent some name that has "-by" as a substring.

"any-by"?  or just "by"?  I dunno.

>  if ($suppress_cc{'all'}) {
> - foreach my $entry (qw (cccmd cc author self sob body bodycc)) {
> + foreach my $entry (qw (cccmd cc author self sob body bodycc trailers)) {
>   $suppress_cc{$entry} = 1;
>   }

OK.

> @@ -448,7 +448,7 @@ $suppress_cc{'self'} = $suppress_from if defined 
> $suppress_from;
>  $suppress_cc{'sob'} = !$signed_off_by_cc if defined $signed_off_by_cc;
>  
>  if ($suppress_cc{'body'}) {
> - foreach my $entry (qw (sob bodycc)) {
> + foreach my $entry (qw (sob bodycc trailers)) {
>   $suppress_cc{$entry} = 1;
>   }
>   delete $suppress_cc{'body'};

OK.

> @@ -1545,7 +1545,7 @@ foreach my $t (@files) {
>   # Now parse the message body
>   while(<$fh>) {
>   $message .=  $_;
> - if (/^(Signed-off-by|Cc): (.*)$/i) {
> + if (/^(Signed-off-by|Cc|[^\s]+[_-]by): (.*)$/i) {

Micronits:

 (1) do you really want to grab a run of any non-blanks?  Don't
 you want to exclude at least a colon?
 (2) allowing an underscore looks a bit unusual.  

> @@ -1555,6 +1555,12 @@ foreach my $t (@files) {
>   } else {
>   next if $suppress_cc{'sob'} and $what =~ 
> /Signed-off-by/i;
>   next if $suppress_cc{'bodycc'} and $what =~ 
> /Cc/i;
> + next if $suppress_cc{'trailers'} and $what !~ 
> /Signed-off-by/i && $what =~ /by$/i;
> + }

It is a bit unfortunate that S-o-b is a subset of any-by that forces
you to do this.

> + if ($c !~ /.+@.+/) {
> + printf("(body) Ignoring %s from line '%s'\n",
> +$what, $_) unless $quiet;
> + next;
>   }

This check is new and applies to sob/cc, too.

I am aware of the fact that people sometimes write only a name with
no e-mail address when giving credit to a third-party and we want to
avoid upsetting the underlying MTA by feeding it a non-address.

Looking at existing helper subs like extract_valid_address and
sanitize_address that all addresses we pass to the MTA go through,
it appears to me that we try to support an addr-spec with only
local-part without @domain, so this new check might turn out to be
too strict from that point of view, but on the other hand I suspect
it won't be a huge issue because the addresses in the footers are
for public consumption and it may not make much sense to have a
local-only address there.  I dunno.

>   push @cc, $c;
>   printf("(body) Adding cc: %s from line '%s'\n",


Re: git am and duplicate signatures

2016-08-30 Thread Junio C Hamano
Joe Perches <j...@perches.com> writes:

> (adding lkml)
>
> On Tue, 2016-08-30 at 09:54 -0700, Junio C Hamano wrote:
>> Joe Perches <j...@perches.com> writes:
>> > git-am -s will avoid duplicating the last signature
>> > in a patch.
>> > 
>> > But given a developer creates a patch, send it around for
>> > acks/other signoffs, collects signatures and then does
>> > a git am -s on a different branch, this sort of sign-off
>> > chain is possible:
>> > 
>> >Signed-off-by: Original Developer <o...@domain.com>
>> >Acked-by: Random Developer <r...@domain.com>
>> >Signed-off-by: Original Developer <o...@domain.com>
>> Both correct and allowing the earlier one duplicated as long as
>> there is somebody/something else in between is deliberate.
>
> linux-kernel has a script (scripts/checkpatch.pl) that
> looks for duplicate signatures (-by: [name] )
>
> Should the last Signed-off-by: in the commit log be
> excluded from this check?

That is left for the kernel folks to decide, but excluding only "the
last" does not make much sense to me.  If you look for only "two
consecutive same signatures" and barf, that would be in line with
what we have been shooting for to support the above "original then
random then back to original" example you gave us above.




Re: git am and duplicate signatures

2016-08-30 Thread Junio C Hamano
Joe Perches  writes:

> (adding lkml)
>
> On Tue, 2016-08-30 at 09:54 -0700, Junio C Hamano wrote:
>> Joe Perches  writes:
>> > git-am -s will avoid duplicating the last signature
>> > in a patch.
>> > 
>> > But given a developer creates a patch, send it around for
>> > acks/other signoffs, collects signatures and then does
>> > a git am -s on a different branch, this sort of sign-off
>> > chain is possible:
>> > 
>> >Signed-off-by: Original Developer 
>> >Acked-by: Random Developer 
>> >Signed-off-by: Original Developer 
>> Both correct and allowing the earlier one duplicated as long as
>> there is somebody/something else in between is deliberate.
>
> linux-kernel has a script (scripts/checkpatch.pl) that
> looks for duplicate signatures (-by: [name] )
>
> Should the last Signed-off-by: in the commit log be
> excluded from this check?

That is left for the kernel folks to decide, but excluding only "the
last" does not make much sense to me.  If you look for only "two
consecutive same signatures" and barf, that would be in line with
what we have been shooting for to support the above "original then
random then back to original" example you gave us above.




[ANNOUNCE] Git v2.10.0-rc2

2016-08-26 Thread Junio C Hamano
A release candidate Git v2.10.0-rc2 is now available for testing
at the usual places.  It is comprised of 623 non-merge commits
since v2.9.0, contributed by 71 people, 22 of which are new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.10.0-rc2' tag and the 'master' 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

New contributors whose contributions weren't in v2.9.0 are as follows.
Welcome to the Git development community!

  Alexander Hirsch, Andreas Brauchli, Andrew Oakley, Antoine Queru,
  Ben Wijen, Christopher Layne, Dave Nicolson, David Glasser, Ed
  Maste, Heiko Becker, Ingo Brückl, Jonathan Tan, Jordan DE GEA,
  Josef Kufner, Keith McGuigan, Kevin Willford, LE Manh Cuong,
  Michael Stahl, Parker Moore, Peter Colberg, Tom Russello,
  and William Duclot.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Alex Henrie, Alfred Perlstein, Armin Kunaschik, brian m. carlson,
  Charles Bailey, Chris Packham, Christian Couder, David A. Greene,
  David Aguilar, David Kastrup, David Turner, Edward Thomson,
  Elia Pinto, Eric Sunshine, Eric Wong, Heiko Voigt, Jacob Keller,
  Jean-Noel Avila, Jeff King, Joey Hess, Johannes Schindelin,
  Johannes Sixt, John Keeping, Jonathan Nieder, Josh Triplett,
  Junio C Hamano, Lars Schneider, Lars Vogel, Linus Torvalds,
  Lukas Fleischer, Matthieu Moy, Mehul Jain, Michael Haggerty,
  Michael J Gruber, Mike Hommey, Nguyễn Thái Ngọc Duy,
  Nicolas Pitre, Orgad Shaneh, Patrick Steinhardt, Pranit Bauva,
  Ramsay Jones, René Scharfe, Ronald Wampler, Stefan Beller,
  SZEDER Gábor, Thomas Braun, Torsten Bögershausen, Vasco
  Almeida, and Ville Skyttä.



Git 2.10 Release Notes (draft)
==

Backward compatibility notes


Updates since v2.9
--

UI, Workflows & Features

 * "git pull --rebase --verify-signature" learned to warn the user
   that "--verify-signature" is a no-op when rebasing.

 * An upstream project can make a recommendation to shallowly clone
   some submodules in the .gitmodules file it ships.

 * "git worktree add" learned that '-' can be used as a short-hand for
   "@{-1}", the previous branch.

 * Update the funcname definition to support css files.

 * The completion script (in contrib/) learned to complete "git
   status" options.

 * Messages that are generated by auto gc during "git push" on the
   receiving end are now passed back to the sending end in such a way
   that they are shown with "remote: " prefix to avoid confusing the
   users.

 * "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.

 * "upload-pack" allows a custom "git pack-objects" replacement when
   responding to "fetch/clone" via the uploadpack.packObjectsHook.
   (merge b738396 jk/upload-pack-hook later to maint).

 * Teach format-patch and mailsplit (hence "am") how a line that
   happens to begin with "From " in the e-mail message is quoted with
   ">", so that these lines can be restored to their original shape.
   (merge d9925d1 ew/mboxrd-format-am later to maint).

 * "git repack" learned the "--keep-unreachable" option, which sends
   loose unreachable objects to a pack instead of leaving them loose.
   This helps heuristics based on the number of loose objects
   (e.g. "gc --auto").
   (merge e26a8c4 jk/repack-keep-unreachable later to maint).

 * "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.

 * A careless invocation of "git send-email directory/" after editing
   0001-change.patch with an editor often ends up sending both
   0001-change.patch and its backup file, 0001-change.patch~, causing
   embarrassment and a minor confusion.  Detect such an input and
   offer to skip the backup files when sending the patches out.
   (merge 531220b jc/send-email-skip-backup later to maint).

 * "git submodule update" that drives many "git clone" could
   eventually hit flaky servers/network conditions on one of the
   submodules; the command learned to retry the attemp

[ANNOUNCE] Git v2.10.0-rc2

2016-08-26 Thread Junio C Hamano
A release candidate Git v2.10.0-rc2 is now available for testing
at the usual places.  It is comprised of 623 non-merge commits
since v2.9.0, contributed by 71 people, 22 of which are new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.10.0-rc2' tag and the 'master' 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

New contributors whose contributions weren't in v2.9.0 are as follows.
Welcome to the Git development community!

  Alexander Hirsch, Andreas Brauchli, Andrew Oakley, Antoine Queru,
  Ben Wijen, Christopher Layne, Dave Nicolson, David Glasser, Ed
  Maste, Heiko Becker, Ingo Brückl, Jonathan Tan, Jordan DE GEA,
  Josef Kufner, Keith McGuigan, Kevin Willford, LE Manh Cuong,
  Michael Stahl, Parker Moore, Peter Colberg, Tom Russello,
  and William Duclot.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Alex Henrie, Alfred Perlstein, Armin Kunaschik, brian m. carlson,
  Charles Bailey, Chris Packham, Christian Couder, David A. Greene,
  David Aguilar, David Kastrup, David Turner, Edward Thomson,
  Elia Pinto, Eric Sunshine, Eric Wong, Heiko Voigt, Jacob Keller,
  Jean-Noel Avila, Jeff King, Joey Hess, Johannes Schindelin,
  Johannes Sixt, John Keeping, Jonathan Nieder, Josh Triplett,
  Junio C Hamano, Lars Schneider, Lars Vogel, Linus Torvalds,
  Lukas Fleischer, Matthieu Moy, Mehul Jain, Michael Haggerty,
  Michael J Gruber, Mike Hommey, Nguyễn Thái Ngọc Duy,
  Nicolas Pitre, Orgad Shaneh, Patrick Steinhardt, Pranit Bauva,
  Ramsay Jones, René Scharfe, Ronald Wampler, Stefan Beller,
  SZEDER Gábor, Thomas Braun, Torsten Bögershausen, Vasco
  Almeida, and Ville Skyttä.



Git 2.10 Release Notes (draft)
==

Backward compatibility notes


Updates since v2.9
--

UI, Workflows & Features

 * "git pull --rebase --verify-signature" learned to warn the user
   that "--verify-signature" is a no-op when rebasing.

 * An upstream project can make a recommendation to shallowly clone
   some submodules in the .gitmodules file it ships.

 * "git worktree add" learned that '-' can be used as a short-hand for
   "@{-1}", the previous branch.

 * Update the funcname definition to support css files.

 * The completion script (in contrib/) learned to complete "git
   status" options.

 * Messages that are generated by auto gc during "git push" on the
   receiving end are now passed back to the sending end in such a way
   that they are shown with "remote: " prefix to avoid confusing the
   users.

 * "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.

 * "upload-pack" allows a custom "git pack-objects" replacement when
   responding to "fetch/clone" via the uploadpack.packObjectsHook.
   (merge b738396 jk/upload-pack-hook later to maint).

 * Teach format-patch and mailsplit (hence "am") how a line that
   happens to begin with "From " in the e-mail message is quoted with
   ">", so that these lines can be restored to their original shape.
   (merge d9925d1 ew/mboxrd-format-am later to maint).

 * "git repack" learned the "--keep-unreachable" option, which sends
   loose unreachable objects to a pack instead of leaving them loose.
   This helps heuristics based on the number of loose objects
   (e.g. "gc --auto").
   (merge e26a8c4 jk/repack-keep-unreachable later to maint).

 * "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.

 * A careless invocation of "git send-email directory/" after editing
   0001-change.patch with an editor often ends up sending both
   0001-change.patch and its backup file, 0001-change.patch~, causing
   embarrassment and a minor confusion.  Detect such an input and
   offer to skip the backup files when sending the patches out.
   (merge 531220b jc/send-email-skip-backup later to maint).

 * "git submodule update" that drives many "git clone" could
   eventually hit flaky servers/network conditions on one of the
   submodules; the command learned to retry the attemp

[ANNOUNCE] Git v2.10.0-rc1

2016-08-19 Thread Junio C Hamano
A release candidate Git v2.10.0-rc1 is now available for testing
at the usual places.  It is comprised of 611 non-merge commits
since v2.9.0, contributed by 68 people, 20 of which are new faces.

Relative to v2.10-0-rc0 (the preview), there is a last-minute merge
of Linus's "Let's show longer fingerprint in the GPG output" patch
(which was a bit scary but I made sure push-certificate codepath
would not be negatively affected), among other small topics.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.10.0-rc1' tag and the 'master' 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

New contributors whose contributions weren't in v2.9.0 are as follows.
Welcome to the Git development community!

  Alexander Hirsch, Andreas Brauchli, Andrew Oakley, Antoine
  Queru, Christopher Layne, Dave Nicolson, Ed Maste, Heiko Becker,
  Ingo Brückl, Jonathan Tan, Jordan DE GEA, Josef Kufner, Keith
  McGuigan, Kevin Willford, LE Manh Cuong, Michael Stahl, Parker
  Moore, Peter Colberg, Tom Russello, and William Duclot.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Alex Henrie, Alfred Perlstein, Armin Kunaschik, brian m. carlson,
  Charles Bailey, Chris Packham, Christian Couder, David A. Greene,
  David Aguilar, David Kastrup, David Turner, Edward Thomson, Elia
  Pinto, Eric Sunshine, Eric Wong, Heiko Voigt, Jacob Keller,
  Jeff King, Joey Hess, Johannes Schindelin, Johannes Sixt,
  John Keeping, Jonathan Nieder, Josh Triplett, Junio C Hamano,
  Lars Schneider, Lars Vogel, Linus Torvalds, Lukas Fleischer,
  Matthieu Moy, Mehul Jain, Michael Haggerty, Michael J Gruber,
  Mike Hommey, Nguyễn Thái Ngọc Duy, Nicolas Pitre, Orgad
  Shaneh, Patrick Steinhardt, Pranit Bauva, Ramsay Jones, René
  Scharfe, Ronald Wampler, Stefan Beller, SZEDER Gábor, Thomas
  Braun, Torsten Bögershausen, Vasco Almeida, and Ville Skyttä.



Git 2.10 Release Notes (draft)
==

Backward compatibility notes


Updates since v2.9
--

UI, Workflows & Features

 * "git pull --rebase --verify-signature" learned to warn the user
   that "--verify-signature" is a no-op when rebasing.

 * An upstream project can make a recommendation to shallowly clone
   some submodules in the .gitmodules file it ships.

 * "git worktree add" learned that '-' can be used as a short-hand for
   "@{-1}", the previous branch.

 * Update the funcname definition to support css files.

 * The completion script (in contrib/) learned to complete "git
   status" options.

 * Messages that are generated by auto gc during "git push" on the
   receiving end are now passed back to the sending end in such a way
   that they are shown with "remote: " prefix to avoid confusing the
   users.

 * "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.

 * "upload-pack" allows a custom "git pack-objects" replacement when
   responding to "fetch/clone" via the uploadpack.packObjectsHook.
   (merge b738396 jk/upload-pack-hook later to maint).

 * Teach format-patch and mailsplit (hence "am") how a line that
   happens to begin with "From " in the e-mail message is quoted with
   ">", so that these lines can be restored to their original shape.
   (merge d9925d1 ew/mboxrd-format-am later to maint).

 * "git repack" learned the "--keep-unreachable" option, which sends
   loose unreachable objects to a pack instead of leaving them loose.
   This helps heuristics based on the number of loose objects
   (e.g. "gc --auto").
   (merge e26a8c4 jk/repack-keep-unreachable later to maint).

 * "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.

 * A careless invocation of "git send-email directory/" after editing
   0001-change.patch with an editor often ends up sending both
   0001-change.patch and its backup file, 0001-change.patch~, causing
   embarrassment and a minor confusion.  Detect such an input and
   offer to skip the backup files when sending the patches out.
   (merge 531220b jc/send-email-skip-backup l

[ANNOUNCE] Git v2.10.0-rc1

2016-08-19 Thread Junio C Hamano
A release candidate Git v2.10.0-rc1 is now available for testing
at the usual places.  It is comprised of 611 non-merge commits
since v2.9.0, contributed by 68 people, 20 of which are new faces.

Relative to v2.10-0-rc0 (the preview), there is a last-minute merge
of Linus's "Let's show longer fingerprint in the GPG output" patch
(which was a bit scary but I made sure push-certificate codepath
would not be negatively affected), among other small topics.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.10.0-rc1' tag and the 'master' 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

New contributors whose contributions weren't in v2.9.0 are as follows.
Welcome to the Git development community!

  Alexander Hirsch, Andreas Brauchli, Andrew Oakley, Antoine
  Queru, Christopher Layne, Dave Nicolson, Ed Maste, Heiko Becker,
  Ingo Brückl, Jonathan Tan, Jordan DE GEA, Josef Kufner, Keith
  McGuigan, Kevin Willford, LE Manh Cuong, Michael Stahl, Parker
  Moore, Peter Colberg, Tom Russello, and William Duclot.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Alex Henrie, Alfred Perlstein, Armin Kunaschik, brian m. carlson,
  Charles Bailey, Chris Packham, Christian Couder, David A. Greene,
  David Aguilar, David Kastrup, David Turner, Edward Thomson, Elia
  Pinto, Eric Sunshine, Eric Wong, Heiko Voigt, Jacob Keller,
  Jeff King, Joey Hess, Johannes Schindelin, Johannes Sixt,
  John Keeping, Jonathan Nieder, Josh Triplett, Junio C Hamano,
  Lars Schneider, Lars Vogel, Linus Torvalds, Lukas Fleischer,
  Matthieu Moy, Mehul Jain, Michael Haggerty, Michael J Gruber,
  Mike Hommey, Nguyễn Thái Ngọc Duy, Nicolas Pitre, Orgad
  Shaneh, Patrick Steinhardt, Pranit Bauva, Ramsay Jones, René
  Scharfe, Ronald Wampler, Stefan Beller, SZEDER Gábor, Thomas
  Braun, Torsten Bögershausen, Vasco Almeida, and Ville Skyttä.



Git 2.10 Release Notes (draft)
==

Backward compatibility notes


Updates since v2.9
--

UI, Workflows & Features

 * "git pull --rebase --verify-signature" learned to warn the user
   that "--verify-signature" is a no-op when rebasing.

 * An upstream project can make a recommendation to shallowly clone
   some submodules in the .gitmodules file it ships.

 * "git worktree add" learned that '-' can be used as a short-hand for
   "@{-1}", the previous branch.

 * Update the funcname definition to support css files.

 * The completion script (in contrib/) learned to complete "git
   status" options.

 * Messages that are generated by auto gc during "git push" on the
   receiving end are now passed back to the sending end in such a way
   that they are shown with "remote: " prefix to avoid confusing the
   users.

 * "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.

 * "upload-pack" allows a custom "git pack-objects" replacement when
   responding to "fetch/clone" via the uploadpack.packObjectsHook.
   (merge b738396 jk/upload-pack-hook later to maint).

 * Teach format-patch and mailsplit (hence "am") how a line that
   happens to begin with "From " in the e-mail message is quoted with
   ">", so that these lines can be restored to their original shape.
   (merge d9925d1 ew/mboxrd-format-am later to maint).

 * "git repack" learned the "--keep-unreachable" option, which sends
   loose unreachable objects to a pack instead of leaving them loose.
   This helps heuristics based on the number of loose objects
   (e.g. "gc --auto").
   (merge e26a8c4 jk/repack-keep-unreachable later to maint).

 * "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.

 * A careless invocation of "git send-email directory/" after editing
   0001-change.patch with an editor often ends up sending both
   0001-change.patch and its backup file, 0001-change.patch~, causing
   embarrassment and a minor confusion.  Detect such an input and
   offer to skip the backup files when sending the patches out.
   (merge 531220b jc/send-email-skip-backup l

[ANNOUNCE] Git v2.10.0-rc0

2016-08-14 Thread Junio C Hamano
An early preview release Git v2.10.0-rc0 is now available for
testing at the usual places.  It is comprised of 589 non-merge
commits since v2.9.0, contributed by 67 people, 20 of which are
new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.10.0-rc0' tag and the 'master' 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

New contributors whose contributions weren't in v2.9.0 are as follows.
Welcome to the Git development community!

  Alexander Hirsch, Andreas Brauchli, Andrew Oakley, Antoine
  Queru, Christopher Layne, Dave Nicolson, Ed Maste, Heiko Becker,
  Ingo Brückl, Jonathan Tan, Jordan DE GEA, Josef Kufner, Keith
  McGuigan, Kevin Willford, LE Manh Cuong, Michael Stahl, Parker
  Moore, Peter Colberg, Tom Russello, and William Duclot.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Alex Henrie, Alfred Perlstein, Armin Kunaschik, brian m. carlson,
  Charles Bailey, Chris Packham, Christian Couder, David A. Greene,
  David Aguilar, David Kastrup, David Turner, Edward Thomson, Elia
  Pinto, Eric Sunshine, Eric Wong, Heiko Voigt, Jacob Keller,
  Jeff King, Joey Hess, Johannes Schindelin, Johannes Sixt,
  John Keeping, Jonathan Nieder, Josh Triplett, Junio C Hamano,
  Lars Schneider, Lars Vogel, Lukas Fleischer, Matthieu Moy,
  Mehul Jain, Michael Haggerty, Michael J Gruber, Mike Hommey,
  Nguyễn Thái Ngọc Duy, Nicolas Pitre, Orgad Shaneh, Patrick
  Steinhardt, Pranit Bauva, Ramsay Jones, René Scharfe, Ronald
  Wampler, Stefan Beller, SZEDER Gábor, Thomas Braun, Torsten
  Bögershausen, Vasco Almeida, and Ville Skyttä.



Git 2.10 Release Notes (draft)
==

Backward compatibility notes


Updates since v2.9
--

UI, Workflows & Features

 * "git pull --rebase --verify-signature" learned to warn the user
   that "--verify-signature" is a no-op when rebasing.

 * An upstream project can make a recommendation to shallowly clone
   some submodules in the .gitmodules file it ships.

 * "git worktree add" learned that '-' can be used as a short-hand for
   "@{-1}", the previous branch.

 * Update the funcname definition to support css files.

 * The completion script (in contrib/) learned to complete "git
   status" options.

 * Messages that are generated by auto gc during "git push" on the
   receiving end are now passed back to the sending end in such a way
   that they are shown with "remote: " prefix to avoid confusing the
   users.

 * "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.

 * "upload-pack" allows a custom "git pack-objects" replacement when
   responding to "fetch/clone" via the uploadpack.packObjectsHook.
   (merge b738396 jk/upload-pack-hook later to maint).

 * Teach format-patch and mailsplit (hence "am") how a line that
   happens to begin with "From " in the e-mail message is quoted with
   ">", so that these lines can be restored to their original shape.
   (merge d9925d1 ew/mboxrd-format-am later to maint).

 * "git repack" learned the "--keep-unreachable" option, which sends
   loose unreachable objects to a pack instead of leaving them loose.
   This helps heuristics based on the number of loose objects
   (e.g. "gc --auto").
   (merge e26a8c4 jk/repack-keep-unreachable later to maint).

 * "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.

 * A careless invocation of "git send-email directory/" after editing
   0001-change.patch with an editor often ends up sending both
   0001-change.patch and its backup file, 0001-change.patch~, causing
   embarrassment and a minor confusion.  Detect such an input and
   offer to skip the backup files when sending the patches out.
   (merge 531220b jc/send-email-skip-backup later to maint).

 * "git submodule update" that drives many "git clone" could
   eventually hit flaky servers/network conditions on one of the
   submodules; the command learned to retry the attempt.

 * The output coloring scheme learned two new attributes, italic an

[ANNOUNCE] Git v2.10.0-rc0

2016-08-14 Thread Junio C Hamano
An early preview release Git v2.10.0-rc0 is now available for
testing at the usual places.  It is comprised of 589 non-merge
commits since v2.9.0, contributed by 67 people, 20 of which are
new faces.

The tarballs are found at:

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

The following public repositories all have a copy of the
'v2.10.0-rc0' tag and the 'master' 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

New contributors whose contributions weren't in v2.9.0 are as follows.
Welcome to the Git development community!

  Alexander Hirsch, Andreas Brauchli, Andrew Oakley, Antoine
  Queru, Christopher Layne, Dave Nicolson, Ed Maste, Heiko Becker,
  Ingo Brückl, Jonathan Tan, Jordan DE GEA, Josef Kufner, Keith
  McGuigan, Kevin Willford, LE Manh Cuong, Michael Stahl, Parker
  Moore, Peter Colberg, Tom Russello, and William Duclot.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Alex Henrie, Alfred Perlstein, Armin Kunaschik, brian m. carlson,
  Charles Bailey, Chris Packham, Christian Couder, David A. Greene,
  David Aguilar, David Kastrup, David Turner, Edward Thomson, Elia
  Pinto, Eric Sunshine, Eric Wong, Heiko Voigt, Jacob Keller,
  Jeff King, Joey Hess, Johannes Schindelin, Johannes Sixt,
  John Keeping, Jonathan Nieder, Josh Triplett, Junio C Hamano,
  Lars Schneider, Lars Vogel, Lukas Fleischer, Matthieu Moy,
  Mehul Jain, Michael Haggerty, Michael J Gruber, Mike Hommey,
  Nguyễn Thái Ngọc Duy, Nicolas Pitre, Orgad Shaneh, Patrick
  Steinhardt, Pranit Bauva, Ramsay Jones, René Scharfe, Ronald
  Wampler, Stefan Beller, SZEDER Gábor, Thomas Braun, Torsten
  Bögershausen, Vasco Almeida, and Ville Skyttä.



Git 2.10 Release Notes (draft)
==

Backward compatibility notes


Updates since v2.9
--

UI, Workflows & Features

 * "git pull --rebase --verify-signature" learned to warn the user
   that "--verify-signature" is a no-op when rebasing.

 * An upstream project can make a recommendation to shallowly clone
   some submodules in the .gitmodules file it ships.

 * "git worktree add" learned that '-' can be used as a short-hand for
   "@{-1}", the previous branch.

 * Update the funcname definition to support css files.

 * The completion script (in contrib/) learned to complete "git
   status" options.

 * Messages that are generated by auto gc during "git push" on the
   receiving end are now passed back to the sending end in such a way
   that they are shown with "remote: " prefix to avoid confusing the
   users.

 * "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.

 * "upload-pack" allows a custom "git pack-objects" replacement when
   responding to "fetch/clone" via the uploadpack.packObjectsHook.
   (merge b738396 jk/upload-pack-hook later to maint).

 * Teach format-patch and mailsplit (hence "am") how a line that
   happens to begin with "From " in the e-mail message is quoted with
   ">", so that these lines can be restored to their original shape.
   (merge d9925d1 ew/mboxrd-format-am later to maint).

 * "git repack" learned the "--keep-unreachable" option, which sends
   loose unreachable objects to a pack instead of leaving them loose.
   This helps heuristics based on the number of loose objects
   (e.g. "gc --auto").
   (merge e26a8c4 jk/repack-keep-unreachable later to maint).

 * "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.

 * A careless invocation of "git send-email directory/" after editing
   0001-change.patch with an editor often ends up sending both
   0001-change.patch and its backup file, 0001-change.patch~, causing
   embarrassment and a minor confusion.  Detect such an input and
   offer to skip the backup files when sending the patches out.
   (merge 531220b jc/send-email-skip-backup later to maint).

 * "git submodule update" that drives many "git clone" could
   eventually hit flaky servers/network conditions on one of the
   submodules; the command learned to retry the attempt.

 * The output coloring scheme learned two new attributes, italic an

[ANNOUNCE] Git v2.9.3

2016-08-12 Thread Junio C Hamano
 blobs
  submodule-config: combine early return code into one goto
  submodule-config: fix test binary crashing when no arguments given

Jeff King (14):
  send-pack: use buffered I/O to talk to pack-objects
  tests: factor portable signal check out of t0005
  t0005: use test_match_signal as appropriate
  test_must_fail: use test_match_signal
  t/lib-git-daemon: use test_match_signal
  parse_options: allocate a new array when concatenating
  Makefile: drop extra dependencies for test helpers
  Makefile: use VCSSVN_LIB to refer to svn library
  push: anonymize URL in status output
  t5541: fix url scrubbing test when GPG is not set
  diff: do not reuse worktree files that need "clean" conversion
  t4205: drop top-level &&-chaining
  t4205: indent here documents
  am: reset cached ident date for each patch

Joey Hess (1):
  clarify %f documentation

Johannes Schindelin (13):
  pretty: make the skip_blank_lines() function public
  commit.c: make find_commit_subject() more robust
  color.h: remove obsolete comment about limitations on Windows
  t3404: fix a grammo (commands are ran -> commands are run)
  commit -C: skip blank lines at the beginning of the message
  sequencer: use skip_blank_lines() to find the commit subject
  reset --hard: skip blank lines when reporting the commit subject
  commit -S: avoid invalid pointer with empty message
  am: counteract gender bias
  diff: demonstrate a bug with --patience and --ignore-space-at-eol
  diff: fix a double off-by-one with --ignore-space-at-eol
  t/test-lib.sh: fix running tests with --valgrind
  nedmalloc: fix misleading indentation

Johannes Sixt (2):
  Windows: add missing definition of ENOTSOCK
  t4130: work around Windows limitation

John Keeping (1):
  difftool: fix argument handling in subdirs

Junio C Hamano (7):
  diff: document diff-filter exclusion
  grep: further simplify setting the pattern type
  Some fixes for 2.9.3
  hashmap: clarify that hashmap_entry can safely be discarded
  Hopefully final batch for 2.9.3
  Yet another batch for 2.9.3
  Git 2.9.3

Lars Schneider (1):
  travis-ci: enable web server tests t55xx on Linux

Lukas Fleischer (3):
  sideband.c: make send_sideband() return void
  upload-pack.c: make send_client_data() return void
  sideband.c: refactor recv_sideband()

Matthieu Moy (8):
  Documentation/git-mv.txt: fix whitespace indentation
  doc: typeset short command-line options as literal
  doc: typeset long command-line options as literal
  doc: typeset '--' as literal
  doc: typeset long options with argument as literal
  CodingGuidelines: formatting HEAD in documentation
  doc: typeset HEAD and variants as literal
  status: suggest 'git merge --abort' when appropriate

Mike Hommey (2):
  blame: allow to blame paths freshly added to the index
  t/t8003-blame-corner-cases.sh: Use here documents

Nguyễn Thái Ngọc Duy (26):
  new-command.txt: correct the command description file
  grep: break down an "if" stmt in preparation for next changes
  test-regex: isolate the bug test code
  test-regex: expose full regcomp() to the command line
  grep/icase: avoid kwsset on literal non-ascii strings
  grep/icase: avoid kwsset when -F is specified
  grep: rewrite an if/else condition to avoid duplicate expression
  grep/pcre: prepare locale-dependent tables for icase matching
  gettext: add is_utf8_locale()
  grep/pcre: support utf-8
  diffcore-pickaxe: Add regcomp_or_die()
  diffcore-pickaxe: support case insensitive match on non-ascii
  grep.c: reuse "icase" variable
  pack-objects: pass length to check_pack_crc() without truncation
  sha1_file.c: use type off_t* for object_info->disk_sizep
  index-pack: correct "len" type in unpack_data()
  index-pack: report correct bad object offsets even if they are large
  index-pack: correct "offset" type in unpack_entry_data()
  pack-objects: do not truncate result in-pack object size on 32-bit systems
  fsck: use streaming interface for large blobs in pack
  test-lib.sh: introduce and use $EMPTY_TREE
  test-lib.sh: introduce and use $EMPTY_BLOB
  cache-tree.c: fix i-t-a entry skipping directory updates sometimes
  cache-tree: do not generate empty trees as a result of all i-t-a 
subentries
  config.mak.uname: correct perl path on FreeBSD
  t7063: work around FreeBSD's lazy mtime update feature

Nicolas Pitre (1):
  sideband.c: small optimization of strbuf usage

Orgad Shaneh (1):
  commit: describe that --no-verify skips the commit-msg hook in the help 
text

Parker Moore (2):
  contrib/persistent-https: update ldflags syntax for Go 1.7+
  contrib/persistent-https: use Git version for build label

Patr

[ANNOUNCE] Git v2.9.3

2016-08-12 Thread Junio C Hamano
 blobs
  submodule-config: combine early return code into one goto
  submodule-config: fix test binary crashing when no arguments given

Jeff King (14):
  send-pack: use buffered I/O to talk to pack-objects
  tests: factor portable signal check out of t0005
  t0005: use test_match_signal as appropriate
  test_must_fail: use test_match_signal
  t/lib-git-daemon: use test_match_signal
  parse_options: allocate a new array when concatenating
  Makefile: drop extra dependencies for test helpers
  Makefile: use VCSSVN_LIB to refer to svn library
  push: anonymize URL in status output
  t5541: fix url scrubbing test when GPG is not set
  diff: do not reuse worktree files that need "clean" conversion
  t4205: drop top-level &&-chaining
  t4205: indent here documents
  am: reset cached ident date for each patch

Joey Hess (1):
  clarify %f documentation

Johannes Schindelin (13):
  pretty: make the skip_blank_lines() function public
  commit.c: make find_commit_subject() more robust
  color.h: remove obsolete comment about limitations on Windows
  t3404: fix a grammo (commands are ran -> commands are run)
  commit -C: skip blank lines at the beginning of the message
  sequencer: use skip_blank_lines() to find the commit subject
  reset --hard: skip blank lines when reporting the commit subject
  commit -S: avoid invalid pointer with empty message
  am: counteract gender bias
  diff: demonstrate a bug with --patience and --ignore-space-at-eol
  diff: fix a double off-by-one with --ignore-space-at-eol
  t/test-lib.sh: fix running tests with --valgrind
  nedmalloc: fix misleading indentation

Johannes Sixt (2):
  Windows: add missing definition of ENOTSOCK
  t4130: work around Windows limitation

John Keeping (1):
  difftool: fix argument handling in subdirs

Junio C Hamano (7):
  diff: document diff-filter exclusion
  grep: further simplify setting the pattern type
  Some fixes for 2.9.3
  hashmap: clarify that hashmap_entry can safely be discarded
  Hopefully final batch for 2.9.3
  Yet another batch for 2.9.3
  Git 2.9.3

Lars Schneider (1):
  travis-ci: enable web server tests t55xx on Linux

Lukas Fleischer (3):
  sideband.c: make send_sideband() return void
  upload-pack.c: make send_client_data() return void
  sideband.c: refactor recv_sideband()

Matthieu Moy (8):
  Documentation/git-mv.txt: fix whitespace indentation
  doc: typeset short command-line options as literal
  doc: typeset long command-line options as literal
  doc: typeset '--' as literal
  doc: typeset long options with argument as literal
  CodingGuidelines: formatting HEAD in documentation
  doc: typeset HEAD and variants as literal
  status: suggest 'git merge --abort' when appropriate

Mike Hommey (2):
  blame: allow to blame paths freshly added to the index
  t/t8003-blame-corner-cases.sh: Use here documents

Nguyễn Thái Ngọc Duy (26):
  new-command.txt: correct the command description file
  grep: break down an "if" stmt in preparation for next changes
  test-regex: isolate the bug test code
  test-regex: expose full regcomp() to the command line
  grep/icase: avoid kwsset on literal non-ascii strings
  grep/icase: avoid kwsset when -F is specified
  grep: rewrite an if/else condition to avoid duplicate expression
  grep/pcre: prepare locale-dependent tables for icase matching
  gettext: add is_utf8_locale()
  grep/pcre: support utf-8
  diffcore-pickaxe: Add regcomp_or_die()
  diffcore-pickaxe: support case insensitive match on non-ascii
  grep.c: reuse "icase" variable
  pack-objects: pass length to check_pack_crc() without truncation
  sha1_file.c: use type off_t* for object_info->disk_sizep
  index-pack: correct "len" type in unpack_data()
  index-pack: report correct bad object offsets even if they are large
  index-pack: correct "offset" type in unpack_entry_data()
  pack-objects: do not truncate result in-pack object size on 32-bit systems
  fsck: use streaming interface for large blobs in pack
  test-lib.sh: introduce and use $EMPTY_TREE
  test-lib.sh: introduce and use $EMPTY_BLOB
  cache-tree.c: fix i-t-a entry skipping directory updates sometimes
  cache-tree: do not generate empty trees as a result of all i-t-a 
subentries
  config.mak.uname: correct perl path on FreeBSD
  t7063: work around FreeBSD's lazy mtime update feature

Nicolas Pitre (1):
  sideband.c: small optimization of strbuf usage

Orgad Shaneh (1):
  commit: describe that --no-verify skips the commit-msg hook in the help 
text

Parker Moore (2):
  contrib/persistent-https: update ldflags syntax for Go 1.7+
  contrib/persistent-https: use Git version for build label

Patr

Re: get_maintainer.pl and .mailmap entries with more than 2 addresses

2016-08-02 Thread Junio C Hamano
Joe Perches  writes:

> Hello Florian.
>
> There is at least an oddity with get_maintainer handling of a
> .mailmap entry form.
>
> For instance:
>
> Mauro's .mailmap entry is:
> Mauro Carvalho Chehab   
>    
>  
>
> Is this a valid form?

I do not think so, according to "git shortlog --help" (the canonical
source of the document is Documentation/mailmap.txt, but shortlog
doc includes it).  Here is the relevant bits.

In the simple form, each line in the file consists of the canonical
real name of an author, whitespace, and an email address used in the
commit (enclosed by '<' and '>') to map to the name. For example:
--
Proper Name 
--

The more complex forms are:
--
 
--
which allows mailmap to replace only the email part of a commit, and:
--
Proper Name  
--
which allows mailmap to replace both the name and the email of a
commit matching the specified commit email address, and:
--
Proper Name  Commit Name 
--
which allows mailmap to replace both the name and the email of a
commit matching both the specified commit name and email address.



Re: get_maintainer.pl and .mailmap entries with more than 2 addresses

2016-08-02 Thread Junio C Hamano
Joe Perches  writes:

> Hello Florian.
>
> There is at least an oddity with get_maintainer handling of a
> .mailmap entry form.
>
> For instance:
>
> Mauro's .mailmap entry is:
> Mauro Carvalho Chehab   
>
>  
>
> Is this a valid form?

I do not think so, according to "git shortlog --help" (the canonical
source of the document is Documentation/mailmap.txt, but shortlog
doc includes it).  Here is the relevant bits.

In the simple form, each line in the file consists of the canonical
real name of an author, whitespace, and an email address used in the
commit (enclosed by '<' and '>') to map to the name. For example:
--
Proper Name 
--

The more complex forms are:
--
 
--
which allows mailmap to replace only the email part of a commit, and:
--
Proper Name  
--
which allows mailmap to replace both the name and the email of a
commit matching the specified commit email address, and:
--
Proper Name  Commit Name 
--
which allows mailmap to replace both the name and the email of a
commit matching both the specified commit name and email address.



[ANNOUNCE] Git v2.9.2

2016-07-15 Thread Junio C Hamano
The latest maintenance release Git v2.9.2 is now available at
the usual places.  This is only a fix to the test suite; there is
no change in the actual code produced for your daily use of Git.

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.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 = 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.2 Release Notes


Fixes since v2.9.1
--

 * A fix merged to v2.9.1 had a few tests that are not meant to be
   run on platforms without 64-bit long, which caused unnecessary
   test failures on them because we didn't detect the platform and
   skip them.  These tests are now skipped on platforms that they
   are not applicable to.

No other change is included in this update.



Changes since v2.9.1 are as follows:

Jeff King (1):
  t0006: skip "far in the future" test when unsigned long is not long enough

Junio C Hamano (1):
  Git 2.9.2



[ANNOUNCE] Git v2.9.2

2016-07-15 Thread Junio C Hamano
The latest maintenance release Git v2.9.2 is now available at
the usual places.  This is only a fix to the test suite; there is
no change in the actual code produced for your daily use of Git.

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.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 = 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.2 Release Notes


Fixes since v2.9.1
--

 * A fix merged to v2.9.1 had a few tests that are not meant to be
   run on platforms without 64-bit long, which caused unnecessary
   test failures on them because we didn't detect the platform and
   skip them.  These tests are now skipped on platforms that they
   are not applicable to.

No other change is included in this update.



Changes since v2.9.1 are as follows:

Jeff King (1):
  t0006: skip "far in the future" test when unsigned long is not long enough

Junio C Hamano (1):
  Git 2.9.2



[ANNOUNCE] Git v2.9.1

2016-07-11 Thread Junio C Hamano
 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
   + 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' command

Andrew Oakley (1):
  git-p4: correct hasBranchPrefix verbose output

Armin Kunaschik (1):
  t7800: readlink may not be available

Charles Bailey (1):
  t7810: fix duplicated test title

Dave Nicolson (1):
  Documentation: GPG capitalization

David Turner (1):
  mailmap: use main email address for dturner

Ed Maste (1):
  rebase: update comment about FreeBSD /bin/sh

Edward Thomson (2):
  format_commit_message: honor `color=auto` for `%C(auto)`
  add: add --chmod=+x / --chmod=-x options

Eric Wong (1):
  daemon: enable SO_KEEPALIVE for all sockets

Heiko Becker (1):
  gnome-keyring: Don't hard-code pkg-config executable

Jeff 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_t

Johannes 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-is

Jonathan Nieder (1):
  doc: git-htmldocs.googlecode.com is no more

Josef 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.1

Keith McGuigan (1):
  builtin/fetch.c: don't free remote->name after fetch

LE Manh Cuong (1):
  sh-setup: enclose setting of ${VAR=default} in double-quotes

Lars Vogel (1):
  Use "working tree" instead of "working directory" for git status

Michael 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 format

Nguyễn Thái Ngọc Duy (1):
  pretty.c: support |() forms

Peter Colberg (2):
  refs.h: fix misspelt "occurred" in a comment
  config.c: fix misspelt "occurred" in an error message

Pranit Bauva (1):
  strbuf: describe the return value of strbuf_read_file

Ramsay Jones (1):
  regex: fix a SIZE_MAX macro redefinition warning

René 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 -W

SZEDER Gábor (1):
  reflog: continue walking the reflog past root commits

Stefan Beller (1):
  t5614: don't use subshells

Tom Russello (4):
  doc: clearer rule about formatting literals
  doc: change environment variables format
  doc: more consistency in environment variables format
  doc: change configuration variables format

Ville Skyttä (1):
  git-prompt.sh: Don't error on null ${ZSH,BASH}_VERSION, $short_sha



[ANNOUNCE] Git v2.9.1

2016-07-11 Thread Junio C Hamano
 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
   + 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' command

Andrew Oakley (1):
  git-p4: correct hasBranchPrefix verbose output

Armin Kunaschik (1):
  t7800: readlink may not be available

Charles Bailey (1):
  t7810: fix duplicated test title

Dave Nicolson (1):
  Documentation: GPG capitalization

David Turner (1):
  mailmap: use main email address for dturner

Ed Maste (1):
  rebase: update comment about FreeBSD /bin/sh

Edward Thomson (2):
  format_commit_message: honor `color=auto` for `%C(auto)`
  add: add --chmod=+x / --chmod=-x options

Eric Wong (1):
  daemon: enable SO_KEEPALIVE for all sockets

Heiko Becker (1):
  gnome-keyring: Don't hard-code pkg-config executable

Jeff 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_t

Johannes 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-is

Jonathan Nieder (1):
  doc: git-htmldocs.googlecode.com is no more

Josef 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.1

Keith McGuigan (1):
  builtin/fetch.c: don't free remote->name after fetch

LE Manh Cuong (1):
  sh-setup: enclose setting of ${VAR=default} in double-quotes

Lars Vogel (1):
  Use "working tree" instead of "working directory" for git status

Michael 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 format

Nguyễn Thái Ngọc Duy (1):
  pretty.c: support |() forms

Peter Colberg (2):
  refs.h: fix misspelt "occurred" in a comment
  config.c: fix misspelt "occurred" in an error message

Pranit Bauva (1):
  strbuf: describe the return value of strbuf_read_file

Ramsay Jones (1):
  regex: fix a SIZE_MAX macro redefinition warning

René 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 -W

SZEDER Gábor (1):
  reflog: continue walking the reflog past root commits

Stefan Beller (1):
  t5614: don't use subshells

Tom Russello (4):
  doc: clearer rule about formatting literals
  doc: change environment variables format
  doc: more consistency in environment variables format
  doc: change configuration variables format

Ville Skyttä (1):
  git-prompt.sh: Don't error on null ${ZSH,BASH}_VERSION, $short_sha



[ANNOUNCE] Git v2.9.0

2016-06-13 Thread Junio C Hamano
The latest feature release Git v2.9.0 is now available at the
usual places.  It is comprised of 497 non-merge commits since
v2.8.0, contributed by 75 people, 28 of which are new faces.

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.0'
tag and the 'master' 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

New contributors whose contributions weren't in v2.8.0 are as follows.
Welcome to the Git development community!

  Alexander Rinass, Antonin, Armin Kunaschik, Benjamin Dopplinger,
  Ben Woosley, Erwan Mathoniere, Gabriel Souza Franco, Jacob
  Nisnevich, Jan Durovec, Jean-Noël Avila, Kazuki Yamaguchi,
  Keller Fuchs, Laurent Arnoud, Li Peng, Marios Titas, Mehul Jain,
  Michael Procter, Nikola Forró, Pablo Santiago Blum de Aguiar,
  Pranit Bauva, Ray Zhang, René Nyffenegger, Santiago Torres,
  Saurav Sachidanand, Shin Kojima, Sidhant Sharma [:tk], Stanislav
  Kolotinskiy, and Xiaolong Ye.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Alexander Kuleshov,
  Alexander Shopov, brian m. carlson, Brian Norris, Changwoo
  Ryu, Christian Couder, David Aguilar, David Turner, Dennis
  Kaarsemaker, Dimitriy Ryazantcev, Elia Pinto, Elijah Newren,
  Eric Sunshine, Eric Wong, Felipe Contreras, Jacob Keller,
  Jean-Noel Avila, Jeff King, Jiang Xin, Johannes Schindelin,
  Johannes Sixt, John Keeping, Junio C Hamano, Karsten Blees,
  Lars Schneider, Linus Torvalds, Luke Diamand, Matthieu Moy,
  Michael Haggerty, Michael J Gruber, Michael Rappazzo, Nguyễn
  Thái Ngọc Duy, Ori Avtalion, Peter Krefting, Ralf Thielow,
  Ramsay Jones, Ray Chen, René Scharfe, Stefan Beller, Stephen
  P. Smith, Sven Strickroth, SZEDER Gábor, Torsten Bögershausen,
  Trần Ngọc Quân, and Vasco Almeida.



Git 2.9 Release Notes
=

Backward compatibility notes


The end-user facing Porcelain level commands in the "git diff" and
"git log" family by default enable the rename detection; you can still
use "diff.renames" configuration variable to disable this.

Merging two branches that have no common ancestor with "git merge" is
by default forbidden now to prevent creating such an unusual merge by
mistake.

The output formats of "git log" that indents the commit log message by
4 spaces now expands HT in the log message by default.  You can use
the "--no-expand-tabs" option to disable this.

"git commit-tree" plumbing command required the user to always sign
its result when the user sets the commit.gpgsign configuration
variable, which was an ancient mistake, which this release corrects.
A script that drives commit-tree, if it relies on this mistake, now
needs to read commit.gpgsign and pass the -S option as necessary.


Updates since v2.8
--

UI, Workflows & Features

 * Comes with git-multimail 1.3.1 (in contrib/).

 * The end-user facing commands like "git diff" and "git log"
   now enable the rename detection by default.

 * The credential.helper configuration variable is cumulative and
   there is no good way to override it from the command line.  As
   a special case, giving an empty string as its value now serves
   as the signal to clear the values specified in various files.

 * A new "interactive.diffFilter" configuration can be used to
   customize the diff shown in "git add -i" sessions.

 * "git p4" now allows P4 author names to be mapped to Git author
   names.

 * "git rebase -x" can be used without passing "-i" option.

 * "git -c credential.= submodule" can now be used to
   propagate configuration variables related to credential helper
   down to the submodules.

 * "git tag" can create an annotated tag without explicitly given an
   "-a" (or "-s") option (i.e. when a tag message is given).  A new
   configuration variable, tag.forceSignAnnotated, can be used to tell
   the command to create signed tag in such a situation.

 * "git merge" used to allow merging two branches that have no common
   base by default, which led to a brand new history of an existing
   project created and then get pulled by an unsuspecting maintainer,
   which allowed an unnecessary parallel history merged into the
   existing project.  The command has been taught not to allow this by
   default, with an escape hatch "--allow-unrelated-histories" option
   to be used in a rare event that merges histories o

<    1   2   3   4   5   6   7   8   9   >