Subject: Re: [PATCH] branch: Remove unnecessary verbose flag

From: Junio C Hamano <[email-masked]>
Date: Fri, 26 Dec 2025 13:15:54 +0900

K Jayatheerth <[email-masked]> 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 <[email-masked]>
> ---
>  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.