Following up on the suggestion to make git.git smaller and shed non-core
tools, here's an RFC series to do so with git-filter-branch. This
series first removes dependencies on git-filter-branch (of which there
were very few), and then deletes git-filter-branch itself in the final
commit.
I'm more than happy to consider alternate places for the filter-branch
history (I had considered just merging it in with git-filter-repo), but
for now I just made it available here:
https://github.com/newren/git-filter-branch
The rewrite above contains the history of the files deleted in Patch 5,
plus a one-time copy of relevant build files (Makefiles, test-lib.sh,
etc. -- I didn't want the whole history of these), and then touchups to
streamline the build files and make them all work in this standalone
repo.
Some highlevel notes on the patches:
* Patches 1&2: are good cleanups & performance wins regardless of
whether the rest of the series is taken
* Patch 3: an attempt to improve i18n situation for external scripts,
but discovered to not be necessary/useful for git-filter-branch
specifically
* Patch 4:
* If we are good with deleting git-filter-branch now and just noting
it in the release notes, then patch 4 could be simplified; there's
no need to update git-filter-branch.txt in that case.
* If, however, we want to do some external messaging for an
additional release cycle or two before moving git-filter-branch
out of git.git, this patch will help us until then to at least
avoid recommending a tool which will likely mangle user's data in
unexpected ways. But it'd be really helpful if folks could review
and opine on the BFG stuff if so.
* Patch 5: actually deletes git-filter-branch, its tests, and
documentation.
Elijah Newren (5):
t6006: simplify and optimize empty message test
t3427: accelerate this test by using fast-export and fast-import
git-sh-i18n: work with external scripts
Recommend git-filter-repo instead of git-filter-branch in
documentation
Remove git-filter-branch, it is now external to git.git
.gitignore | 1 -
Documentation/git-fast-export.txt | 6 +-
Documentation/git-filter-branch.txt | 481 --------------------
Documentation/git-gc.txt | 17 +-
Documentation/git-rebase.txt | 2 +-
Documentation/git-replace.txt | 10 +-
Documentation/git-svn.txt | 4 +-
Documentation/githooks.txt | 7 +-
Makefile | 1 -
command-list.txt | 1 -
contrib/svn-fe/svn-fe.txt | 4 +-
git-filter-branch.sh | 662 ----------------------------
git-sh-i18n.sh | 7 +-
t/perf/p7000-filter-branch.sh | 24 -
t/t3427-rebase-subtree.sh | 32 +-
t/t6006-rev-list-format.sh | 5 +-
t/t7003-filter-branch.sh | 505 ---------------------
t/t7009-filter-branch-null-sha1.sh | 55 ---
t/t9902-completion.sh | 12 +-
19 files changed, 63 insertions(+), 1773 deletions(-)
delete mode 100644 Documentation/git-filter-branch.txt
delete mode 100755 git-filter-branch.sh
delete mode 100755 t/perf/p7000-filter-branch.sh
delete mode 100755 t/t7003-filter-branch.sh
delete mode 100755 t/t7009-filter-branch-null-sha1.sh
--
2.23.0.5.g775ebaa2a0