Message ID | 20250310231652.3742490-5-gitster@pobox.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | drop "name-rev --stdin" support | expand |
On Mon, Mar 10, 2025 at 04:16:52PM -0700, Junio C Hamano wrote: > diff --git a/builtin/name-rev.c b/builtin/name-rev.c > index beac166b5c..3f49138551 100644 > --- a/builtin/name-rev.c > +++ b/builtin/name-rev.c > @@ -578,11 +578,13 @@ int cmd_name_rev(int argc, > N_("ignore refs matching <pattern>")), > OPT_GROUP(""), > OPT_BOOL(0, "all", &all, N_("list all commits reachable from all refs")), > +#ifndef WITH_BREAKING_CHANGES > OPT_BOOL_F(0, > "stdin", > &transform_stdin, > N_("deprecated: use --annotate-stdin instead"), > PARSE_OPT_HIDDEN), > +#endif /* WITH_BREAKING_CHANGES */ > OPT_BOOL(0, "annotate-stdin", &annotate_stdin, N_("annotate text from stdin")), > OPT_BOOL(0, "undefined", &allow_undefined, N_("allow to print `undefined` names (default)")), > OPT_BOOL(0, "always", &always, I was wondering whether we should also #ifdef `transform_stdin` and its single user to more closely reflect what we would have once the feature is fully removed. Patrick
Patrick Steinhardt <ps@pks.im> writes: > On Mon, Mar 10, 2025 at 04:16:52PM -0700, Junio C Hamano wrote: >> diff --git a/builtin/name-rev.c b/builtin/name-rev.c >> index beac166b5c..3f49138551 100644 >> --- a/builtin/name-rev.c >> +++ b/builtin/name-rev.c >> @@ -578,11 +578,13 @@ int cmd_name_rev(int argc, >> N_("ignore refs matching <pattern>")), >> OPT_GROUP(""), >> OPT_BOOL(0, "all", &all, N_("list all commits reachable from all refs")), >> +#ifndef WITH_BREAKING_CHANGES >> OPT_BOOL_F(0, >> "stdin", >> &transform_stdin, >> N_("deprecated: use --annotate-stdin instead"), >> PARSE_OPT_HIDDEN), >> +#endif /* WITH_BREAKING_CHANGES */ >> OPT_BOOL(0, "annotate-stdin", &annotate_stdin, N_("annotate text from stdin")), >> OPT_BOOL(0, "undefined", &allow_undefined, N_("allow to print `undefined` names (default)")), >> OPT_BOOL(0, "always", &always, > > I was wondering whether we should also #ifdef `transform_stdin` and its > single user to more closely reflect what we would have once the feature > is fully removed. Absolutely. That's a great point. Thanks.
diff --git a/Documentation/BreakingChanges.adoc b/Documentation/BreakingChanges.adoc index bdfad29d8a..61bdd586b9 100644 --- a/Documentation/BreakingChanges.adoc +++ b/Documentation/BreakingChanges.adoc @@ -178,6 +178,12 @@ references. + These features will be removed. +* Support for "--stdin" option in the "name-rev" command was + deprecated (and hidden from the documentation) in the Git 2.40 + timeframe, in preference to its synonym "--annotate-stdin". Git 3.0 + removes the support for "--stdin" altogether. + + == Superseded features that will not be deprecated Some features have gained newer replacements that aim to improve the design in diff --git a/builtin/name-rev.c b/builtin/name-rev.c index beac166b5c..3f49138551 100644 --- a/builtin/name-rev.c +++ b/builtin/name-rev.c @@ -578,11 +578,13 @@ int cmd_name_rev(int argc, N_("ignore refs matching <pattern>")), OPT_GROUP(""), OPT_BOOL(0, "all", &all, N_("list all commits reachable from all refs")), +#ifndef WITH_BREAKING_CHANGES OPT_BOOL_F(0, "stdin", &transform_stdin, N_("deprecated: use --annotate-stdin instead"), PARSE_OPT_HIDDEN), +#endif /* WITH_BREAKING_CHANGES */ OPT_BOOL(0, "annotate-stdin", &annotate_stdin, N_("annotate text from stdin")), OPT_BOOL(0, "undefined", &allow_undefined, N_("allow to print `undefined` names (default)")), OPT_BOOL(0, "always", &always, diff --git a/t/t6120-describe.sh b/t/t6120-describe.sh index 71e261394a..256ccaefb7 100755 --- a/t/t6120-describe.sh +++ b/t/t6120-describe.sh @@ -300,8 +300,14 @@ test_expect_success 'name-rev --annotate-stdin' ' test_expect_success 'name-rev --stdin deprecated' ' git rev-list --all >list && - git name-rev --stdin <list 2>actual && - test_grep "warning: --stdin is deprecated" actual + if ! test_have_prereq WITH_BREAKING_CHANGES + then + git name-rev --stdin <list 2>actual && + test_grep "warning: --stdin is deprecated" actual + else + test_must_fail git name-rev --stdin <list 2>actual && + test_grep "unknown option .stdin." actual + fi ' test_expect_success 'describe --contains with the exact tags' '
As part of Git 3.0, remove the hidden synonym for "--annotate-stdin" for real. As this does not change the fact that it used to be called "--stdin" in older version of Git, keep that passage in the documentation for "--annotate-stdin". Signed-off-by: Junio C Hamano <gitster@pobox.com> --- Documentation/BreakingChanges.adoc | 6 ++++++ builtin/name-rev.c | 2 ++ t/t6120-describe.sh | 10 ++++++++-- 3 files changed, 16 insertions(+), 2 deletions(-)