git-checkout: Add a test case for relative paths use.
PATCH 1/1 git-checkout: Add a test case for relative paths use.
Signed-off-by David Symonds <[email protected]>
--- t/t2008-checkout-subdir.sh | 36 ++++++++++++++++++++++++++++++++++++ 1 files changed, 36 insertions(+), 0 deletions(-) create mode 100755 t/t2008-checkout-subdir.sh
t/t2008-checkout-subdir.sh new file +36 -0
@@ -0,0 +1,36 @@ +#!/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 && + test_tick && + mkdir dir2 && + echo bonjour > dir2/file2 && + git add dir2/file2 && + git commit -m "populate tree" + +' + +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 + +' + +test_done
Signature · 1 line
1.5.3.1
Quoted 36 lines · David Symonds
Signed-off-by David Symonds <[email protected]>--- t/t2008-checkout-subdir.sh | 36 ++++++++++++++++++++++++++++++++++++ 1 files changed, 36 insertions(+), 0 deletions(-) create mode 100755 t/t2008-checkout-subdir.sht/t2008-checkout-subdir.sh new file +24
-0@@ -0,0 +1,36 @@ +#!/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 && + test_tick && + mkdir dir2 && + echo bonjour > dir2/file2 && + git add dir2/file2 && + git commit -m "populate tree" + +' + +test_expect_success 'remove and restore with relative path' '
t/t2008-checkout-subdir.sh line 34
Quoted 10 lines
t/t2008-checkout-subdir.sh new file +10
-0+ + 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 + +'
This is better than not having any test, but we would also want a negative test. Things like trying to check out "../file" without going down into a subdirectory, check out "../../file" in a subdirectory that is only one level deep.