diff mbox series

[v1,4/4] name-rev: remove "--stdin" support

Message ID 20250310231652.3742490-5-gitster@pobox.com (mailing list archive)
State Superseded
Headers show
Series drop "name-rev --stdin" support | expand

Commit Message

Junio C Hamano March 10, 2025, 11:16 p.m. UTC
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(-)

Comments

Patrick Steinhardt March 11, 2025, 12:57 p.m. UTC | #1
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
Junio C Hamano March 11, 2025, 5:07 p.m. UTC | #2
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 mbox series

Patch

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' '