Subject: Re: [PATCH] Add config variable besides env variable to squelch "do-not-use" warning.

From: Junio C Hamano <[email-masked]>
Date: Wed, 16 Jun 2021 13:23:40 +0900

"Daniel Höpfl via GitGitGadget"  <[email-masked]> writes:

> From: =?UTF-8?q?Daniel=20H=C3=B6pfl?= <[email-masked]>
>
> In addition to the environment variable FILTER_BRANCH_SQUELCH_WARNING,
> the git config filter-branch.squelchWarning is checked to see if the
> usage warning should be squelched.

Thanks for trying to improve the system.

A configuration variable that is used to squelch warning messages
related to migration and transition typically lives under advice.*
hierarchy, so something ike "advice.weanOffOfFilterBranch" may be a
more appropriate name for this new knob.

Having said that.

As this message with environment as an escape hatch was added as a
way to strongly discourage users from keep using the command, I am
fairly negative to a change that adds yet another way to make it
easier to keep using it.

Elijah, who did 9df53c5d (Recommend git-filter-repo instead of
git-filter-branch, 2019-09-04), added to CC list for input.

Thanks.

> Signed-off-by: Daniel Höpfl <[email-masked]>
> ---
>     Add filter-branch.squelchWarning git config alongside
>     FILTER_BRANCH_SQUELCH_WARNING
>     
>     In addition to the environment variable FILTER_BRANCH_SQUELCH_WARNING,
>     the git config filter-branch.squelchWarning is checked to see if the
>     usage warning should be squelched.
>
> Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-912%2Fdhoepfl%2FFILTER_BRANCH_SQUELCH_WARNING-v1
> Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-912/dhoepfl/FILTER_BRANCH_SQUELCH_WARNING-v1
> Pull-Request: https://github.com/git/git/pull/912
>
>  git-filter-branch.sh | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/git-filter-branch.sh b/git-filter-branch.sh
> index fea796461721..d33db14a2a84 100755
> --- a/git-filter-branch.sh
> +++ b/git-filter-branch.sh
> @@ -83,7 +83,8 @@ 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
> @@ -91,7 +92,12 @@ WARNING: git-filter-branch has a glut of gotchas generating mangled history
>  	 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.
> +	 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"
>
> base-commit: e4d83eee9239207622e2b1cc43967da5051c189c