Subject: Re: [PATCH] branch -m: handle no arg properly

From: Tay Ray Chuan <[email-masked]>
Date: Thu, 3 Nov 2011 00:17:12 +0800

On Wed, 02 Nov 2011 16:09:20 +0100
Stefan Näwe <[email-masked]> wrote:

> Am 02.11.2011 16:01, schrieb Tay Ray Chuan:
> > Modify the option parsing heuristic to handle all -m (rename) cases,
> > including the no-arg case. Previously, this "fell through" to the argc
> > <= 2 case.
> > 
> > Add a regression test in t3200-branch.sh while we're at it.
> 
> Great. I just sent a patch for t3200 as well...

Hmm, yeah, printing usage is a good idea.

Popped my change to t3200 as well, yours looks better. :)

-->8--

Subject: [PATCH] branch -m: handle no arg properly

Modify the option parsing heuristic to handle all -m (rename) cases,
including the no-arg case. Previously, this "fell through" to the argc
<= 2 case.

Reported-by: Stefan Näwe <[email-masked]>
Signed-off-by: Tay Ray Chuan <[email-masked]>
---
 builtin/branch.c |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/builtin/branch.c b/builtin/branch.c
index 009b713..51ca6a0 100644
--- a/builtin/branch.c
+++ b/builtin/branch.c
@@ -719,11 +719,14 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
 	else if (list)
 		return print_ref_list(kinds, detached, verbose, abbrev,
 				      with_commit, argv);
-	else if (rename && (argc == 1))
-		rename_branch(head, argv[0], rename > 1);
-	else if (rename && (argc == 2))
-		rename_branch(argv[0], argv[1], rename > 1);
-	else if (argc <= 2) {
+	else if (rename) {
+		if (argc == 1)
+			rename_branch(head, argv[0], rename > 1);
+		else if (argc == 2)
+			rename_branch(argv[0], argv[1], rename > 1);
+		else
+			usage_with_options(builtin_branch_usage, options);
+	} else if (argc <= 2) {
 		if (kinds != REF_LOCAL_BRANCH)
 			die(_("-a and -r options to 'git branch' do not make sense with a branch name"));
 		create_branch(head, argv[0], (argc == 2) ? argv[1] : head,
-- 
1.7.7.1.599.g03eec

--
Cheers,
Ray Chuan