[ANNOUNCE] git-filter-repo v2.27.0 (Was: Re: [ANNOUNCE] Git v2.27.0)

2020-06-01 Thread Elijah Newren
Hi,

On Mon, Jun 1, 2020 at 9:37 AM Junio C Hamano  wrote:
>
> The latest feature release Git v2.27.0 is now available at the
> usual places.  It is comprised of 537 non-merge commits since
> v2.26.0, contributed by 71 people, 19 of which are new faces.

The latest release of git-filter-repo, v2.27.0, is also now available.
It is comprised of 26 non-merge commits since v2.26.0, including two
changes from new contributors.

If you have been holding off on trying filter-repo because you didn't
want to figure out how to convert your filter-branch or BFG commands,
there are now cheat sheets for converting any example from the manual of
either of those tools into equivalent filter-repo commands; see the last
two links here:

https://github.com/newren/git-filter-repo#how-do-i-use-it


The public repo of filter-repo is at

https://github.com/newren/git-filter-repo

The tarballs can be found at:

https://github.com/newren/git-filter-repo/releases

git-filter-repo can also be installed via a variety of package managers
across Windows, Mac OS, or Linux (and maybe others)[1].

New contributors whose contributions weren't in v2.26.0 are as follows.
Welcome to the git-filter-repo development community!

  * Kate F
  * Marius Renner

[1] https://github.com/newren/git-filter-repo/blob/master/INSTALL.md



git-filter-repo 2.27 Release Notes
==

(Note: Additional information is available for many release notes at
https://github.com/newren/git-filter-repo/issues/)

* Fixes:
  * fix ugly bug with mixing path filtering and renaming (#96)
  * suggest --no-local when cloning local repos (discourage use of --force)
  * fix possible deadlock in sanity_check_args (#86)
  * fix --prune-degenerate=never with path filtering (#92)
  * throw an error if user specifies any path starting with a slash (#73)
  * ensure we write final newline after final progress update (#84)
  * repack with --source or --target (#66)
  * make --version more robust against modified shebangs
  * make git version requirement error message more direct (#94)
  * allow removing .git directories from history

* Documentation:
  * fix typo in example (#69)
  * add more detailed explanation of safety checks and --force
  * add guides & cheat sheets for people converting from filter-branch or BFG
  * add examples for --subdirectory-filter and --to-subdirectory-filter
  * add missing documentation for --no-ff option (#92)
  * add more --paths-from-file examples with large filtering lists
  * clarify usage of --use-base-name
  * streamline install instructions a bit
  * and various other miscellaneous improvements and fixes

* contrib scripts:
  * fix special character handling in filter-lamely (#71)

* Miscellaneous:
  * add sanity checks around release script


Changes since v2.26.0 are as follows:

Elijah Newren (24):
  Makefile: a few sanity checks for releasing
  filter-repo: fix bitrotted documentation links
  filter-repo: suggest --no-local when cloning local repos
  filter-repo: ensure we write final newline after final progress update
  filter-repo: make --version more robust against modified shebangs
  filter-repo: clarify usage of --use-base-name
  git-filter-repo.txt: add examples for --[to-]subdirectory-filter
  filter-repo: throw an error if user specifies any path starting
with a slash
  git-filter-repo.txt: add documentation of --no-ff option
  filter-repo: allow removing .git directories from history
  Documentation: add guides for people converting from filter-branch or BFG
  git-filter-repo.txt: add more --paths-from-file examples with
large filtering lists
  INSTALL: streamline a bit and guide folks to package managers
  filter-repo: fix --no-local error when there is no remote
  Documentation: add more detailed explanation of safety checks and --force
  filter-repo: make git version requirement error message more direct
  filter-repo: fix possible deadlock in sanity_check_args
  filter-repo: fix ugly bug with mixing path filtering and renaming
  filter-repo: fix --prune-degenerate=never with path filtering
  git-filter-repo.txt: fix extraneous space
  filter-repo: repack with --source or --target
  filter-repo (README): link cheat sheets from usage section too
  filter-repo (README): separate sections for different tools
  git-filter-repo.txt: connect --no-local and fresh clones more thoroughly

Kate F (1):
  git-filter-repo.txt: Fix typo for example

Marius Renner (1):
  contrib: fix special character handling in filter-lamely


[ANNOUNCE] Git v2.27.0

2020-06-01 Thread Junio C Hamano
The latest feature release Git v2.27.0 is now available at the
usual places.  It is comprised of 537 non-merge commits since
v2.26.0, contributed by 71 people, 19 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.27.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.26.0 are as follows.
Welcome to the Git development community!

  Andras Kucsma, Ansgar Röber, Ash Holland, Christopher
  Warrington, Emma Brooks, Jan Engelhardt, Jessica Clarke,
  Jorge Lopez Silva, Julien Moutinho, Li Xuejiang,
  luciano.ro...@booking.com, Matthias Aßhauer, Michael
  F. Schönitzer, Nathan Sanders, Son Luong Ngoc, Terry Moschou,
  Toon Claes, Vasil Dimov, and Yang Zhao.

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

  마누엘, Abhishek Kumar, Alban Gruin, Alessandro Menti,
  Alexander Shopov, Alexandr Miloslavskiy, Alex Henrie, Andrei
  Rybak, Andrew Oakley, Ben Keene, brian m. carlson, Carlo
  Marcelo Arenas Belón, Christian Couder, Christopher Diaz
  Riveros, Damien Robert, Denton Liu, Derrick Stolee, Đoàn
  Trần Công Danh, Elijah Newren, Emily Shaffer, Emir Sarı,
  Eric Sunshine, Garima Singh, Greg Price, Hans Jerry Illikainen,
  Heba Waly, Ismael Luceno, Jean-Noël Avila, Jeff King, Jiang
  Xin, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Jordi
  Mas, Josh Steadmon, Junio C Hamano, Martin Ågren, Matheus
  Tavares, Matthias Rüster, Patrick Steinhardt, Peter Krefting,
  Philippe Blain, Phillip Wood, Pratyush Yadav, René Scharfe,
  Shourya Shukla, SZEDER Gábor, Taylor Blau, Thomas Gummerer,
  Todd Zullinger, Trần Ngọc Quân, and Yi-Jyun Pan.



Git 2.27 Release Notes
==

Updates since v2.26
---

Backward compatibility notes

 * When "git describe C" finds that commit C is pointed by a signed or
   annotated tag, which records T as its tagname in the object, the
   command gives T as its answer.  Even if the user renames or moves
   such a tag from its natural location in the "refs/tags/" hierarchy,
   "git describe C" would still give T as the answer, but in such a
   case "git show T^0" would no longer work as expected.  There may be
   nothing at "refs/tags/T" or even worse there may be a different tag
   instead.

   Starting from this version, "git describe" will always use the
   "long" version, as if the "--long" option were given, when giving
   its output based on such a misplaced tag to work around the problem.

 * "git pull" issues a warning message until the pull.rebase
   configuration variable is explicitly given, which some existing
   users may find annoying---those who prefer not to rebase need to
   set the variable to false to squelch the warning.

 * The transport protocol version 2, which was promoted to the default
   in Git 2.26 release, turned out to have some remaining rough edges,
   so it has been demoted from the default.


UI, Workflows & Features

 * A handful of options to configure SSL when talking to proxies have
   been added.

 * Smudge/clean conversion filters are now given more information
   (e.g. the object of the tree-ish in which the blob being converted
   appears, in addition to its path, which has already been given).

 * When "git describe C" finds an annotated tag with tagname A to be
   the best name to explain commit C, and the tag is stored in a
   "wrong" place in the refs/tags hierarchy, e.g. refs/tags/B, the
   command gave a warning message but used A (not B) to describe C.
   If C is exactly at the tag, the describe output would be "A", but
   "git rev-parse A^0" would not be equal as "git rev-parse C^0".  The
   behavior of the command has been changed to use the "long" form
   i.e. A-0-gOBJECTNAME, which is correctly interpreted by rev-parse.

 * "git pull" learned to warn when no pull.rebase configuration
   exists, and neither --[no-]rebase nor --ff-only is given (which
   would result a merge).

 * "git p4" learned four new hooks and also "--no-verify" option to
   bypass them (and the existing "p4-pre-submit" hook).

 * "git pull" shares many options with underlying "git fetch", but
   some of them were not documented and some of those that would make
   sense to pass down were not passed down.

 * "git rebase" learned the "--no-gpg-sign" option to countermand
   commit.gpgSign the user may have.

 * The output from "git format-patch" uses RFC 2047 encoding for
   non-ASCII letters on From: and Subject: headers, so that it can
   directly be fed to e-mail programs.  A new option has been added
   to produce these headers in raw.

 * "git log" learned "--show-pulls" that helps pathspec limited
   history views; a merge 

Re: [ANNOUNCE] Git v2.27.0-rc2

2020-05-28 Thread Kaartic Sivaraam



On 27 May 2020 22:17:01 GMT+05:30, Junio C Hamano  wrote:
>Kaartic Sivaraam  writes:
>
>> Hi Junio,
>>
>> On 27-05-2020 00:17, Junio C Hamano wrote:
>>> Shourya Shukla (4):
>>>submodule--helper.c: Rename 'cb_foreach' to 'foreach_cb'
>>>gitfaq: files in .gitignore are tracked
>>>gitfaq: fetching and pulling a repository
>>>submodule: port subcommand 'set-url' from shell to C
>>
>> This is the only place where the `set-url` conversion from Shell to C
>> is mentioned. I wonder if it's enough or if it needs a little bit
>more
>> attention may be in the "Performance, Internal Implementation,
>> Development Support etc." as it is a conversion of a submodule
>> sub-command?
>
>I'm not sure if it is worth the bits.  It may matter _only_ if/when
>new implementaiton of set-url hurts the end-users by being buggy ;-)

OK. That makes sense. The converted version has gone through reviews and 
presumably it does pass our CI test cases. I think I was just trying to 
overcautious to ensure we're not bitten by a worst case scenario wherein a bug 
slipped through the reviews and the tests. I believe it's pretty unlikely, 
though :-)

-- 
Sivaraam

Sent from my Android device with K-9 Mail. Please excuse my brevity and 
possible "typso".


Re: [ANNOUNCE] Git v2.27.0-rc2

2020-05-27 Thread Junio C Hamano
Pratyush Yadav  writes:

> On 26/05/20 11:47AM, Junio C Hamano wrote:
>> A release candidate Git v2.27.0-rc2 is now available for testing
>> at the usual places.  It is comprised of 509 non-merge commits
>> since v2.26.0, contributed by 59 people, 17 of which are new faces.
>> 
>> Changes since v2.26.0 are as follows:
>> 
>> Ansgar Röber (1):
>>   Subject: git-gui: fix syntax error because of missing semicolon
>
> Looks like I messed up somewhere and left the "Subject: " in there. Its 
> too late to do anything about it now I guess...

Yup, indeed you did ;-)  But we all make mistakes and learn from the
ones we or others make, so...


Re: [ANNOUNCE] Git v2.27.0-rc2

2020-05-27 Thread Junio C Hamano
Kaartic Sivaraam  writes:

> Hi Junio,
>
> On 27-05-2020 00:17, Junio C Hamano wrote:
>> Shourya Shukla (4):
>>submodule--helper.c: Rename 'cb_foreach' to 'foreach_cb'
>>gitfaq: files in .gitignore are tracked
>>gitfaq: fetching and pulling a repository
>>submodule: port subcommand 'set-url' from shell to C
>
> This is the only place where the `set-url` conversion from Shell to C
> is mentioned. I wonder if it's enough or if it needs a little bit more
> attention may be in the "Performance, Internal Implementation,
> Development Support etc." as it is a conversion of a submodule
> sub-command?

I'm not sure if it is worth the bits.  It may matter _only_ if/when
new implementaiton of set-url hurts the end-users by being buggy ;-)


Re: [ANNOUNCE] Git v2.27.0-rc2

2020-05-27 Thread Pratyush Yadav
On 26/05/20 11:47AM, Junio C Hamano wrote:
> A release candidate Git v2.27.0-rc2 is now available for testing
> at the usual places.  It is comprised of 509 non-merge commits
> since v2.26.0, contributed by 59 people, 17 of which are new faces.
> 
> Changes since v2.26.0 are as follows:
> 
> Ansgar Röber (1):
>   Subject: git-gui: fix syntax error because of missing semicolon

Looks like I messed up somewhere and left the "Subject: " in there. Its 
too late to do anything about it now I guess...

-- 
Regards,
Pratyush Yadav


Re: [ANNOUNCE] Git v2.27.0-rc2

2020-05-26 Thread Kaartic Sivaraam

Hi Junio,

On 27-05-2020 00:17, Junio C Hamano wrote:

Shourya Shukla (4):
   submodule--helper.c: Rename 'cb_foreach' to 'foreach_cb'
   gitfaq: files in .gitignore are tracked
   gitfaq: fetching and pulling a repository
   submodule: port subcommand 'set-url' from shell to C


This is the only place where the `set-url` conversion from Shell to C is 
mentioned. I wonder if it's enough or if it needs a little bit more 
attention may be in the "Performance, Internal Implementation, 
Development Support etc." as it is a conversion of a submodule sub-command?


I'm not sure about the importance that these kinds of conversion 
require, thus the question :)


--
Sivaraam


[ANNOUNCE] Git v2.27.0-rc2

2020-05-26 Thread Junio C Hamano
A release candidate Git v2.27.0-rc2 is now available for testing
at the usual places.  It is comprised of 509 non-merge commits
since v2.26.0, contributed by 59 people, 17 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.27.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

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

  Andras Kucsma, Ansgar Röber, Ash Holland, Christopher
  Warrington, Emma Brooks, Jessica Clarke, Jorge Lopez Silva,
  Julien Moutinho, Li Xuejiang, luciano.ro...@booking.com,
  Matthias Aßhauer, Michael F. Schönitzer, Nathan Sanders,
  Son Luong Ngoc, Terry Moschou, Vasil Dimov, and Yang Zhao.

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

  마누엘, Abhishek Kumar, Alban Gruin, Alexandr Miloslavskiy,
  Alex Henrie, Andrei Rybak, Andrew Oakley, Ben Keene, brian
  m. carlson, Carlo Marcelo Arenas Belón, Christian Couder,
  Damien Robert, Denton Liu, Derrick Stolee, Đoàn Trần Công
  Danh, Elijah Newren, Emily Shaffer, Eric Sunshine, Garima Singh,
  Greg Price, Hans Jerry Illikainen, Heba Waly, Ismael Luceno,
  Jeff King, Jiang Xin, Johannes Schindelin, Jonathan Nieder,
  Jonathan Tan, Josh Steadmon, Junio C Hamano, Martin Ågren,
  Matheus Tavares, Patrick Steinhardt, Philippe Blain, Phillip
  Wood, Pratyush Yadav, René Scharfe, Shourya Shukla, SZEDER
  Gábor, Taylor Blau, Thomas Gummerer, and Todd Zullinger.



Git 2.27 Release Notes (draft)
==

Updates since v2.26
---

Backward compatibility notes

 * When "git describe C" finds that commit C is pointed by a signed or
   annotated tag, which records T as its tagname in the object, the
   command gives T as its answer.  Even if the user renames or moves
   such a tag from its natural location in the "refs/tags/" hierarchy,
   "git describe C" would still give T as the answer, but in such a
   case "git show T^0" would no longer work as expected.  There may be
   nothing at "refs/tags/T" or even worse there may be a different tag
   instead.

   Starting from this version, "git describe" will always use the
   "long" version, as if the "--long" option were given, when giving
   its output based on such a misplaced tag to work around the problem.

 * "git pull" issues a warning message until the pull.rebase
   configuration variable is explicitly given, which some existing
   users may find annoying---those who prefer not to rebase need to
   set the variable to false to squelch the warning.

 * The transport protocol version 2, which was promoted to the default
   in Git 2.26 release, turned out to have some remaining rough edges,
   so it has been demoted from the default.


UI, Workflows & Features

 * A handful of options to configure SSL when talking to proxies have
   been added.

 * Smudge/clean conversion filters are now given more information
   (e.g. the object of the tree-ish in which the blob being converted
   appears, in addition to its path, which has already been given).

 * When "git describe C" finds an annotated tag with tagname A to be
   the best name to explain commit C, and the tag is stored in a
   "wrong" place in the refs/tags hierarchy, e.g. refs/tags/B, the
   command gave a warning message but used A (not B) to describe C.
   If C is exactly at the tag, the describe output would be "A", but
   "git rev-parse A^0" would not be equal as "git rev-parse C^0".  The
   behavior of the command has been changed to use the "long" form
   i.e. A-0-gOBJECTNAME, which is correctly interpreted by rev-parse.

 * "git pull" learned to warn when no pull.rebase configuration
   exists, and neither --[no-]rebase nor --ff-only is given (which
   would result a merge).

 * "git p4" learned four new hooks and also "--no-verify" option to
   bypass them (and the existing "p4-pre-submit" hook).

 * "git pull" shares many options with underlying "git fetch", but
   some of them were not documented and some of those that would make
   sense to pass down were not passed down.

 * "git rebase" learned the "--no-gpg-sign" option to countermand
   commit.gpgSign the user may have.

 * The output from "git format-patch" uses RFC 2047 encoding for
   non-ASCII letters on From: and Subject: headers, so that it can
   directly be fed to e-mail programs.  A new option has been added
   to produce these headers in raw.

 * "git log" learned "--show-pulls" that helps pathspec limited
   history views; a merge commit that takes the whole change from a
   side branch, which is normally omitted from the output, is shown
   in addition to the commits that introduce real 

Protocol v2 in v2.27 (Re: Re* [ANNOUNCE] Git v2.27.0-rc1)

2020-05-20 Thread Jonathan Nieder
(other lists -> bcc)
Junio C Hamano wrote:
> Jeff King  writes:

>> Is it worth mentioning here the reversion of v2 as the default protocol?
>>
>> It does end up (along with the actual code fix) in the "fixes from
>> v2.26" section:
>>
>>>  * Those fetching over protocol v2 from linux-next and other kernel
>>>repositories are reporting that v2 often fetches way too much than
>>>needed.
>>>(merge 11c7f2a30b jn/demote-proto2-from-default later to maint).
>>>
>>>  * The upload-pack protocol v2 gave up too early before finding a
>>>common ancestor, resulting in a wasteful fetch from a fork of a
>>>project.  This has been corrected to match the behaviour of v0
>>>protocol.
>>>(merge 2f0a093dd6 jt/v2-fetch-nego-fix later to maint).
>>
>> but that's somewhat buried. I dunno. It is not likely to introduce _new_
>> compatibility issues, but perhaps folks looking into compatibility stuff
>> may want to know about the revert.
>
> The promotion in Git 2.26 was buried in the "performance &
> implementation details" section and not in the backward
> compatibility section, so it feels a bit funny to highlight the
> reversion.  In any case, here is what I prepared (but not committed
> yet)

Speaking of which, should we enable protocol v2 by default for people
with feature.experimental enabled, like this?

(This isn't part of the rest of the feature.experimental handling
because those are tied to a repository object, whereas this code path
is used for operations like "git ls-remote" that do not require a
repository.)

Signed-off-by: Jonathan Nieder 

diff --git c/Documentation/config/protocol.txt 
i/Documentation/config/protocol.txt
index 0b40141613e..c46e9b3d00a 100644
--- c/Documentation/config/protocol.txt
+++ i/Documentation/config/protocol.txt
@@ -48,7 +48,8 @@ protocol.version::
If set, clients will attempt to communicate with a server
using the specified protocol version.  If the server does
not support it, communication falls back to version 0.
-   If unset, the default is `0`.
+   If unset, the default is `0`, unless `feature.experimental`
+   is enabled, in which case the default is `2`.
Supported versions:
 +
 --
diff --git c/protocol.c i/protocol.c
index d390391ebac..d1dd3424bba 100644
--- c/protocol.c
+++ i/protocol.c
@@ -17,6 +17,7 @@ static enum protocol_version parse_protocol_version(const 
char *value)
 enum protocol_version get_protocol_version_config(void)
 {
const char *value;
+   int val;
const char *git_test_k = "GIT_TEST_PROTOCOL_VERSION";
const char *git_test_v;
 
@@ -30,6 +31,9 @@ enum protocol_version get_protocol_version_config(void)
return version;
}
 
+   if (!git_config_get_bool("feature.experimental", ) && val)
+   return protocol_v2;
+
git_test_v = getenv(git_test_k);
if (git_test_v && *git_test_v) {
enum protocol_version env = parse_protocol_version(git_test_v);


Re: Re* [ANNOUNCE] Git v2.27.0-rc1

2020-05-20 Thread Jeff King
On Wed, May 20, 2020 at 01:31:30PM -0700, Junio C Hamano wrote:

> The promotion in Git 2.26 was buried in the "performance &
> implementation details" section and not in the backward
> compatibility section, so it feels a bit funny to highlight the
> reversion.  In any case, here is what I prepared (but not committed
> yet)

Hmm, yeah, that does make it feel funny. I'd argue that it probably
would have been worth promoting a bit more in v2.26, but it is obviously
too late now.

> -- >8 --
> Subject: [PATCH] RelNotes: advertise the demotion of protocol v2

What you have here looks fine, but I'd be OK if we just left it as-is,
too, given the v2.26 mention.

-Peff


Re: [ANNOUNCE] Git v2.27.0-rc1

2020-05-20 Thread Son Luong Ngoc
Hi folks,

> Shourya Shukla (4):
>   submodule--helper.c: Rename 'cb_foreach' to 'foreach_cb'
>   gitfaq: files in .gitignore are tracked
>   gitfaq: fetching and pulling a repository
>   submodule: port subcommand 'set-url' from shell to C

Could you please review the minor fix in
https://public-inbox.org/git/20200519045301.gy24...@pobox.com/
It helps the backward compatibility for packaging on CentOS6.

Thanks,
Son Luong.


Re* [ANNOUNCE] Git v2.27.0-rc1

2020-05-20 Thread Junio C Hamano
Jeff King  writes:

> On Wed, May 20, 2020 at 12:17:11PM -0700, Junio C Hamano wrote:
>
>> Git 2.27 Release Notes (draft)
>> ==
>> 
>> Updates since v2.26
>> ---
>> 
>> Backward compatibility notes
>
> Is it worth mentioning here the reversion of v2 as the default protocol?
>
> It does end up (along with the actual code fix) in the "fixes from
> v2.26" section:
>
>>  * Those fetching over protocol v2 from linux-next and other kernel
>>repositories are reporting that v2 often fetches way too much than
>>needed.
>>(merge 11c7f2a30b jn/demote-proto2-from-default later to maint).
>> 
>>  * The upload-pack protocol v2 gave up too early before finding a
>>common ancestor, resulting in a wasteful fetch from a fork of a
>>project.  This has been corrected to match the behaviour of v0
>>protocol.
>>(merge 2f0a093dd6 jt/v2-fetch-nego-fix later to maint).
>
> but that's somewhat buried. I dunno. It is not likely to introduce _new_
> compatibility issues, but perhaps folks looking into compatibility stuff
> may want to know about the revert.

The promotion in Git 2.26 was buried in the "performance &
implementation details" section and not in the backward
compatibility section, so it feels a bit funny to highlight the
reversion.  In any case, here is what I prepared (but not committed
yet)

-- >8 --
Subject: [PATCH] RelNotes: advertise the demotion of protocol v2

In the upcoming release, the transport protocol v2 is no longer the
default; note it in the backward compatibility section.

Suggested-by: Jeff King 
Signed-off-by: Junio C Hamano 
---
 Documentation/RelNotes/2.27.0.txt | 4 
 1 file changed, 4 insertions(+)

diff --git a/Documentation/RelNotes/2.27.0.txt 
b/Documentation/RelNotes/2.27.0.txt
index 5fb8c0cf67..95a8d338ad 100644
--- a/Documentation/RelNotes/2.27.0.txt
+++ b/Documentation/RelNotes/2.27.0.txt
@@ -24,6 +24,10 @@ Backward compatibility notes
users may find annoying---those who prefer not to rebase need to
set the variable to false to squelch the warning.
 
+ * The transport protocol version 2, which was promoted to the default
+   in Git 2.26 release, turned out to have some remaining rough edges,
+   so it has been demoted from the default.
+
 
 UI, Workflows & Features
 


Re: [ANNOUNCE] Git v2.27.0-rc1

2020-05-20 Thread Junio C Hamano
Jeff King  writes:

> On Wed, May 20, 2020 at 12:17:11PM -0700, Junio C Hamano wrote:
>
>> Git 2.27 Release Notes (draft)
>> ==
>> 
>> Updates since v2.26
>> ---
>> 
>> Backward compatibility notes
>
> Is it worth mentioning here the reversion of v2 as the default protocol?

Yeah, that is a good suggestion.  The fix inside v2 is not worth
reporting, but the change of the default is noteworthy enough to be
at the top.




Re: [ANNOUNCE] Git v2.27.0-rc1

2020-05-20 Thread Jeff King
On Wed, May 20, 2020 at 12:17:11PM -0700, Junio C Hamano wrote:

> Git 2.27 Release Notes (draft)
> ==
> 
> Updates since v2.26
> ---
> 
> Backward compatibility notes

Is it worth mentioning here the reversion of v2 as the default protocol?

It does end up (along with the actual code fix) in the "fixes from
v2.26" section:

>  * Those fetching over protocol v2 from linux-next and other kernel
>repositories are reporting that v2 often fetches way too much than
>needed.
>(merge 11c7f2a30b jn/demote-proto2-from-default later to maint).
> 
>  * The upload-pack protocol v2 gave up too early before finding a
>common ancestor, resulting in a wasteful fetch from a fork of a
>project.  This has been corrected to match the behaviour of v0
>protocol.
>(merge 2f0a093dd6 jt/v2-fetch-nego-fix later to maint).

but that's somewhat buried. I dunno. It is not likely to introduce _new_
compatibility issues, but perhaps folks looking into compatibility stuff
may want to know about the revert.

-Peff


[ANNOUNCE] Git v2.27.0-rc1

2020-05-20 Thread Junio C Hamano
A release candidate Git v2.27.0-rc1 is now available for testing
at the usual places.  It is comprised of 491 non-merge commits
since v2.26.0, contributed by 55 people, 16 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.27.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.26.0 are as follows.
Welcome to the Git development community!

  Andras Kucsma, Ash Holland, Christopher Warrington, Emma
  Brooks, Jessica Clarke, Jorge Lopez Silva, Julien Moutinho,
  Li Xuejiang, luciano.ro...@booking.com, Matthias Aßhauer,
  Michael F. Schönitzer, Nathan Sanders, Son Luong Ngoc, Terry
  Moschou, Vasil Dimov, and Yang Zhao.

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

  마누엘, Abhishek Kumar, Alban Gruin, Alexandr Miloslavskiy,
  Alex Henrie, Andrei Rybak, Andrew Oakley, Ben Keene, brian
  m. carlson, Carlo Marcelo Arenas Belón, Christian Couder,
  Damien Robert, Denton Liu, Derrick Stolee, Đoàn Trần Công
  Danh, Elijah Newren, Emily Shaffer, Eric Sunshine, Garima Singh,
  Hans Jerry Illikainen, Heba Waly, Jeff King, Jiang Xin, Johannes
  Schindelin, Jonathan Nieder, Jonathan Tan, Josh Steadmon, Junio
  C Hamano, Martin Ågren, Matheus Tavares, Patrick Steinhardt,
  Philippe Blain, Phillip Wood, René Scharfe, Shourya Shukla,
  SZEDER Gábor, Taylor Blau, Thomas Gummerer, and Todd Zullinger.



Git 2.27 Release Notes (draft)
==

Updates since v2.26
---

Backward compatibility notes

 * When "git describe C" finds that commit C is pointed by a signed or
   annotated tag, which records T as its tagname in the object, the
   command gives T as its answer.  Even if the user renames or moves
   such a tag from its natural location in the "refs/tags/" hierarchy,
   "git describe C" would still give T as the answer, but in such a
   case "git show T^0" would no longer work as expected.  There may be
   nothing at "refs/tags/T" or even worse there may be a different tag
   instead.

   Starting from this version, "git describe" will always use the
   "long" version, as if the "--long" option were given, when giving
   its output based on such a misplaced tag to work around the problem.

 * "git pull" issues a warning message until the pull.rebase
   configuration variable is explicitly given, which some existing
   users may find annoying---those who prefer not to rebase need to
   set the variable to false to squelch the warning.


UI, Workflows & Features

 * A handful of options to configure SSL when talking to proxies have
   been added.

 * Smudge/clean conversion filters are now given more information
   (e.g. the object of the tree-ish in which the blob being converted
   appears, in addition to its path, which has already been given).

 * When "git describe C" finds an annotated tag with tagname A to be
   the best name to explain commit C, and the tag is stored in a
   "wrong" place in the refs/tags hierarchy, e.g. refs/tags/B, the
   command gave a warning message but used A (not B) to describe C.
   If C is exactly at the tag, the describe output would be "A", but
   "git rev-parse A^0" would not be equal as "git rev-parse C^0".  The
   behavior of the command has been changed to use the "long" form
   i.e. A-0-gOBJECTNAME, which is correctly interpreted by rev-parse.

 * "git pull" learned to warn when no pull.rebase configuration
   exists, and neither --[no-]rebase nor --ff-only is given (which
   would result a merge).

 * "git p4" learned four new hooks and also "--no-verify" option to
   bypass them (and the existing "p4-pre-submit" hook).

 * "git pull" shares many options with underlying "git fetch", but
   some of them were not documented and some of those that would make
   sense to pass down were not passed down.

 * "git rebase" learned the "--no-gpg-sign" option to countermand
   commit.gpgSign the user may have.

 * The output from "git format-patch" uses RFC 2047 encoding for
   non-ASCII letters on From: and Subject: headers, so that it can
   directly be fed to e-mail programs.  A new option has been added
   to produce these headers in raw.

 * "git log" learned "--show-pulls" that helps pathspec limited
   history views; a merge commit that takes the whole change from a
   side branch, which is normally omitted from the output, is shown
   in addition to the commits that introduce real changes.

 * The interactive input from various codepaths are consolidated and
   any prompt possibly issued earlier are fflush()ed before we read.

 * Allow "git rebase" to reapply all local commits, even if the may be
   already in the upstream, 

[ANNOUNCE] Git v2.27.0-rc0

2020-05-14 Thread Junio C Hamano
An early preview release Git v2.27.0-rc0 is now available for
testing at the usual places.  It is comprised of 479 non-merge
commits since v2.26.0, contributed by 53 people, 16 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.27.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.26.0 are as follows.
Welcome to the Git development community!

  Andras Kucsma, Ash Holland, Christopher Warrington, Emma
  Brooks, Jessica Clarke, Jorge Lopez Silva, Julien Moutinho,
  Li Xuejiang, luciano.ro...@booking.com, Matthias Aßhauer,
  Michael F. Schönitzer, Nathan Sanders, Son Luong Ngoc, Terry
  Moschou, Vasil Dimov, and Yang Zhao.

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

  마누엘, Alban Gruin, Alexandr Miloslavskiy, Alex Henrie,
  Andrei Rybak, Andrew Oakley, Ben Keene, brian m. carlson,
  Carlo Marcelo Arenas Belón, Christian Couder, Damien Robert,
  Denton Liu, Derrick Stolee, Đoàn Trần Công Danh, Elijah
  Newren, Emily Shaffer, Eric Sunshine, Garima Singh, Hans Jerry
  Illikainen, Heba Waly, Jeff King, Jiang Xin, Johannes Schindelin,
  Jonathan Nieder, Jonathan Tan, Josh Steadmon, Junio C Hamano,
  Martin Ågren, Matheus Tavares, Patrick Steinhardt, Philippe
  Blain, Phillip Wood, René Scharfe, Shourya Shukla, SZEDER
  Gábor, Taylor Blau, and Thomas Gummerer.



Git 2.27 Release Notes (draft)
==

Updates since v2.26
---

Backward compatibility notes

 * When "git describe C" finds that commit C is pointed by a signed or
   annotated tag, which records T as its tagname in the object, the
   command gives T as its answer.  Even if the user renames or moves
   such a tag from its natural location in the "refs/tags/" hierarchy,
   "git describe C" would still give T as the answer, but in such a
   case "git show T^0" would no longer work as expected.  There may be
   nothing at "refs/tags/T" or even worse there may be a different tag
   instead.

   Starting from this version, "git describe" will always use the
   "long" version, as if the "--long" option were given, when giving
   its output based on such a misplaced tag to work around the problem.

 * "git pull" issues a warning message until the pull.rebase
   configuration variable is explicitly given, which some existing
   users may find annoying---those who prefer not to rebase need to
   set the variable to false to squelch the warning.


UI, Workflows & Features

 * A handful of options to configure SSL when talking to proxies have
   been added.

 * Smudge/clean conversion filters are now given more information
   (e.g. the object of the tree-ish in which the blob being converted
   appears, in addition to its path, which has already been given).

 * When "git describe C" finds an annotated tag with tagname A to be
   the best name to explain commit C, and the tag is stored in a
   "wrong" place in the refs/tags hierarchy, e.g. refs/tags/B, the
   command gave a warning message but used A (not B) to describe C.
   If C is exactly at the tag, the describe output would be "A", but
   "git rev-parse A^0" would not be equal as "git rev-parse C^0".  The
   behavior of the command has been changed to use the "long" form
   i.e. A-0-gOBJECTNAME, which is correctly interpreted by rev-parse.

 * "git pull" learned to warn when no pull.rebase configuration
   exists, and neither --[no-]rebase nor --ff-only is given (which
   would result a merge).

 * "git p4" learned four new hooks and also "--no-verify" option to
   bypass them (and the existing "p4-pre-submit" hook).

 * "git pull" shares many options with underlying "git fetch", but
   some of them were not documented and some of those that would make
   sense to pass down were not passed down.

 * "git rebase" learned the "--no-gpg-sign" option to countermand
   commit.gpgSign the user may have.

 * The output from "git format-patch" uses RFC 2047 encoding for
   non-ASCII letters on From: and Subject: headers, so that it can
   directly be fed to e-mail programs.  A new option has been added
   to produce these headers in raw.

 * "git log" learned "--show-pulls" that helps pathspec limited
   history views; a merge commit that takes the whole change from a
   side branch, which is normally omitted from the output, is shown
   in addition to the commits that introduce real changes.

 * The interactive input from various codepaths are consolidated and
   any prompt possibly issued earlier are fflush()ed before we read.

 * Allow "git rebase" to reapply all local commits, even if the may be
   already in the upstream, without checking first.

 

[ANNOUNCE] Git v2.27.0-rc0

2020-05-14 Thread Junio C Hamano
An early preview release Git v2.27.0-rc0 is now available for
testing at the usual places.  It is comprised of 479 non-merge
commits since v2.26.0, contributed by 53 people, 16 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.27.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.26.0 are as follows.
Welcome to the Git development community!

  Andras Kucsma, Ash Holland, Christopher Warrington, Emma
  Brooks, Jessica Clarke, Jorge Lopez Silva, Julien Moutinho,
  Li Xuejiang, luciano.ro...@booking.com, Matthias Aßhauer,
  Michael F. Schönitzer, Nathan Sanders, Son Luong Ngoc, Terry
  Moschou, Vasil Dimov, and Yang Zhao.

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

  마누엘, Alban Gruin, Alexandr Miloslavskiy, Alex Henrie,
  Andrei Rybak, Andrew Oakley, Ben Keene, brian m. carlson,
  Carlo Marcelo Arenas Belón, Christian Couder, Damien Robert,
  Denton Liu, Derrick Stolee, Đoàn Trần Công Danh, Elijah
  Newren, Emily Shaffer, Eric Sunshine, Garima Singh, Hans Jerry
  Illikainen, Heba Waly, Jeff King, Jiang Xin, Johannes Schindelin,
  Jonathan Nieder, Jonathan Tan, Josh Steadmon, Junio C Hamano,
  Martin Ågren, Matheus Tavares, Patrick Steinhardt, Philippe
  Blain, Phillip Wood, René Scharfe, Shourya Shukla, SZEDER
  Gábor, Taylor Blau, and Thomas Gummerer.



Git 2.27 Release Notes (draft)
==

Updates since v2.26
---

Backward compatibility notes

 * When "git describe C" finds that commit C is pointed by a signed or
   annotated tag, which records T as its tagname in the object, the
   command gives T as its answer.  Even if the user renames or moves
   such a tag from its natural location in the "refs/tags/" hierarchy,
   "git describe C" would still give T as the answer, but in such a
   case "git show T^0" would no longer work as expected.  There may be
   nothing at "refs/tags/T" or even worse there may be a different tag
   instead.

   Starting from this version, "git describe" will always use the
   "long" version, as if the "--long" option were given, when giving
   its output based on such a misplaced tag to work around the problem.

 * "git pull" issues a warning message until the pull.rebase
   configuration variable is explicitly given, which some existing
   users may find annoying---those who prefer not to rebase need to
   set the variable to false to squelch the warning.


UI, Workflows & Features

 * A handful of options to configure SSL when talking to proxies have
   been added.

 * Smudge/clean conversion filters are now given more information
   (e.g. the object of the tree-ish in which the blob being converted
   appears, in addition to its path, which has already been given).

 * When "git describe C" finds an annotated tag with tagname A to be
   the best name to explain commit C, and the tag is stored in a
   "wrong" place in the refs/tags hierarchy, e.g. refs/tags/B, the
   command gave a warning message but used A (not B) to describe C.
   If C is exactly at the tag, the describe output would be "A", but
   "git rev-parse A^0" would not be equal as "git rev-parse C^0".  The
   behavior of the command has been changed to use the "long" form
   i.e. A-0-gOBJECTNAME, which is correctly interpreted by rev-parse.

 * "git pull" learned to warn when no pull.rebase configuration
   exists, and neither --[no-]rebase nor --ff-only is given (which
   would result a merge).

 * "git p4" learned four new hooks and also "--no-verify" option to
   bypass them (and the existing "p4-pre-submit" hook).

 * "git pull" shares many options with underlying "git fetch", but
   some of them were not documented and some of those that would make
   sense to pass down were not passed down.

 * "git rebase" learned the "--no-gpg-sign" option to countermand
   commit.gpgSign the user may have.

 * The output from "git format-patch" uses RFC 2047 encoding for
   non-ASCII letters on From: and Subject: headers, so that it can
   directly be fed to e-mail programs.  A new option has been added
   to produce these headers in raw.

 * "git log" learned "--show-pulls" that helps pathspec limited
   history views; a merge commit that takes the whole change from a
   side branch, which is normally omitted from the output, is shown
   in addition to the commits that introduce real changes.

 * The interactive input from various codepaths are consolidated and
   any prompt possibly issued earlier are fflush()ed before we read.

 * Allow "git rebase" to reapply all local commits, even if the may be
   already in the upstream, without checking first.