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

2020-07-27 Thread Elijah Newren
Hi,

On Mon, Jul 27, 2020 at 11:54 AM Junio C Hamano  wrote:
>
> The latest feature release Git v2.28.0 is now available at the
> usual places.  It is comprised of 317 non-merge commits since
> v2.27.0, contributed by 58 people, 13 of which are new faces.

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

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.27.1 are as follows.
Welcome to the git-filter-repo development community!

  * James Ramsay
  * Jonas Bernoulli

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



git-filter-repo 2.28 Release Notes
==

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

* New features:
  * ignore comment lines in --paths-from-file (#111)

* Fixes:
  * allow globs to match file or directory names (#114)
  * use new --date-format=raw-permissive fast-import option to avoid
fast-import failure on malformed date timezones (#88)
  * fix undefined variable names reported by flake8 in rare error paths (#128)
  * fix crash from assuming parent is an int (#131)

* Documentation:
  * document mapping output (#117)
  * ignore the generated documentation (#127)
  * several miscellaneous doc improvements

* Miscellaneous:
  * make tests individually re-runnable


Changes since v2.27.1 are as follows:

Elijah Newren (13):
  INSTALL.md: fix missing trailing backquote
  t9390: make tests individually re-runnable
  filter-repo: allow globs to match file or directory names
  filter-repo: ignore comment lines in --paths-from-file
  git-filter-repo.txt: point people at the generated documentation
  git-filter-repo.txt: be more forceful on the wording of --force
  filter-repo: make fresh clone warning scarier
  INSTALL.md: wording clarification on what repology.org tracks
  contrib: rename no-op-example to barebones-example
  filter-repo: use new --date-format=raw-permissive fast-import option
  Contributing.md: link to Nicolai Hähnle's code review comments
  Fix undefined variable names
  filter-repo: fix crash from assuming parent is an int

James Ramsay (1):
  git-filter-repo.txt: document mapping output

Jonas Bernoulli (1):
  .gitignore: ignore the generated documentation


[ANNOUNCE] Git v2.28.0

2020-07-27 Thread Junio C Hamano
The latest feature release Git v2.28.0 is now available at the
usual places.  It is comprised of 317 non-merge commits since
v2.27.0, contributed by 58 people, 13 of which are new faces.
It is smaller than the releases in our recent past, mostly due to
the development cycle was near the shorter end of the spectrum (our
cycles last 8-12 weeks and this was a rare 8-week cycle).

The tarballs are found at:

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

The following public repositories all have a copy of the 'v2.28.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.27.0 are as follows.
Welcome to the Git development community!

  Andrew Ng, Bojun Chen, Chris Torek, David J. Malan, Don
  Goodman-Wilson, Jiuyang Xie, Luc Van Oostenryck, Marco Trevisan
  (Treviño), Mikhail Terekhov, Miroslav Koškár, Rafael Aquini,
  Srinidhi Kaushik, and Trygve Aaberge.

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

  Abhishek Kumar, Alessandro Menti, Ben Keene, brian m. carlson,
  Carlo Marcelo Arenas Belón, Christian Couder, Christopher
  Diaz Riveros, Denton Liu, Derrick Stolee, Đoàn Trần Công
  Danh, Elijah Newren, Emily Shaffer, Emir Sarı, Eric Sunshine,
  Han-Wen Nienhuys, Jacob Keller, Jean-Noël Avila, Jeff King,
  Jiang Xin, Johannes Schindelin, John Lin, Jonathan Nieder,
  Jonathan Tan, Jordi Mas, Josh Steadmon, Junio C Hamano, Laurent
  Arnoud, Martin Ågren, Matheus Tavares, Matthias Rüster, Paolo
  Bonzini, Patrick Steinhardt, Peter Krefting, Pratyush Yadav,
  Ralf Thielow, Ramsay Jones, Randall S. Becker, René Scharfe,
  Shourya Shukla, SZEDER Gábor, Taylor Blau, Trần Ngọc Quân,
  Ville Skyttä, Xin Li, and Yi-Jyun Pan.



Git 2.28 Release Notes
==

Updates since v2.27
---

Backward compatibility notes

 * "fetch.writeCommitGraph" is deemed to be still a bit too risky and
   is no longer part of the "feature.experimental" set.


UI, Workflows & Features

 * The commands in the "diff" family learned to honor "diff.relative"
   configuration variable.

 * The check in "git fsck" to ensure that the tree objects are sorted
   still had corner cases it missed unsorted entries.

 * The interface to redact sensitive information in the trace output
   has been simplified.

 * The command line completion (in contrib/) learned to complete
   options that the "git switch" command takes.

 * "git diff" used to take arguments in random and nonsense range
   notation, e.g. "git diff A..B C", "git diff A..B C...D", etc.,
   which has been cleaned up.

 * "git diff-files" has been taught to say paths that are marked as
   intent-to-add are new files, not modified from an empty blob.

 * "git status" learned to report the status of sparse checkout.

 * "git difftool" has trouble dealing with paths added to the index
   with the intent-to-add bit.

 * "git fast-export --anonymize" learned to take customized mapping to
   allow its users to tweak its output more usable for debugging.

 * The command line completion support (in contrib/) used to be
   prepared to work with "set -u" but recent changes got a bit more
   sloppy.  This has been corrected.

 * "git gui" now allows opening work trees from the start-up dialog.


Performance, Internal Implementation, Development Support etc.

 * Code optimization for a common case.
   (merge 8777616e4d an/merge-single-strategy-optim later to maint).

 * We've adopted a convention that any on-stack structure can be
   initialized to have zero values in all fields with "= { 0 }",
   even when the first field happens to be a pointer, but sparse
   complained that a null pointer should be spelled NULL for a long
   time.  Start using -Wno-universal-initializer option to squelch
   it (the latest sparse has it on by default).

 * "git log -L..." now takes advantage of the "which paths are touched
   by this commit?" info stored in the commit-graph system.

 * As FreeBSD is not the only platform whose regexp library reports
   a REG_ILLSEQ error when fed invalid UTF-8, add logic to detect that
   automatically and skip the affected tests.

 * "git bugreport" learns to report what shell is in use.

 * Support for GIT_CURL_VERBOSE has been rewritten in terms of
   GIT_TRACE_CURL.

 * Preliminary clean-ups around refs API, plus file format
   specification documentation for the reftable backend.

 * Workaround breakage in MSVC build, where "curl-config --cflags"
   gives settings appropriate for GCC build.

 * Code clean-up of "git clean" resulted in a fix of recent
   performance regression.

 * Code clean-up in the codepath that serves "git fetch" continues.

 * "git merge-base --is-ancestor" is taught to take advantage of the
   commit graph.

 * Rewrite of 

[ANNOUNCE] Git v2.28.0-rc2

2020-07-22 Thread Junio C Hamano
A release candidate Git v2.28.0-rc2 is now available for testing
at the usual places.  It is comprised of 301 non-merge commits
since v2.27.0, contributed by 46 people, 12 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.28.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.27.0 are as follows.
Welcome to the Git development community!

  Andrew Ng, Chris Torek, David J. Malan, Don Goodman-Wilson,
  Jiuyang Xie, Luc Van Oostenryck, Marco Trevisan (Treviño),
  Mikhail Terekhov, Miroslav Koškár, Rafael Aquini, Srinidhi
  Kaushik, and Trygve Aaberge.

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

  Abhishek Kumar, Ben Keene, brian m. carlson, Carlo Marcelo
  Arenas Belón, Christian Couder, Denton Liu, Derrick Stolee,
  Đoàn Trần Công Danh, Elijah Newren, Emily Shaffer,
  Eric Sunshine, Han-Wen Nienhuys, Jacob Keller, Jeff King,
  Johannes Schindelin, John Lin, Jonathan Nieder, Jonathan Tan,
  Josh Steadmon, Junio C Hamano, Laurent Arnoud, Martin Ågren,
  Matheus Tavares, Paolo Bonzini, Patrick Steinhardt, Pratyush
  Yadav, Ramsay Jones, Randall S. Becker, René Scharfe, Shourya
  Shukla, SZEDER Gábor, Taylor Blau, Ville Skyttä, and Xin Li.



Git 2.28 Release Notes (draft)
==

Updates since v2.27
---

Backward compatibility notes

 * "fetch.writeCommitGraph" is deemed to be still a bit too risky and
   is no longer part of the "feature.experimental" set.


UI, Workflows & Features

 * The commands in the "diff" family learned to honor "diff.relative"
   configuration variable.

 * The check in "git fsck" to ensure that the tree objects are sorted
   still had corner cases it missed unsorted entries.

 * The interface to redact sensitive information in the trace output
   has been simplified.

 * The command line completion (in contrib/) learned to complete
   options that the "git switch" command takes.

 * "git diff" used to take arguments in random and nonsense range
   notation, e.g. "git diff A..B C", "git diff A..B C...D", etc.,
   which has been cleaned up.

 * "git diff-files" has been taught to say paths that are marked as
   intent-to-add are new files, not modified from an empty blob.

 * "git status" learned to report the status of sparse checkout.

 * "git difftool" has trouble dealing with paths added to the index
   with the intent-to-add bit.

 * "git fast-export --anonymize" learned to take customized mapping to
   allow its users to tweak its output more usable for debugging.

 * The command line completion support (in contrib/) used to be
   prepared to work with "set -u" but recent changes got a bit more
   sloppy.  This has been corrected.

 * "git gui" now allows opening work trees from the start-up dialog.


Performance, Internal Implementation, Development Support etc.

 * Code optimization for a common case.
   (merge 8777616e4d an/merge-single-strategy-optim later to maint).

 * We've adopted a convention that any on-stack structure can be
   initialized to have zero values in all fields with "= { 0 }",
   even when the first field happens to be a pointer, but sparse
   complained that a null pointer should be spelled NULL for a long
   time.  Start using -Wno-universal-initializer option to squelch
   it (the latest sparse has it on by default).

 * "git log -L..." now takes advantage of the "which paths are touched
   by this commit?" info stored in the commit-graph system.

 * As FreeBSD is not the only platform whose regexp library reports
   a REG_ILLSEQ error when fed invalid UTF-8, add logic to detect that
   automatically and skip the affected tests.

 * "git bugreport" learns to report what shell is in use.

 * Support for GIT_CURL_VERBOSE has been rewritten in terms of
   GIT_TRACE_CURL.

 * Preliminary clean-ups around refs API, plus file format
   specification documentation for the reftable backend.

 * Workaround breakage in MSVC build, where "curl-config --cflags"
   gives settings appropriate for GCC build.

 * Code clean-up of "git clean" resulted in a fix of recent
   performance regression.

 * Code clean-up in the codepath that serves "git fetch" continues.

 * "git merge-base --is-ancestor" is taught to take advantage of the
   commit graph.

 * Rewrite of parts of the scripted "git submodule" Porcelain command
   continues; this time it is "git submodule set-branch" subcommand's
   turn.

 * The "fetch/clone" protocol has been updated to allow the server to
   instruct the clients to grab pre-packaged packfile(s) in addition
   to the packed object data coming over the wire.

 * A misdesigned 

[ANNOUNCE] Git v2.28.0-rc1

2020-07-17 Thread Junio C Hamano
A release candidate Git v2.28.0-rc1 is now available for testing
at the usual places.  It is comprised of 295 non-merge commits
since v2.27.0, contributed by 43 people, 10 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.28.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.27.0 are as follows.
Welcome to the Git development community!

  Andrew Ng, Chris Torek, Don Goodman-Wilson, Jiuyang Xie, Luc
  Van Oostenryck, Marco Trevisan (Treviño), Miroslav Koškár,
  Rafael Aquini, Srinidhi Kaushik, and Trygve Aaberge.

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

  Abhishek Kumar, Ben Keene, brian m. carlson, Carlo Marcelo Arenas
  Belón, Christian Couder, Denton Liu, Derrick Stolee, Đoàn
  Trần Công Danh, Elijah Newren, Emily Shaffer, Eric Sunshine,
  Han-Wen Nienhuys, Jacob Keller, Jeff King, Johannes Schindelin,
  John Lin, Jonathan Nieder, Jonathan Tan, Josh Steadmon, Junio C
  Hamano, Laurent Arnoud, Martin Ågren, Matheus Tavares, Paolo
  Bonzini, Patrick Steinhardt, Ramsay Jones, Randall S. Becker,
  René Scharfe, Shourya Shukla, SZEDER Gábor, Taylor Blau,
  Ville Skyttä, and Xin Li.



Git 2.28 Release Notes (draft)
==

Updates since v2.27
---

Backward compatibility notes

 * "fetch.writeCommitGraph" is deemed to be still a bit too risky and
   is no longer part of the "feature.experimental" set.


UI, Workflows & Features

 * The commands in the "diff" family learned to honor "diff.relative"
   configuration variable.

 * The check in "git fsck" to ensure that the tree objects are sorted
   still had corner cases it missed unsorted entries.

 * The interface to redact sensitive information in the trace output
   has been simplified.

 * The command line completion (in contrib/) learned to complete
   options that the "git switch" command takes.

 * "git diff" used to take arguments in random and nonsense range
   notation, e.g. "git diff A..B C", "git diff A..B C...D", etc.,
   which has been cleaned up.

 * "git diff-files" has been taught to say paths that are marked as
   intent-to-add are new files, not modified from an empty blob.

 * "git status" learned to report the status of sparse checkout.

 * "git difftool" has trouble dealing with paths added to the index
   with the intent-to-add bit.

 * "git fast-export --anonymize" learned to take customized mapping to
   allow its users to tweak its output more usable for debugging.

 * The command line completion support (in contrib/) used to be
   prepared to work with "set -u" but recent changes got a bit more
   sloppy.  This has been corrected.


Performance, Internal Implementation, Development Support etc.

 * Code optimization for a common case.
   (merge 8777616e4d an/merge-single-strategy-optim later to maint).

 * We've adopted a convention that any on-stack structure can be
   initialized to have zero values in all fields with "= { 0 }",
   even when the first field happens to be a pointer, but sparse
   complained that a null pointer should be spelled NULL for a long
   time.  Start using -Wno-universal-initializer option to squelch
   it (the latest sparse has it on by default).

 * "git log -L..." now takes advantage of the "which paths are touched
   by this commit?" info stored in the commit-graph system.

 * As FreeBSD is not the only platform whose regexp library reports
   a REG_ILLSEQ error when fed invalid UTF-8, add logic to detect that
   automatically and skip the affected tests.

 * "git bugreport" learns to report what shell is in use.

 * Support for GIT_CURL_VERBOSE has been rewritten in terms of
   GIT_TRACE_CURL.

 * Preliminary clean-ups around refs API, plus file format
   specification documentation for the reftable backend.

 * Workaround breakage in MSVC build, where "curl-config --cflags"
   gives settings appropriate for GCC build.

 * Code clean-up of "git clean" resulted in a fix of recent
   performance regression.

 * Code clean-up in the codepath that serves "git fetch" continues.

 * "git merge-base --is-ancestor" is taught to take advantage of the
   commit graph.

 * Rewrite of parts of the scripted "git submodule" Porcelain command
   continues; this time it is "git submodule set-branch" subcommand's
   turn.

 * The "fetch/clone" protocol has been updated to allow the server to
   instruct the clients to grab pre-packaged packfile(s) in addition
   to the packed object data coming over the wire.

 * A misdesigned strbuf_write_fd() function has been retired.

 * SHA-256 migration work continues, including CVS/SVN interface.

 * A few 

Re: [ANNOUNCE] Git v2.28.0-rc0

2020-07-10 Thread Derrick Stolee
On 7/10/2020 12:07 PM, Junio C Hamano wrote:
> Derrick Stolee  writes:
> 
>> On 7/9/2020 5:40 PM, Junio C Hamano wrote:
>>> An early preview release Git v2.28.0-rc0 is now available for
>>> testing at the usual places.  
>>
>> This might be part of your new process, or it might be an
>> oversight. It seems that GIT-VERSION-GEN did not update with
>> this RC, so the built version will still have a 2.27 start [1].
>>
>> This differs from previous rc's [2].
> 
> Sorry, I screwed up.  Thanks for a set of sharp eyes.

No worries. The only reason I was confused was because I
always hit a conflict on GIT-VERSION-GEN when rebasing
microsoft/git onto a git-for-windows/git version (so we
can add the ".vfs." into the version string). I had no
idea if this would cause anyone trouble.

Thanks,
-Stolee


Re: [ANNOUNCE] Git v2.28.0-rc0

2020-07-10 Thread Junio C Hamano
Derrick Stolee  writes:

> On 7/9/2020 5:40 PM, Junio C Hamano wrote:
>> An early preview release Git v2.28.0-rc0 is now available for
>> testing at the usual places.  
>
> This might be part of your new process, or it might be an
> oversight. It seems that GIT-VERSION-GEN did not update with
> this RC, so the built version will still have a 2.27 start [1].
>
> This differs from previous rc's [2].

Sorry, I screwed up.  Thanks for a set of sharp eyes.

I however think that there is no practical problem other than for
those who "grep DEF_VER GIT-VERSION-GEN" and base their action on
the result.  If somebody is building from the tarball created by
"make dist" (be it done by me and uploaded to k.org or done by
somebody else from a clone of my repository), there would be the
"version" file included in the tarball that would override the
DEF_VER setting in GIT_VERION_GEN.  If somebody is building from
a clone of my repository, GIT_VERSION_GEN runs "git describe" to
find out which version it is, without using DEF_VER.

The only three unrealistic classes of users that may be affected
are:

 - The ones that single-branch cloned from me _with_ --no-tags, so
   that "git describe" is run but cannot find what version it is.

 - The ones that _somehow_ cloned from me _without_ having any
   version of git that can run "git describe" in the repository.

 - The ones that receives a tarball that was created by running
   "make dist" in the directory that resulted from extracting the
   official tarball and then removed the ./version file included in
   the official tarball.

For the people in the first two classes, GIT-VERSION-GEN would fail
to use "git describe" to find which version it is building, and end
up using DEF_VER.  We can call the third kind a crippled/sabotaged
tarball---without the involvement of the person who extracted the
official tarball, munged the resulting directory and then made a
different tarball by running "make dist" in it, the builders would
not see DEF_VAR being wrong.

Thanks anyway.  I'll try to be more careful when tagging -rc1




Re: [ANNOUNCE] Git v2.28.0-rc0

2020-07-10 Thread Derrick Stolee
On 7/9/2020 5:40 PM, Junio C Hamano wrote:
> An early preview release Git v2.28.0-rc0 is now available for
> testing at the usual places.  

This might be part of your new process, or it might be an
oversight. It seems that GIT-VERSION-GEN did not update with
this RC, so the built version will still have a 2.27 start [1].

This differs from previous rc's [2].

Thanks,
-Stolee

[1] https://github.com/git/git/blob/v2.28.0-rc0/GIT-VERSION-GEN#L4
[2] https://github.com/git/git/blob/v2.27.0-rc0/GIT-VERSION-GEN#L4


[ANNOUNCE] Git v2.28.0-rc0

2020-07-09 Thread Junio C Hamano
An early preview release Git v2.28.0-rc0 is now available for
testing at the usual places.  It is comprised of 284 non-merge
commits since v2.27.0, contributed by 42 people, 9 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.28.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.27.0 are as follows.
Welcome to the Git development community!

  Andrew Ng, Chris Torek, Don Goodman-Wilson, Jiuyang Xie, Luc
  Van Oostenryck, Marco Trevisan (Treviño), Miroslav Koškár,
  Rafael Aquini, and Srinidhi Kaushik.

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

  Abhishek Kumar, Ben Keene, brian m. carlson, Carlo Marcelo Arenas
  Belón, Christian Couder, Denton Liu, Derrick Stolee, Đoàn
  Trần Công Danh, Elijah Newren, Emily Shaffer, Eric Sunshine,
  Han-Wen Nienhuys, Jacob Keller, Jeff King, Johannes Schindelin,
  John Lin, Jonathan Nieder, Jonathan Tan, Josh Steadmon, Junio C
  Hamano, Laurent Arnoud, Martin Ågren, Matheus Tavares, Paolo
  Bonzini, Patrick Steinhardt, Ramsay Jones, Randall S. Becker,
  René Scharfe, Shourya Shukla, SZEDER Gábor, Taylor Blau,
  Ville Skyttä, and Xin Li.



Git 2.28 Release Notes (draft)
==

Updates since v2.27
---

Backward compatibility notes

 * "fetch.writeCommitGraph" is deemed to be still a bit too risky and
   is no longer part of the "feature.experimental" set.

 * It used to be that setting extensions.* configuration variables
   alone, while leaving core.repositoryFormatVersion=0, made these
   settings effective, which was a wrong thing to do.  In version 0,
   there was no special meaning in extensions.* configuration
   variables.  This has been corrected.  If you need these repository
   extensions to be effective, the core.repositoryFormatVersion
   variable needs to be updated to 1 after vetting these extensions.*
   variables are set correctly.


UI, Workflows & Features

 * The commands in the "diff" family learned to honor "diff.relative"
   configuration variable.

 * The check in "git fsck" to ensure that the tree objects are sorted
   still had corner cases it missed unsorted entries.

 * The interface to redact sensitive information in the trace output
   has been simplified.

 * The command line completion (in contrib/) learned to complete
   options that the "git switch" command takes.

 * "git diff" used to take arguments in random and nonsense range
   notation, e.g. "git diff A..B C", "git diff A..B C...D", etc.,
   which has been cleaned up.

 * "git diff-files" has been taught to say paths that are marked as
   intent-to-add are new files, not modified from an empty blob.

 * "git status" learned to report the status of sparse checkout.

 * "git difftool" has trouble dealing with paths added to the index
   with the intent-to-add bit.

 * "git fast-export --anonymize" learned to take customized mapping to
   allow its users to tweak its output more usable for debugging.

 * The command line completion support (in contrib/) used to be
   prepared to work with "set -u" but recent changes got a bit more
   sloppy.  This has been corrected.


Performance, Internal Implementation, Development Support etc.

 * Code optimization for a common case.
   (merge 8777616e4d an/merge-single-strategy-optim later to maint).

 * We've adopted a convention that any on-stack structure can be
   initialized to have zero values in all fields with "= { 0 }",
   even when the first field happens to be a pointer, but sparse
   complained that a null pointer should be spelled NULL for a long
   time.  Start using -Wno-universal-initializer option to squelch
   it (the latest sparse has it on by default).

 * "git log -L..." now takes advantage of the "which paths are touched
   by this commit?" info stored in the commit-graph system.

 * As FreeBSD is not the only platform whose regexp library reports
   a REG_ILLSEQ error when fed invalid UTF-8, add logic to detect that
   automatically and skip the affected tests.

 * "git bugreport" learns to report what shell is in use.

 * Support for GIT_CURL_VERBOSE has been rewritten in terms of
   GIT_TRACE_CURL.

 * Preliminary clean-ups around refs API, plus file format
   specification documentation for the reftable backend.

 * Workaround breakage in MSVC build, where "curl-config --cflags"
   gives settings appropriate for GCC build.

 * Code clean-up of "git clean" resulted in a fix of recent
   performance regression.

 * Code clean-up in the codepath that serves "git fetch" continues.

 * "git merge-base --is-ancestor" is taught to take advantage of the
   commit