Code

Merge "checkout ambiguous ref bugfix" into maint
authorJunio C Hamano <gitster@pobox.com>
Fri, 1 Apr 2011 23:16:23 +0000 (16:16 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 1 Apr 2011 23:16:51 +0000 (16:16 -0700)
* commit '0cb6ad3':
  checkout: fix bug with ambiguous refs

1  2 
builtin/checkout.c
t/t2019-checkout-ambiguous-ref.sh

Simple merge
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..943541d40d7ea331dd0ae85624a33b9f2258246c
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,59 @@@
++#!/bin/sh
++
++test_description='checkout handling of ambiguous (branch/tag) refs'
++. ./test-lib.sh
++
++test_expect_success 'setup ambiguous refs' '
++      test_commit branch file &&
++      git branch ambiguity &&
++      git branch vagueness &&
++      test_commit tag file &&
++      git tag ambiguity &&
++      git tag vagueness HEAD:file &&
++      test_commit other file
++'
++
++test_expect_success 'checkout ambiguous ref succeeds' '
++      git checkout ambiguity >stdout 2>stderr
++'
++
++test_expect_success 'checkout produces ambiguity warning' '
++      grep "warning.*ambiguous" stderr
++'
++
++test_expect_success 'checkout chooses branch over tag' '
++      echo refs/heads/ambiguity >expect &&
++      git symbolic-ref HEAD >actual &&
++      test_cmp expect actual &&
++      echo branch >expect &&
++      test_cmp expect file
++'
++
++test_expect_success 'checkout reports switch to branch' '
++      grep "Switched to branch" stderr &&
++      ! grep "^HEAD is now at" stderr
++'
++
++test_expect_success 'checkout vague ref succeeds' '
++      git checkout vagueness >stdout 2>stderr &&
++      test_set_prereq VAGUENESS_SUCCESS
++'
++
++test_expect_success VAGUENESS_SUCCESS 'checkout produces ambiguity warning' '
++      grep "warning.*ambiguous" stderr
++'
++
++test_expect_success VAGUENESS_SUCCESS 'checkout chooses branch over tag' '
++      echo refs/heads/vagueness >expect &&
++      git symbolic-ref HEAD >actual &&
++      test_cmp expect actual &&
++      echo branch >expect &&
++      test_cmp expect file
++'
++
++test_expect_success VAGUENESS_SUCCESS 'checkout reports switch to branch' '
++      grep "Switched to branch" stderr &&
++      ! grep "^HEAD is now at" stderr
++'
++
++test_done