Staging
v0.5.2
Revision 6c293d408dbbd0206e80df3ecda7f1620cadaa94 authored by Santi Béjar on 08 March 2008, 11:30:04 UTC, committed by Junio C Hamano on 09 March 2008, 03:43:21 UTC
The "config --global" suggested in the message is a valid one-shot fix,
and hopefully one-shot across machines that NFS mounts the home directories.

This knowledge can hopefully be reused when you are forced to use git on
Windows, but the fix based on GECOS would not be applicable, so
it is not such a useful hint to mention the exact reason why the
name cannot be determined.

Signed-off-by: Santi Béjar <sbejar@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 0bb91d9
Raw File
t2008-checkout-subdir.sh
#!/bin/sh
#
# Copyright (c) 2007 David Symonds

test_description='git checkout from subdirectories'

. ./test-lib.sh

test_expect_success setup '

	echo "base" > file0 &&
	git add file0 &&
	mkdir dir1 &&
	echo "hello" > dir1/file1 &&
	git add dir1/file1 &&
	mkdir dir2 &&
	echo "bonjour" > dir2/file2 &&
	git add dir2/file2 &&
	test_tick &&
	git commit -m "populate tree"

'

test_expect_success 'remove and restore with relative path' '

	(
		cd dir1 &&
		rm ../file0 &&
		git checkout HEAD -- ../file0 &&
		test "base" = "$(cat ../file0)" &&
		rm ../dir2/file2 &&
		git checkout HEAD -- ../dir2/file2 &&
		test "bonjour" = "$(cat ../dir2/file2)" &&
		rm ../file0 ./file1 &&
		git checkout HEAD -- .. &&
		test "base" = "$(cat ../file0)" &&
		test "hello" = "$(cat file1)"
	)

'

test_expect_success 'checkout with empty prefix' '

	rm file0 &&
	git checkout HEAD -- file0 &&
	test "base" = "$(cat file0)"

'

test_expect_success 'checkout with simple prefix' '

	rm dir1/file1 &&
	git checkout HEAD -- dir1 &&
	test "hello" = "$(cat dir1/file1)" &&
	rm dir1/file1 &&
	git checkout HEAD -- dir1/file1 &&
	test "hello" = "$(cat dir1/file1)"

'

# This is not expected to work as ls-files was not designed
# to deal with such.  Enable it when ls-files is updated.
: test_expect_success 'checkout with complex relative path' '

	rm file1 &&
	git checkout HEAD -- ../dir1/../dir1/file1 && test -f ./file1

'

test_expect_success 'relative path outside tree should fail' \
	'test_must_fail git checkout HEAD -- ../../Makefile'

test_expect_success 'incorrect relative path to file should fail (1)' \
	'test_must_fail git checkout HEAD -- ../file0'

test_expect_success 'incorrect relative path should fail (2)' \
	'( cd dir1 && test_must_fail git checkout HEAD -- ./file0 )'

test_expect_success 'incorrect relative path should fail (3)' \
	'( cd dir1 && test_must_fail git checkout HEAD -- ../../file0 )'

test_done
back to top