diff options
author | Matthieu Moy <Matthieu.Moy@imag.fr> | 2009-12-30 15:45:31 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-12-31 14:52:05 -0800 |
commit | 6e8f993a5a17f71edfd26a026bbc83cbbd3c0638 (patch) | |
tree | 538b54ada8806479fd013931a10f1774f99499d7 | |
parent | e97ca7f41f2b9bbdfc93d103c3f64337bb6dcc20 (diff) | |
download | git-6e8f993a5a17f71edfd26a026bbc83cbbd3c0638.tar.gz |
branch: die explicitly why when calling "git branch [-a|-r] branchname".
The -a and -r options used to be silently ignored in such a command.
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | builtin-branch.c | 6 | ||||
-rwxr-xr-x | t/t5403-post-checkout-hook.sh | 26 |
2 files changed, 17 insertions, 15 deletions
diff --git a/builtin-branch.c b/builtin-branch.c index 4b4abfd363..7dd51d1fed 100644 --- a/builtin-branch.c +++ b/builtin-branch.c @@ -582,10 +582,12 @@ int cmd_branch(int argc, const char **argv, const char *prefix) 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 (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, force_create, reflog, track); - else + } else usage_with_options(builtin_branch_usage, options); return 0; diff --git a/t/t5403-post-checkout-hook.sh b/t/t5403-post-checkout-hook.sh index 9b2e1a94c5..a7bef9371f 100755 --- a/t/t5403-post-checkout-hook.sh +++ b/t/t5403-post-checkout-hook.sh @@ -7,19 +7,19 @@ test_description='Test the post-checkout hook.' . ./test-lib.sh test_expect_success setup ' - echo Data for commit0. >a && - echo Data for commit0. >b && - git update-index --add a && - git update-index --add b && - tree0=$(git write-tree) && - commit0=$(echo setup | git commit-tree $tree0) && - git update-ref refs/heads/master $commit0 && - git clone ./. clone1 && - git clone ./. clone2 && - GIT_DIR=clone2/.git git branch -a new2 && - echo Data for commit1. >clone2/b && - GIT_DIR=clone2/.git git add clone2/b && - GIT_DIR=clone2/.git git commit -m new2 + echo Data for commit0. >a && + echo Data for commit0. >b && + git update-index --add a && + git update-index --add b && + tree0=$(git write-tree) && + commit0=$(echo setup | git commit-tree $tree0) && + git update-ref refs/heads/master $commit0 && + git clone ./. clone1 && + git clone ./. clone2 && + GIT_DIR=clone2/.git git branch new2 && + echo Data for commit1. >clone2/b && + GIT_DIR=clone2/.git git add clone2/b && + GIT_DIR=clone2/.git git commit -m new2 ' for clone in 1 2; do |