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@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Tay Ray Chuan <rctay89@xxxxxxxxx> --- 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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html