On Mon, Aug 26, 2019 at 6:39 PM Derrick Stolee <stolee@xxxxxxxxx> wrote: > > On 8/26/2019 7:52 PM, Elijah Newren wrote: > > 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 > > I agree! These are great. I just had a nit about extracting a helper > instead of copy-pasting the same three lines in multiple tests. > > > * Patch 3: an attempt to improve i18n situation for external scripts, > > but discovered to not be necessary/useful for git-filter-branch > > specifically > > I'm not sure this is super-important now, but could be saved for a > later date, when it is important. > > > * 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. > > I think this is a good step, and should be taken even if we never > plan to take Patch 5. > > > * Patch 5: actually deletes git-filter-branch, its tests, and > > documentation. > > This is the one where others need to chime in with opinions. I > think this one can only be taken if we have a concrete plan about > how to support the tool _somehow_, even if it is "go download the > script from this place; it may have broken since we last tested it." > > Yes, we want to strongly recommend that people use newer, better > tools. That's not always something users can accept. Having the > tool live somewhere that is accessible can appease some users for > a while, and it can decay and die a slow death there. Perhaps I should add some more words about the separate repo I created; even though it wasn't one of the five patches in this series it actually represented the lionshare of the work before I submitted this. Anyway, it has a Makefile which supports the normal 'test', 'doc', 'clean', 'install' (and variants), and 'dist' (and variants). The 'test' target will run all the filter-branch tests taken from the git.git testsuite (i.e. t7003 and t7009) without requiring a version of git built inside that separate repo, 'doc' will build both html and manpages, etc. It doesn't look at any config.mak* files and has stripped out lots of stuff from the main repo, but it's relatively minimal and self-contained beyond an assumption that a normal copy of git has been installed somehow already. Given how infrequently filter-branch has needed fixes in the past, and the fact that it is pretty good about relying on plumbing rather than porcelain, I suspect it might actually be a pretty light maintenance load to keep it running for a good long time.