Re: [NEW REPLACEMENT PATCH] git-checkout: Add a test case for relative paths use.
Hi,
just a few nitpicks:
On Fri, 9 Nov 2007, David Symonds wrote:
Show 8 quoted lines
> +test_expect_success setup '
> +
> + echo base > file0 &&
> + git add file0 &&
> + mkdir dir1 &&
> + echo hello > dir1/file1 &&
> + git add dir1/file1 &&
> + test_tick &&
please move the test_tick directly in front of the commit. Readers might assume that it has an effect on mkdir otherwise.
Show 6 quoted lines
> + mkdir dir2 &&
> + echo bonjour > dir2/file2 &&
> + git add dir2/file2 &&
> + git commit -m "populate tree"
> +
> +'
Please lose the empty line before the closing quote. (This applies to all tests.)
Show 16 quoted lines
> +test_expect_success 'remove and restore with relative path' '
> +
> + cd dir1 &&
> + rm ../file0 &&
> + git checkout HEAD -- ../file0 && test -f ../file0 &&
> + rm ../dir2/file2 &&
> + git checkout HEAD -- ../dir2/file2 && test -f ../dir2/file2 &&
> + rm ../file0 ./file1 &&
> + git checkout HEAD -- .. && test -f ../file0 && test -f ./file1 &&
> + rm file1 &&
> + git checkout HEAD -- ../dir1/../dir1/file1 && test -f ./file1
> +
> +'
> +
> +test_expect_failure 'checkout with relative path outside tree should fail (1)' \
> + 'git checkout HEAD -- ../file0'
Maybe do that with an existing file? Since the test script lives in t/, and the test is run in t/trash/, we can test for "../Makefile".
Also, I would shorten the message to "relative path outside tree should fail".
> +test_expect_failure 'checkout with relative path outside tree should fail (2)' \
> + 'cd dir1 && git checkout HEAD -- ./file0'
I am not convinced that this should fail.
> +test_expect_failure 'checkout with relative path outside tree should fail (2)' \
> + 'cd dir1 && git checkout HEAD -- ../../file0'
Please add some other test like
test_expect_success 'checkout with empty prefix' '
rm file0 &&
git checkout HEAD -- file0 &&
test base = "$(cat file0)"
'
Thanks, Dscho