Hi Daniel, On Tue, 10 Nov 2020, Daniel Höpfl wrote: > Hallo Elijah, > > On Fri, Nov 06, 2020 at 12:12:55PM -0800, Elijah Newren wrote: > >On Fri, Nov 6, 2020 at 10:06 AM Junio C Hamano <gitster@xxxxxxxxx> wrote: > > > > > > Daniel Höpfl <daniel@xxxxxxxxx> writes: > > > > > > > Hello there, > > > > > > > > What did you do before the bug happened? (Steps to reproduce your issue) > > > > git filter-branch -f --env-filter '' --tag-name-filter cat -- HEAD > > > > > > > > What did you expect to happen? (Expected behavior) > > > > See below (difference). > > > > > > > > What happened instead? (Actual behavior) > > > > When using git filter-branch, the following message is shown: > > > > > > > > ----------8<----------------------------------------------------- > > > > WARNING: git-filter-branch has a glut of gotchas generating mangled > > > > history > > > > rewrites. Hit Ctrl-C before proceeding to abort, then use an > > > > alternative filtering tool such as 'git filter-repo' > > > > (https://github.com/newren/git-filter-repo/) instead. See the > > > > filter-branch manual page for more details; to squelch this > > > > warning, > > > > set FILTER_BRANCH_SQUELCH_WARNING=1. > > > > ----------8<----------------------------------------------------- > > > > > > > > You can suppress this by setting the environment variable shown. > > > > > > > > What's different between what you expected and what actually happened? > > > > > > > > Normally, when git introduces this kind of change, there is a > > > > git config variable that one can set to suppress it. > > > > That way one has fine grade control when to suppress it (one repo > > > > only...globally). > > > > > > I think this comes from 9df53c5d (Recommend git-filter-repo instead > > > of git-filter-branch, 2019-09-04). > > > > > > FWIW, I personally do not think an environment is a worse choice > > > over configuration variable in this particular case. The large > > > scale rewriting of the entire history in the repository by its > > > nature is an one-off operation that ought to happen only rarely, > > > so a one-shot > > > > > > $ FILTER_BRANCH_SQUELCH_WARNING=1 git filter-branch ... > > > > > > that reminds the user every time would be more appropriate than a > > > configuration variable that has a more permanent squelching effect. > > > > > > If it were a new command line option may have been even better, as > > > an environment variable can be defined in .*rc and forgotten, but a > > > command line option needs to be typed every time and would serve as > > > a better reminder (yes, I know it can also be aliased away, so it > > > may not make much practical difference either way). > > > > > > But I'll let the author of the feature to comment. > > > > > > Thanks. > > > >I agree with Junio that filter-branch's one-off nature means that not > >providing a configuration variable seems reasonable in this case. If > >someone else were to go to the effort of implementing some > >configuration option here, I wouldn't be that strongly against it, > >though I'd rather just let filter-branch lie dormant and stable. > > > >A new command line option might have been better, but it didn't occur > >to me at the time this change was made and I hesitate to needlessly > >force people to adapt again. > > I implemented the change and sent a pull request on github (#912) but failed > at GitGitGadget. Anyways, here’s the patch: > > --- > git-filter-branch.sh | 14 ++++++++++---- > 1 file changed, 10 insertions(+), 4 deletions(-) > > diff --git a/git-filter-branch.sh b/git-filter-branch.sh > index fea7964617..fb55afcc86 100755 > --- a/git-filter-branch.sh > +++ b/git-filter-branch.sh > @@ -83,15 +83,21 @@ set_ident () { > finish_ident COMMITTER > } > > -if test -z > "$FILTER_BRANCH_SQUELCH_WARNING$GIT_TEST_DISALLOW_ABBREVIATED_OPTIONS" > +if test -z > "$FILTER_BRANCH_SQUELCH_WARNING$GIT_TEST_DISALLOW_ABBREVIATED_OPTIONS" && \ > + test "$(git config --bool filter-branch.squelchWarning)" != true > then > cat <<EOF > WARNING: git-filter-branch has a glut of gotchas generating mangled history > - rewrites. Hit Ctrl-C before proceeding to abort, then use an > + rewrites. Hit Ctrl-C before proceeding to abort, then use an > alternative filtering tool such as 'git filter-repo' > - (https://github.com/newren/git-filter-repo/) instead. See the > + (https://github.com/newren/git-filter-repo/) instead. See the > filter-branch manual page for more details; to squelch this warning, > - set FILTER_BRANCH_SQUELCH_WARNING=1. > + set FILTER_BRANCH_SQUELCH_WARNING=1 or run the following command: > + > + git config filter-branch.squelchWarning true > + > + You can replace "git config" with "git config --global" to disable > + the warning for all repositories. > EOF > sleep 10 > printf "Proceeding with filter-branch...\n\n" > -- > 2.29.0 The first obstacle was that somebody had to `/allow` you (you probably missed it; https://github.com/git/git/pull/912/#issuecomment-724637575 is a bit of a verbose welcome message, but it _does_ mention it in the "Contributing the patches" section). The GitGitGadget Pull Request still has the following issues: - the commit is not signed off - the commit message is not in a good shape (it consists of a single, too-long line) I also left a couple more comments about the patch itself here: https://github.com/git/git/pull/912/#pullrequestreview-527112997 Ciao, Johannes