[ANNOUNCE] Git v2.30.0

2020-12-28 Thread Junio C Hamano
The latest feature release Git v2.30.0 is now available at the
usual places.  It comprises 495 non-merge commits since
v2.29.0, contributed by 83 people, 29 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.30.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 patches weren't in v2.29.0 are as follows.
Welcome to the Git development community!

  Alexey, Amanda Shafack, Arusekk, Baptiste Fontaine, Bradley
  M. Kuhn, Caleb Tillman, Charvi Mendiratta, Daniel Duvall,
  Daniel Gurney, Dennis Ameling, Javier Spagnoletti, Jinoh Kang,
  Joey Salazar, Konrad Borowski, m4sk1n, Marlon Rac Cambasis,
  Martin Schön, Michał Kępień, Nate Avers, Nipunn Koorapati,
  Rafael Silva, Robert Karszniewicz, Samuel Čavoj, Sean Barag,
  Sibo Dong, Simão Afonso, Sohom Datta, Thomas Koutcher, and
  Victor Engmark.

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

  Adam Spiers, Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex
  Vandiver, Arnout Engelen, brian m. carlson, Christian Couder,
  Chris. Webster, David Aguilar, Denton Liu, Derrick Stolee,
  Dimitriy Ryazantcev, Đoàn Trần Công Danh, Drew DeVault,
  Elijah Newren, Emily Shaffer, Emir Sarı, Eric Sunshine, Felipe
  Contreras, Han-Wen Nienhuys, Jean-Noël Avila, Jeff Hostetler,
  Jeff King, Jiang Xin, Johannes Berg, Johannes Schindelin,
  Jonathan Tan, Jordi Mas, Josh Steadmon, Junio C Hamano,
  Kyle Meyer, Martin Ågren, Matheus Tavares, Matthias Rüster,
  Nicolas Morey-Chaisemartin, Patrick Steinhardt, Peter Kaestle,
  Peter Krefting, Philippe Blain, Phillip Wood, Pranit Bauva,
  Pratyush Yadav, Ramsay Jones, Randall S. Becker, René Scharfe,
  Sergey Organov, Serg Tereshchenko, Srinidhi Kaushik, Stefan
  Haller, Štěpán Němec, SZEDER Gábor, Taylor Blau, Trần
  Ngọc Quân, and Yi-Jyun Pan.



Git 2.30 Release Notes
==

Updates since v2.29
---

UI, Workflows & Features

 * Userdiff for PHP update.

 * Userdiff for Rust update.

 * Userdiff for CSS update.

 * The command line completion script (in contrib/) learned that "git
   stash show" takes the options "git diff" takes.

 * "git worktree list" now shows if each worktree is locked.  This
   possibly may open us to show other kinds of states in the future.

 * "git maintenance", an extended big brother of "git gc", continues
   to evolve.

 * "git push --force-with-lease[=]" can easily be misused to lose
   commits unless the user takes good care of their own "git fetch".
   A new option "--force-if-includes" attempts to ensure that what is
   being force-pushed was created after examining the commit at the
   tip of the remote ref that is about to be force-replaced.

 * "git clone" learned clone.defaultremotename configuration variable
   to customize what nickname to use to call the remote the repository
   was cloned from.

 * "git checkout" learned to use checkout.guess configuration variable
   and enable/disable its "--[no-]guess" option accordingly.

 * "git resurrect" script (in contrib/) learned that the object names
   may be longer than 40-hex depending on the hash function in use.

 * "git diff A...B" learned "git diff --merge-base A B", which is a
   longer short-hand to say the same thing.

 * A sample 'push-to-checkout' hook, that performs the same as
   what the built-in default action does, has been added.

 * "git diff" family of commands learned the "-I" option to
   ignore hunks whose changed lines all match the given pattern.

 * The userdiff pattern learned to identify the function definition in
   POSIX shells and bash.

 * "git checkout-index" did not consistently signal an error with its
   exit status, but now it does.

 * A commit and tag object may have CR at the end of each and
   every line (you can create such an object with hash-object or
   using --cleanup=verbatim to decline the default clean-up
   action), but it would make it impossible to have a blank line
   to separate the title from the body of the message.  We are now
   more lenient and accept a line with lone CR on it as a blank line,
   too.

 * Exit codes from "git remote add" etc. were not usable by scripted
   callers, but now they are.

 * "git archive" now allows compression level higher than "-9"
   when generating tar.gz output.

 * Zsh autocompletion (in contrib/) update.

 * The maximum length of output filenames "git format-patch" creates
   has become configurable (used to be capped at 64).

 * "git rev-parse" learned the "--end-of-options" to help scripts to
   safely take a parameter that is supposed to be a revision, e.g.
   "git rev-parse --verify -q --end-of-options $rev".

 * The command line 

Re: [ANNOUNCE] Git v2.30.0-rc2

2020-12-23 Thread Christian Couder
Most of the suggestions below are found by GMail.

On Thu, Dec 24, 2020 at 12:08 AM Junio C Hamano  wrote:
>
> A release candidate Git v2.30.0-rc2 is now available for testing
> at the usual places.  It is comprised of 19 non-merge commits since

Maybe: s/is comprised of/comprises/

> v2.30.0-rc1, contributed by 5 people, none of which are new faces.

[..]

>  * Various subcommands of "git config" that takes value_regex

s/takes/take/

>learn the "--literal-value" option to take the value_regex option

s/learn/learned/

>as a literal string.

[...]

> * More preliminary tests have been added to document desired outcome

s/outcome/outcomes/

>   of various "directory rename" situations.

[...]

>  * The code to see if "git stash drop" can safely remove refs/stash
>has been made more carerful.

s/carerful/careful/

>(merge 4f44c5659b rs/empty-reflog-check-fix later to maint).

[...]

>  * Since jgit does not yet work with SHA-256 repositories, mark the
>tests that uses it not to run unless we are testing with ShA-1

s/uses/use/

>repositories.
>(merge ea699b4adc sg/t5310-jgit-wants-sha1 later to maint).

[...]

>  * "git apply" adjusted the permission bits of working-tree files and
>directories according core.sharedRepository setting by mistake and

s/according/according to/

>for a long time, which has been corrected.
>(merge eb3c027e17 mt/do-not-use-scld-in-working-tree later to maint).

[...]

>  * "git pack-redandant" when there is only one packfile used to crash,

s/pack-redandant/pack-redundant/

>which has been corrected.
>(merge 0696232390 jx/pack-redundant-on-single-pack later to maint).


Re: [ANNOUNCE] Git v2.30.0-rc2

2020-12-23 Thread Junio C Hamano
Thanks.


Re: [ANNOUNCE] Git v2.30.0-rc2

2020-12-23 Thread Todd Zullinger
Hi Junio,

Junio C Hamano wrote:
> Git 2.30 Release Notes (draft)
> ==
...
> Performance, Internal Implementation, Development Support etc.
...
>  * Adjust tests so that they won't scream when the default initial
>branch name is changed to 'main'.
...
>  * Test scripts are being prepared to transition of the default branch
>name to 'main'.

These redundant entries were added in 7f7ebe054a (Third
batch, 2020-11-02) and e4d83eee92 (Fourth batch,
2020-11-09), respectively.

Assuming they aren't intentional (as a hat-tip to the amount
of the effort involved in the fixes, perhaps? :) )... here's
a patch to drop the first one in favor of the second, with a
minor grammatical adjustment to make it read better.

Of course, if it's less effort to make the change yourself
than apply this trivial patch, don't hesitate to do so.

-- >8 --
Subject: [PATCH] RelNotes/2.30.0: drop redundant mention of branch name test
 fixes

While here, improve the grammar of the remaining entry.

Signed-off-by: Todd Zullinger 
---
 Documentation/RelNotes/2.30.0.txt | 5 +
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/Documentation/RelNotes/2.30.0.txt 
b/Documentation/RelNotes/2.30.0.txt
index a9c930ef93..bfe6520074 100644
--- a/Documentation/RelNotes/2.30.0.txt
+++ b/Documentation/RelNotes/2.30.0.txt
@@ -119,9 +119,6 @@ Performance, Internal Implementation, Development Support 
etc.
take a substring of test title, in addition to numbers, to name the
test pieces to run.
 
- * Adjust tests so that they won't scream when the default initial
-   branch name is changed to 'main'.
-
  * Rewriting "git bisect" in C continues.
 
  * More preliminary tests have been added to document desired outcome
@@ -136,7 +133,7 @@ Performance, Internal Implementation, Development Support 
etc.
  * The code to detect premature EOF in the sideband demultiplexer has
been cleaned up.
 
- * Test scripts are being prepared to transition of the default branch
+ * Test scripts are being prepared to transition the default branch
name to 'main'.
 
  * "git fetch --depth=" over the stateless RPC / smart HTTP

-- 
Todd


[ANNOUNCE] Git v2.30.0-rc2

2020-12-23 Thread Junio C Hamano
A release candidate Git v2.30.0-rc2 is now available for testing
at the usual places.  It is comprised of 19 non-merge commits since
v2.30.0-rc1, contributed by 5 people, none 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.30.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 = https://github.com/gitster/git



Git 2.30 Release Notes (draft)
==

Updates since v2.29
---

UI, Workflows & Features

 * Userdiff for PHP update.

 * Userdiff for Rust update.

 * Userdiff for CSS update.

 * The command line completion script (in contrib/) learned that "git
   stash show" takes the options "git diff" takes.

 * "git worktree list" now shows if each worktree is locked.  This
   possibly may open us to show other kinds of states in the future.

 * "git maintenance", an extended big brother of "git gc", continues
   to evolve.

 * "git push --force-with-lease[=]" can easily be misused to lose
   commits unless the user takes good care of their own "git fetch".
   A new option "--force-if-includes" attempts to ensure that what is
   being force-pushed was created after examining the commit at the
   tip of the remote ref that is about to be force-replaced.

 * "git clone" learned clone.defaultremotename configuration variable
   to customize what nickname to use to call the remote the repository
   was cloned from.

 * "git checkout" learned to use checkout.guess configuration variable
   and enable/disable its "--[no-]guess" option accordingly.

 * "git resurrect" script (in contrib/) learned that the object names
   may be longer than 40-hex depending on the hash function in use.

 * "git diff A...B" learned "git diff --merge-base A B", which is a
   longer short-hand to say the same thing.

 * A sample 'push-to-checkout' hook, that performs the same as
   what the built-in default action does, has been added.

 * "git diff" family of commands learned the "-I" option to
   ignore hunks whose changed lines all match the given pattern.

 * The userdiff pattern learned to identify the function definition in
   POSIX shells and bash.

 * "git checkout-index" did not consistently signal an error with its
   exit status, but now it does.

 * A commit and tag object may have CR at the end of each and
   every line (you can create such an object with hash-object or
   using --cleanup=verbatim to decline the default clean-up
   action), but it would make it impossible to have a blank line
   to separate the title from the body of the message.  We are now
   more lenient and accept a line with lone CR on it as a blank line,
   too.

 * Exit codes from "git remote add" etc. were not usable by scripted
   callers, but now they are.

 * "git archive" now allows compression level higher than "-9"
   when generating tar.gz output.

 * Zsh autocompletion (in contrib/) update.

 * The maximum length of output filenames "git format-patch" creates
   has become configurable (used to be capped at 64).

 * "git rev-parse" learned the "--end-of-options" to help scripts to
   safely take a parameter that is supposed to be a revision, e.g.
   "git rev-parse --verify -q --end-of-options $rev".

 * The command line completion script (in contrib/) learned to expand
   commands that are alias of alias.

 * "git update-ref --stdin" learns to take multiple transactions in a
   single session.

 * Various subcommands of "git config" that takes value_regex
   learn the "--literal-value" option to take the value_regex option
   as a literal string.

 * The transport layer was taught to optionally exchange the session
   ID assigned by the trace2 subsystem during fetch/push transactions.

 * "git imap-send" used to ignore configuration variables like
   core.askpass; this has been corrected.

 * "git $cmd $args", when $cmd is not a recognised subcommand, by
   default tries to see if $cmd is a typo of an existing subcommand
   and optionally executes the corrected command if there is only one
   possibility, depending on the setting of help.autocorrect; the
   users can now disable the whole thing, including the cycles spent
   to find a likely typo, by setting the configuration variable to
   'never'.

 * "@" sometimes worked (e.g. "git push origin @:there") as a part of
   a refspec element, but "git push origin @" did not work, which has
   been corrected.


Performance, Internal Implementation, Development Support etc.

 * Use "git archive" more to produce the release tarball.

 * GitHub Actions automated test improvement to skip tests on a tree
   identical to what has already been tested.

 * Test-coverage for running commit-graph task "git maintenance" has
   been extended.

 * Our test scripts can be told 

[ANNOUNCE] Git v2.30.0-rc1

2020-12-18 Thread Junio C Hamano
A release candidate Git v2.30.0-rc1 is now available for testing
at the usual places.  It is comprised of 455 non-merge commits
since v2.29.0, contributed by 72 people, 26 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.30.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.29.0 are as follows.
Welcome to the Git development community!

  Alexey, Amanda Shafack, Bradley M. Kuhn, Caleb Tillman, Charvi
  Mendiratta, Daniel Duvall, Daniel Gurney, Dennis Ameling, Javier
  Spagnoletti, Jinoh Kang, Joey Salazar, Konrad Borowski, Marlon
  Rac Cambasis, Martin Schön, Michał Kępień, Nate Avers,
  Nipunn Koorapati, Rafael Silva, Robert Karszniewicz, Samuel
  Čavoj, Sean Barag, Sibo Dong, Simão Afonso, Sohom Datta,
  Thomas Koutcher, and Victor Engmark.

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

  Adam Spiers, Ævar Arnfjörð Bjarmason, Alex Vandiver, Arnout
  Engelen, brian m. carlson, Christian Couder, Chris. Webster,
  David Aguilar, Denton Liu, Derrick Stolee, Dimitriy Ryazantcev,
  Đoàn Trần Công Danh, Drew DeVault, Elijah Newren,
  Emily Shaffer, Eric Sunshine, Felipe Contreras, Han-Wen
  Nienhuys, Jeff Hostetler, Jeff King, Jiang Xin, Johannes
  Berg, Johannes Schindelin, Jonathan Tan, Josh Steadmon,
  Junio C Hamano, Kyle Meyer, Martin Ågren, Matheus Tavares,
  Nicolas Morey-Chaisemartin, Patrick Steinhardt, Peter Kaestle,
  Philippe Blain, Phillip Wood, Pranit Bauva, Pratyush Yadav,
  Ramsay Jones, Randall S. Becker, René Scharfe, Sergey Organov,
  Serg Tereshchenko, Srinidhi Kaushik, Stefan Haller, Štěpán
  Němec, SZEDER Gábor, and Taylor Blau.



Git 2.30 Release Notes (draft)
==

Updates since v2.29
---

UI, Workflows & Features

 * Userdiff for PHP update.

 * Userdiff for Rust update.

 * Userdiff for CSS update.

 * The command line completion script (in contrib/) learned that "git
   stash show" takes the options "git diff" takes.

 * "git worktree list" now shows if each worktree is locked.  This
   possibly may open us to show other kinds of states in the future.

 * "git maintenance", an extended big brother of "git gc", continues
   to evolve.

 * "git push --force-with-lease[=]" can easily be misused to lose
   commits unless the user takes good care of their own "git fetch".
   A new option "--force-if-includes" attempts to ensure that what is
   being force-pushed was created after examining the commit at the
   tip of the remote ref that is about to be force-replaced.

 * "git clone" learned clone.defaultremotename configuration variable
   to customize what nickname to use to call the remote the repository
   was cloned from.

 * "git checkout" learned to use checkout.guess configuration variable
   and enable/disable its "--[no-]guess" option accordingly.

 * "git resurrect" script (in contrib/) learned that the object names
   may be longer than 40-hex depending on the hash function in use.

 * "git diff A...B" learned "git diff --merge-base A B", which is a
   longer short-hand to say the same thing.

 * A sample 'push-to-checkout' hook, that performs the same as
   what the built-in default action does, has been added.

 * "git diff" family of commands learned the "-I" option to
   ignore hunks whose changed lines all match the given pattern.

 * The userdiff pattern learned to identify the function definition in
   POSIX shells and bash.

 * "git checkout-index" did not consistently signal an error with its
   exit status, but now it does.

 * A commit and tag object may have CR at the end of each and
   every line (you can create such an object with hash-object or
   using --cleanup=verbatim to decline the default clean-up
   action), but it would make it impossible to have a blank line
   to separate the title from the body of the message.  We are now
   more lenient and accept a line with lone CR on it as a blank line,
   too.

 * Exit codes from "git remote add" etc. were not usable by scripted
   callers, but now they are.

 * "git archive" now allows compression level higher than "-9"
   when generating tar.gz output.

 * Zsh autocompletion (in contrib/) update.

 * The maximum length of output filenames "git format-patch" creates
   has become configurable (used to be capped at 64).

 * "git rev-parse" learned the "--end-of-options" to help scripts to
   safely take a parameter that is supposed to be a revision, e.g.
   "git rev-parse --verify -q --end-of-options $rev".

 * The command line completion script (in contrib/) learned to expand
   commands that are alias of alias.

 * "git update-ref --stdin" 

[ANNOUNCE] Git v2.30.0-rc0

2020-12-14 Thread Junio C Hamano
An early preview release Git v2.30.0-rc0 is now available for
testing at the usual places.  It is comprised of 413 non-merge
commits since v2.29.0, contributed by 60 people, 25 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.30.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.29.0 are as follows.
Welcome to the Git development community!

  Alexey, Amanda Shafack, Bradley M. Kuhn, Caleb Tillman, Charvi
  Mendiratta, Daniel Duvall, Daniel Gurney, Dennis Ameling, Javier
  Spagnoletti, Jinoh Kang, Joey Salazar, Konrad Borowski, Marlon
  Rac Cambasis, Michał Kępień, Nate Avers, Nipunn Koorapati,
  Rafael Silva, Robert Karszniewicz, Samuel Čavoj, Sean Barag,
  Sibo Dong, Simão Afonso, Sohom Datta, Thomas Koutcher, and
  Victor Engmark.

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

  Adam Spiers, Ævar Arnfjörð Bjarmason, Alex Vandiver, Arnout
  Engelen, brian m. carlson, Christian Couder, Chris. Webster,
  Denton Liu, Derrick Stolee, Drew DeVault, Elijah Newren,
  Emily Shaffer, Felipe Contreras, Han-Wen Nienhuys, Jeff King,
  Jiang Xin, Johannes Schindelin, Jonathan Tan, Josh Steadmon,
  Junio C Hamano, Kyle Meyer, Martin Ågren, Matheus Tavares,
  Nicolas Morey-Chaisemartin, Patrick Steinhardt, Peter Kaestle,
  Philippe Blain, Phillip Wood, Pranit Bauva, René Scharfe,
  Sergey Organov, Srinidhi Kaushik, Štěpán Němec, SZEDER
  Gábor, and Taylor Blau.



Git 2.30 Release Notes (draft)
==

Updates since v2.29
---

UI, Workflows & Features

 * Userdiff for PHP update.

 * Userdiff for Rust update.

 * Userdiff for CSS update.

 * The command line completion script (in contrib/) learned that "git
   stash show" takes the options "git diff" takes.

 * "git worktree list" now shows if each worktree is locked.  This
   possibly may open us to show other kinds of states in the future.

 * "git maintenance", an extended big brother of "git gc", continues
   to evolve.

 * "git push --force-with-lease[=]" can easily be misused to lose
   commits unless the user takes good care of their own "git fetch".
   A new option "--force-if-includes" attempts to ensure that what is
   being force-pushed was created after examining the commit at the
   tip of the remote ref that is about to be force-replaced.

 * "git clone" learned clone.defaultremotename configuration variable
   to customize what nickname to use to call the remote the repository
   was cloned from.

 * "git checkout" learned to use checkout.guess configuration variable
   and enable/disable its "--[no-]guess" option accordingly.

 * "git resurrect" script (in contrib/) learned that the object names
   may be longer than 40-hex depending on the hash function in use.

 * "git diff A...B" learned "git diff --merge-base A B", which is a
   longer short-hand to say the same thing.

 * A sample 'push-to-checkout' hook, that performs the same as
   what the built-in default action does, has been added.

 * "git diff" family of commands learned the "-I" option to
   ignore hunks whose changed lines all match the given pattern.

 * The userdiff pattern learned to identify the function definition in
   POSIX shells and bash.

 * "git checkout-index" did not consistently signal an error with its
   exit status, but now it does.

 * A commit and tag object may have CR at the end of each and
   every line (you can create such an object with hash-object or
   using --cleanup=verbatim to decline the default clean-up
   action), but it would make it impossible to have a blank line
   to separate the title from the body of the message.  We are now
   more lenient and accept a line with lone CR on it as a blank line,
   too.

 * Exit codes from "git remote add" etc. were not usable by scripted
   callers, but now they are.

 * "git archive" now allows compression level higher than "-9"
   when generating tar.gz output.

 * Zsh autocompletion (in contrib/) update.

 * The maximum length of output filenames "git format-patch" creates
   has become configurable (used to be capped at 64).

 * "git rev-parse" learned the "--end-of-options" to help scripts to
   safely take a parameter that is supposed to be a revision, e.g.
   "git rev-parse --verify -q --end-of-options $rev".

 * The command line completion script (in contrib/) learned to expand
   commands that are alias of alias.

 * "git update-ref --stdin" learns to take multiple transactions in a
   single session.

 * Various subcommands of "git config" that takes value_regex
   learn the "--literal-value" option to take the value_regex option
   as a