]> git.ipfire.org Git - thirdparty/git.git/blame - t/t2008-checkout-subdir.sh
path.c: don't call the match function without value in trie_find()
[thirdparty/git.git] / t / t2008-checkout-subdir.sh
CommitLineData
fed1b5ca
DS
1#!/bin/sh
2#
3# Copyright (c) 2007 David Symonds
4
5test_description='git checkout from subdirectories'
6
7. ./test-lib.sh
8
9test_expect_success setup '
10
11 echo "base" > file0 &&
12 git add file0 &&
13 mkdir dir1 &&
14 echo "hello" > dir1/file1 &&
15 git add dir1/file1 &&
16 mkdir dir2 &&
17 echo "bonjour" > dir2/file2 &&
18 git add dir2/file2 &&
19 test_tick &&
20 git commit -m "populate tree"
21
22'
23
24test_expect_success 'remove and restore with relative path' '
25
26 (
27 cd dir1 &&
28 rm ../file0 &&
29 git checkout HEAD -- ../file0 &&
30 test "base" = "$(cat ../file0)" &&
31 rm ../dir2/file2 &&
32 git checkout HEAD -- ../dir2/file2 &&
33 test "bonjour" = "$(cat ../dir2/file2)" &&
34 rm ../file0 ./file1 &&
35 git checkout HEAD -- .. &&
36 test "base" = "$(cat ../file0)" &&
37 test "hello" = "$(cat file1)"
38 )
39
40'
41
42test_expect_success 'checkout with empty prefix' '
43
44 rm file0 &&
45 git checkout HEAD -- file0 &&
46 test "base" = "$(cat file0)"
47
48'
49
50test_expect_success 'checkout with simple prefix' '
51
52 rm dir1/file1 &&
53 git checkout HEAD -- dir1 &&
54 test "hello" = "$(cat dir1/file1)" &&
55 rm dir1/file1 &&
56 git checkout HEAD -- dir1/file1 &&
57 test "hello" = "$(cat dir1/file1)"
58
59'
60
b0afc026
SB
61test_expect_success 'checkout with complex relative path' '
62 (
63 cd dir1 &&
64 rm file1 &&
65 git checkout HEAD -- ../dir1/../dir1/file1 &&
66 test "hello" = "$(cat file1)"
67 )
fed1b5ca
DS
68'
69
41ac414e 70test_expect_success 'relative path outside tree should fail' \
74359821 71 'test_must_fail git checkout HEAD -- ../../Makefile'
fed1b5ca 72
41ac414e 73test_expect_success 'incorrect relative path to file should fail (1)' \
74359821 74 'test_must_fail git checkout HEAD -- ../file0'
fed1b5ca 75
41ac414e 76test_expect_success 'incorrect relative path should fail (2)' \
74359821 77 '( cd dir1 && test_must_fail git checkout HEAD -- ./file0 )'
fed1b5ca 78
41ac414e 79test_expect_success 'incorrect relative path should fail (3)' \
74359821 80 '( cd dir1 && test_must_fail git checkout HEAD -- ../../file0 )'
fed1b5ca
DS
81
82test_done