git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Johannes Schindelin <Johannes.Schindelin@gmx.de>
To: "Daniel Höpfl" <daniel@hoepfl.de>
Cc: Elijah Newren <newren@gmail.com>,
	Junio C Hamano <gitster@pobox.com>,
	Git Mailing List <git@vger.kernel.org>
Subject: Re: Suppressing filter-branch warning
Date: Tue, 10 Nov 2020 13:15:00 +0100 (CET)	[thread overview]
Message-ID: <nycvar.QRO.7.76.6.2011101311170.18437@tvgsbejvaqbjf.bet> (raw)
In-Reply-To: <20201110112114.GA28702@black.spass-am-geraet.de>

[-- Attachment #1: Type: text/plain, Size: 5721 bytes --]

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@pobox.com> wrote:
> > >
> > > Daniel Höpfl <daniel@hoepfl.de> 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

      reply	other threads:[~2020-11-10 12:15 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-06  9:04 Suppressing filter-branch warning Daniel Höpfl
2020-11-06 18:06 ` Junio C Hamano
2020-11-06 20:12   ` Elijah Newren
2020-11-10 11:21     ` Daniel Höpfl
2020-11-10 12:15       ` Johannes Schindelin [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=nycvar.QRO.7.76.6.2011101311170.18437@tvgsbejvaqbjf.bet \
    --to=johannes.schindelin@gmx.de \
    --cc=daniel@hoepfl.de \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=newren@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).