Revision ec82874ad47627a44b6b22a6645551a214293711 authored by Junio C Hamano on 15 December 2010, 19:27:41 UTC, committed by Junio C Hamano on 15 December 2010, 19:27:41 UTC
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 parent s d8e3ac7 + 88fcc52
Raw File
t2010-checkout-ambiguous.sh
#!/bin/sh

test_description='checkout and pathspecs/refspecs ambiguities'

. ./test-lib.sh

test_expect_success 'setup' '
	echo hello >world &&
	echo hello >all &&
	git add all world &&
	git commit -m initial &&
	git branch world
'

test_expect_success 'reference must be a tree' '
	test_must_fail git checkout $(git hash-object ./all) --
'

test_expect_success 'branch switching' '
	test "refs/heads/master" = "$(git symbolic-ref HEAD)" &&
	git checkout world -- &&
	test "refs/heads/world" = "$(git symbolic-ref HEAD)"
'

test_expect_success 'checkout world from the index' '
	echo bye > world &&
	git checkout -- world &&
	git diff --exit-code --quiet
'

test_expect_success 'non ambiguous call' '
	git checkout all
'

test_expect_success 'allow the most common case' '
	git checkout world &&
	test "refs/heads/world" = "$(git symbolic-ref HEAD)"
'

test_expect_success 'check ambiguity' '
	test_must_fail git checkout world all
'

test_expect_success 'disambiguate checking out from a tree-ish' '
	echo bye > world &&
	git checkout world -- world &&
	git diff --exit-code --quiet
'

test_done
back to top