1
0
mirror of https://github.com/git/git.git synced 2024-11-20 08:53:57 +01:00

Merge branch 'jc/maint-do-not-switch-to-non-commit' into maint

* jc/maint-do-not-switch-to-non-commit:
  git checkout: do not allow switching to a tree-ish that is not a commit
This commit is contained in:
Junio C Hamano 2009-01-11 23:24:42 -08:00
commit 687004b512
2 changed files with 5 additions and 1 deletions

@ -681,8 +681,8 @@ int cmd_checkout(int argc, const char **argv, const char *prefix)
argv++; argv++;
argc--; argc--;
new.name = arg;
if ((new.commit = lookup_commit_reference_gently(rev, 1))) { if ((new.commit = lookup_commit_reference_gently(rev, 1))) {
new.name = arg;
setup_branch_path(&new); setup_branch_path(&new);
if (resolve_ref(new.path, rev, 1, NULL)) if (resolve_ref(new.path, rev, 1, NULL))
new.commit = lookup_commit_reference(rev); new.commit = lookup_commit_reference(rev);

@ -10,6 +10,10 @@ test_expect_success 'setup' '
git commit -m initial git commit -m initial
' '
test_expect_success 'checkout should not start branch from a tree' '
test_must_fail git checkout -b newbranch master^{tree}
'
test_expect_success 'checkout master from invalid HEAD' ' test_expect_success 'checkout master from invalid HEAD' '
echo 0000000000000000000000000000000000000000 >.git/HEAD && echo 0000000000000000000000000000000000000000 >.git/HEAD &&
git checkout master -- git checkout master --