[ANNOUNCE] git-filter-repo v2.25.0 (Was Re: [ANNOUNCE] Git v2.25.0)
Junio C Hamano
Git Mailing List
Linux Kernel
Elijah Newren
See Also
2020-01-13 20:13:54 UTC

On Mon, Jan 13, 2020 at 11:32 AM Junio C Hamano <gitster@pobox.com> wrote:
> The latest feature release Git v2.25.0 is now available at the
> usual places.  It is comprised of 583 non-merge commits since
> v2.24.0, contributed by 84 people, 32 of which are new faces.

The latest release of git-filter-repo, v2.25.0, is also now available.  It
is comprised of 29 non-merge commits since v2.24.0, contributed by 6
people, 5 of whom are new.

The public repo is at


The tarballs can be found at:


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

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

  Karl Lenz, Benoit Fouletier, Andreas Schneider, Julian Berman,
  Matthisk Heimensen

[1] https://github.com/newren/git-filter-repo/blob/master/INSTALL.md#installation-via-pip
[2] https://github.com/newren/git-filter-repo/blob/master/INSTALL.md#installation-via-package-manager


git-filter-repo 2.25 Release Notes

(Note: Additional information is available for many release notes at

 * A bug in empty/degenerate commit pruning could result in path
   filters being ignored for commits not in the first parent history
   of a commit when the first parent history is pruned away.  This has
   been corrected, with the unwanted files now being pruned. (#3, #35)
 * blob-callbacks and --replace-text could result in commits becoming
   empty, but such commits were overlooked for empty pruning.  This
   has been corrected. (#42)
 * On case-insensitive file systems, fast-import will have files whose
   names differ in case only overwrite each other.  Avoid such
   clobbering of history while rewriting when a repo is cloned onto
   such a filesystem (#24).
 * Prevent --analyze from choking on typechanges in conjunction with
 * Workaround python subprocess bug on Windows in the bfg-ish and
   filter-lamely (a.k.a. filter-branch-ish) scripts, so that these
   scripts can also be run on Windows (#27)

 * Due to pruning of commits which become empty, a merge commit can
   become degenerate in a variety of ways.  One of these is that one
   parent can become the ancestor of the other, making the merge
   commit unnecessary (unless it introduces some file changes).  Add a
   new --no-ff option to avoid pruning such a merge commit when the
   first parent is the one that is an ancestor of the other parent.
 * Warn users who try to use invalid path components (#32)
 * Parse mailmap entries with no email address (#29)
 * Allow --dry-run and --debug to be used together (#29)

Installation improvements:
 * Fix some path and documentation installation issues (#12, #10)
 * Update GPL license file (#34)
 * Add packaging scripts for uploading to PyPI (#11, #16, #43)

Documentation improvements:
 * Ficks sum tiepos in reeport fiuhls genereighted bye --analyze (#18, #40)
 * Include several documentation updates, including fixing an error (#41);
   most of these updates were in response to common questions.

 * Prefer 'coverage3' to 'python3-coverage' in testing, to match name
   of upstream package.
 * Add a basic .gitignore

Changes since v2.24.0 are as follows:

Andreas Schneider (1):
      Update GPL license file

Benoit Fouletier (2):
      Makefile: fix documentation installation
      Makefile: fix path installation issues

Elijah Newren (21):
      filter-repo (README): add sections on prerequisites and installation
      Explain how to use a python3 executable not named "python3"
      filter-repo (README): add code of conduct and contributing guidelines
      run_coverage: prefer coverage3 to python3-coverage
      Contributing.md: mention testsuite line coverage
      contrib: clarify a few points of usage
      Reference package managers in installation instructions
      Contributing.md: clarify notes about PEP-8
      filter-repo: don't have analyze choke on typechange types
      filter-repo: move file filtering out of _tweak_commit() for re-use
      filter-repo: actually fix issue with pruning of empty commits
      release: tweak packaging scripts for uploading to PyPI
      filter-repo: avoid clobbering files whose names differ in case only
      contrib: update bfg-ish and filter-lamely with windows workaround
      Contributing.md: clarify reasons for using git.git submission guidelines
      filter-repo: warn users who try to use invalid path components
      filter-repo: add new --no-ff option
      filter-repo: fix bad column label in path-all-sizes.txt report
      git-filter-repo.txt: fix example of editing blob contents
      filter-repo: fix pruning of empty commits with blob callbacks
      INSTALL: a few small tweaks and clarifications

Julian Berman (1):
      release: add packaging scripts for uploading to PyPI

Karl Lenz (3):
      .gitignore: ignore the test result directories
      filter-repo: parse mailmap entries with no email address
      filter-repo: allow --dry-run and --debug to be used together

Matthisk Heimensen (1):
      filter-repo: fix typo in generated analysis README