git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Why git branch --show-current ignores -v?
@ 2025-12-25 16:08 Sergey Organov
  2025-12-26  2:09 ` Junio C Hamano
  0 siblings, 1 reply; 6+ messages in thread
From: Sergey Organov @ 2025-12-25 16:08 UTC (permalink / raw)
  To: git

Hello,

It looks useful and natural for "git branch --show-current -v[v]" to
verbosely describe current branch, similar to what --list does. Is there
sound reason why -v is not supported by --show-current?

Thanks,
-- Sergey Organov


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Why git branch --show-current ignores -v?
  2025-12-25 16:08 Why git branch --show-current ignores -v? Sergey Organov
@ 2025-12-26  2:09 ` Junio C Hamano
  2025-12-26  2:11   ` Junio C Hamano
  2025-12-26 15:43   ` Why git branch --show-current ignores -v? Sergey Organov
  0 siblings, 2 replies; 6+ messages in thread
From: Junio C Hamano @ 2025-12-26  2:09 UTC (permalink / raw)
  To: Sergey Organov; +Cc: git

Sergey Organov <sorganov@gmail.com> writes:

> It looks useful and natural for "git branch --show-current -v[v]" to
> verbosely describe current branch, similar to what --list does. Is there
> sound reason why -v is not supported by --show-current?

The "--show-current" feature was invented merely for those who
somehow found it ugly to use "git symbolic-ref HEAD" when a user
wants to learn what the current branch was.  If I have to guess,
nobody thought about it as a way to get the same output as "--list"
but restricted to the single current branch.  Hence nobody felt the
need to support any option that the "--list" operation supported,
including "-v".  IOW, nobody shared your "It looks useful" so far,
especially among the people who knew where the "--show-current"
option came from.

I do not think anybody terribly objects if somebody teaches "-v" to
make "git branch --show-current" more verbose, and other "--list"
operations in general, but I suspect that the exact contents in the
verbose output may have to be different from that of "--list".  For
one thing, as "--show-current" limits its output to the current
branch, the two-place indent "git branch --list" gives its output is
not there, and "-v" would probably not want to add it.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Why git branch --show-current ignores -v?
  2025-12-26  2:09 ` Junio C Hamano
@ 2025-12-26  2:11   ` Junio C Hamano
  2025-12-26  3:28     ` [PATCH] branch: Remove unnecessary verbose flag K Jayatheerth
  2025-12-26 15:43   ` Why git branch --show-current ignores -v? Sergey Organov
  1 sibling, 1 reply; 6+ messages in thread
From: Junio C Hamano @ 2025-12-26  2:11 UTC (permalink / raw)
  To: Sergey Organov; +Cc: git

Junio C Hamano <gitster@pobox.com> writes:

> Sergey Organov <sorganov@gmail.com> writes:
>
>> It looks useful and natural for "git branch --show-current -v[v]" to
>> verbosely describe current branch, similar to what --list does. Is there
>> sound reason why -v is not supported by --show-current?
>
> The "--show-current" feature was invented merely for those who
> somehow found it ugly to use "git symbolic-ref HEAD" when a user
> wants to learn what the current branch was.  If I have to guess,
> nobody thought about it as a way to get the same output as "--list"
> but restricted to the single current branch.  Hence nobody felt the
> need to support any option that the "--list" operation supported,
> including "-v".  IOW, nobody shared your "It looks useful" so far,
> especially among the people who knew where the "--show-current"
> option came from.
>
> I do not think anybody terribly objects if somebody teaches "-v" to
> make "git branch --show-current" more verbose, and other "--list"
> operations in general, but I suspect that the exact contents in the
> verbose output may have to be different from that of "--list".  For
> one thing, as "--show-current" limits its output to the current
> branch, the two-place indent "git branch --list" gives its output is
> not there, and "-v" would probably not want to add it.

Forgot to say something much more important.  

Commands should complain when users give them input that they do not
understand.  If "git branch --show-current -v" silently eats "-v", I
would say it is a bug.

Unless we define that the current output is already verbose, that
is.

Thanks.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH] branch: Remove unnecessary verbose flag
  2025-12-26  2:11   ` Junio C Hamano
@ 2025-12-26  3:28     ` K Jayatheerth
  2025-12-26  4:15       ` Junio C Hamano
  0 siblings, 1 reply; 6+ messages in thread
From: K Jayatheerth @ 2025-12-26  3:28 UTC (permalink / raw)
  To: gitster; +Cc: git, sorganov, K Jayatheerth

The --show-current option doesn't know how to handle verbose
logic. In such a case, we want the program to die when both flags
are used together.

Signed-off-by: K Jayatheerth <jayatheerthkulkarni2005@gmail.com>
---
 builtin/branch.c  | 2 ++
 t/t3200-branch.sh | 4 ++++
 2 files changed, 6 insertions(+)

diff --git a/builtin/branch.c b/builtin/branch.c
index c577b5d20f..433c213dc0 100644
--- a/builtin/branch.c
+++ b/builtin/branch.c
@@ -860,6 +860,8 @@ int cmd_branch(int argc,
 		ret = delete_branches(argc, argv, delete > 1, filter.kind, quiet);
 		goto out;
 	} else if (show_current) {
+		if (filter.verbose)
+			die(_("options '%s' and '%s' cannot be used together"), "--show-current", "-v");
 		print_current_branch_name();
 		ret = 0;
 		goto out;
diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh
index c58e505c43..5bb49de9c2 100755
--- a/t/t3200-branch.sh
+++ b/t/t3200-branch.sh
@@ -1716,4 +1716,8 @@ test_expect_success 'errors if given a bad branch name' '
 	test_cmp expect actual
 '
 
+test_expect_success 'git branch --show-current rejects -v' '
+	test_must_fail git branch --show-current -v
+'
+
 test_done
-- 
2.52.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] branch: Remove unnecessary verbose flag
  2025-12-26  3:28     ` [PATCH] branch: Remove unnecessary verbose flag K Jayatheerth
@ 2025-12-26  4:15       ` Junio C Hamano
  0 siblings, 0 replies; 6+ messages in thread
From: Junio C Hamano @ 2025-12-26  4:15 UTC (permalink / raw)
  To: K Jayatheerth; +Cc: git, sorganov

K Jayatheerth <jayatheerthkulkarni2005@gmail.com> writes:

> The --show-current option doesn't know how to handle verbose
> logic. In such a case, we want the program to die when both flags
> are used together.
>
> Signed-off-by: K Jayatheerth <jayatheerthkulkarni2005@gmail.com>
> ---
>  builtin/branch.c  | 2 ++
>  t/t3200-branch.sh | 4 ++++
>  2 files changed, 6 insertions(+)
>
> diff --git a/builtin/branch.c b/builtin/branch.c
> index c577b5d20f..433c213dc0 100644
> --- a/builtin/branch.c
> +++ b/builtin/branch.c
> @@ -860,6 +860,8 @@ int cmd_branch(int argc,
>  		ret = delete_branches(argc, argv, delete > 1, filter.kind, quiet);
>  		goto out;
>  	} else if (show_current) {
> +		if (filter.verbose)
> +			die(_("options '%s' and '%s' cannot be used together"), "--show-current", "-v");
>  		print_current_branch_name();
>  		ret = 0;
>  		goto out;
> diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh
> index c58e505c43..5bb49de9c2 100755
> --- a/t/t3200-branch.sh
> +++ b/t/t3200-branch.sh
> @@ -1716,4 +1716,8 @@ test_expect_success 'errors if given a bad branch name' '
>  	test_cmp expect actual
>  '
>  
> +test_expect_success 'git branch --show-current rejects -v' '
> +	test_must_fail git branch --show-current -v
> +'
> +
>  test_done

Thanks.

This is certainly an improvement over status quo.

Ideally, however, if you say

    git branch -v -q --show-current

shouldn't it also barf?  IOW, checking the end state (i.e.
filter.verbose being zero) is one thing, but to do a good job, we
probably should check how we got to the end state.

Since that would require a far larger change without a tangible
benefit, I'd say the posted patch that checks only the end state is
good enough for now.

Will queue.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Why git branch --show-current ignores -v?
  2025-12-26  2:09 ` Junio C Hamano
  2025-12-26  2:11   ` Junio C Hamano
@ 2025-12-26 15:43   ` Sergey Organov
  1 sibling, 0 replies; 6+ messages in thread
From: Sergey Organov @ 2025-12-26 15:43 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Junio C Hamano <gitster@pobox.com> writes:

> Sergey Organov <sorganov@gmail.com> writes:
>
>> It looks useful and natural for "git branch --show-current -v[v]" to
>> verbosely describe current branch, similar to what --list does. Is there
>> sound reason why -v is not supported by --show-current?
>

[...]

> I do not think anybody terribly objects if somebody teaches "-v" to
> make "git branch --show-current" more verbose, and other "--list"
> operations in general, but I suspect that the exact contents in the
> verbose output may have to be different from that of "--list".  For
> one thing, as "--show-current" limits its output to the current
> branch, the two-place indent "git branch --list" gives its output is
> not there, and "-v" would probably not want to add it.

Yep, I didn't mean to suggest exactly the same format and contents,
though just reproducing the --list won't hurt either.

The actual use-case was to quickly figure the upstream branch and
relative status of the current one, and

    git br --show-current -vv

just looked more natural for the job at hand than something like

    git br -lvv master

that besides is not exactly the same, and then the following one is
kinda overkill for manual use)))

    git br -lvv `git br --show-current`

That suddenly gets me to why Git has no synonym for the current branch
in the first place? No @HEAD or @@?

   git br -lvv @@

is pretty-looking perl'y that unfortunately doesn't work.

Thanks,
Sergey Organov

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2025-12-26 15:43 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-25 16:08 Why git branch --show-current ignores -v? Sergey Organov
2025-12-26  2:09 ` Junio C Hamano
2025-12-26  2:11   ` Junio C Hamano
2025-12-26  3:28     ` [PATCH] branch: Remove unnecessary verbose flag K Jayatheerth
2025-12-26  4:15       ` Junio C Hamano
2025-12-26 15:43   ` Why git branch --show-current ignores -v? Sergey Organov

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 NNTP newsgroup(s).