Re: [PATCH] advice: don't pointlessly suggest --convert-graft-file
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Nov 28, 2018, 09:03 UTC
- Message-ID
- <nycvar.QRO.7.76.6.1811281001411.41@tvgsbejvaqbjf.bet>
- In-Reply-To
- <20181127201255.3529-1-avarab@gmail.com>
Hi Ævar,
On Tue, 27 Nov 2018, Ævar Arnfjörð Bjarmason wrote:
Show 39 quoted lines
> The advice to run 'git replace --convert-graft-file' added in
> f9f99b3f7d ("Deprecate support for .git/info/grafts", 2018-04-29)
> didn't add an exception for the 'git replace --convert-graft-file'
> codepath itself.
>
> As a result we'd suggest running --convert-graft-file while the user
> was running --convert-graft-file, which makes no sense. Before:
>
> $ git replace --convert-graft-file
> hint: Support for <GIT_DIR>/info/grafts is deprecated
> hint: and will be removed in a future Git version.
> hint:
> hint: Please use "git replace --convert-graft-file"
> hint: to convert the grafts into replace refs.
> hint:
> hint: Turn this message off by running
> hint: "git config advice.graftFileDeprecated false"
>
> Add a check for that case and skip printing the advice while the user
> is busy following our advice.
>
> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
> ---
> builtin/replace.c | 1 +
> t/t6050-replace.sh | 5 ++++-
> 2 files changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/builtin/replace.c b/builtin/replace.c
> index a58b9c6d13..affcdfb416 100644
> --- a/builtin/replace.c
> +++ b/builtin/replace.c
> @@ -495,6 +495,7 @@ static int convert_graft_file(int force)
> if (!fp)
> return -1;
>
> + advice_graft_file_deprecated = 0;
> while (strbuf_getline(&buf, fp) != EOF) {
> if (*buf.buf == '#')
> continue;As long as we keep this code in the one-shot code path, it is probably okay. Otherwise we'd have to save the original value and restoring it before returning from this function.
But then, we might never move `convert_graft_file()` into `libgit.a`.
Thanks, Dscho
Show 20 quoted lines
> diff --git a/t/t6050-replace.sh b/t/t6050-replace.sh > index 86374a9c52..5d6d3184ac 100755 > --- a/t/t6050-replace.sh > +++ b/t/t6050-replace.sh > @@ -461,7 +461,10 @@ test_expect_success '--convert-graft-file' ' > printf "%s\n%s %s\n\n# comment\n%s\n" \ > $(git rev-parse HEAD^^ HEAD^ HEAD^^ HEAD^2) \ > >.git/info/grafts && > - git replace --convert-graft-file && > + git status 2>stderr && > + test_i18ngrep "hint:.*grafts is deprecated" stderr && > + git replace --convert-graft-file 2>stderr && > + test_i18ngrep ! "hint:.*grafts is deprecated" stderr && > test_path_is_missing .git/info/grafts && > > : verify that the history is now "grafted" && > -- > 2.20.0.rc1.379.g1dd7ef354c > >