[PATCH] branch -m: handle no arg properly
- From
Tay Ray Chuan <rctay89@gmail.com>
- Date
- Nov 2, 2011, 15:01 UTC
- Message-ID
- <1320246098-6912-1-git-send-email-rctay89@gmail.com>
- In-Reply-To
- <4EB153B4.6070404@atlas-elektronik.com>
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.
Reported-by: Stefan Näwe <stefan.naewe@atlas-elektronik.com> Signed-off-by: Tay Ray Chuan <rctay89@gmail.com> --- builtin/branch.c | 13 ++++++++----- t/t3200-branch.sh | 4 ++++ 2 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/builtin/branch.c b/builtin/branch.c index 009b713..ebda8e7 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 + die(_("new branch not specified for -m|--move")); + } 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, diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh index 2f5eada..78587fe 100755 --- a/t/t3200-branch.sh +++ b/t/t3200-branch.sh @@ -75,6 +75,10 @@ test_expect_success \ git branch l' test_expect_success \ + 'git branch -m with no arg fails' \ + 'test_must_fail git branch -m' + +test_expect_success \ 'git branch -m m m/m should work' \ 'git branch -l m && git branch -m m m/m &&
-- 1.7.7.1.599.g03eec