]> git.ipfire.org Git - thirdparty/git.git/blame - t/t1513-rev-parse-prefix.sh
Doc: no midx and partial clone relation
[thirdparty/git.git] / t / t1513-rev-parse-prefix.sh
CommitLineData
12b9d327
JK
1#!/bin/sh
2
3test_description='Tests for rev-parse --prefix'
4
06d53148 5GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
334afbc7
JS
6export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
7
12b9d327
JK
8. ./test-lib.sh
9
10test_expect_success 'setup' '
11 mkdir -p sub1/sub2 &&
12 echo top >top &&
13 echo file1 >sub1/file1 &&
14 echo file2 >sub1/sub2/file2 &&
15 git add top sub1/file1 sub1/sub2/file2 &&
16 git commit -m commit
17'
18
19test_expect_success 'empty prefix -- file' '
20 git rev-parse --prefix "" -- top sub1/file1 >actual &&
21 cat <<-\EOF >expected &&
22 --
23 top
24 sub1/file1
25 EOF
26 test_cmp expected actual
27'
28
29test_expect_success 'valid prefix -- file' '
30 git rev-parse --prefix sub1/ -- file1 sub2/file2 >actual &&
31 cat <<-\EOF >expected &&
32 --
33 sub1/file1
34 sub1/sub2/file2
35 EOF
36 test_cmp expected actual
37'
38
39test_expect_success 'valid prefix -- ../file' '
40 git rev-parse --prefix sub1/ -- ../top sub2/file2 >actual &&
41 cat <<-\EOF >expected &&
42 --
43 sub1/../top
44 sub1/sub2/file2
45 EOF
46 test_cmp expected actual
47'
48
49test_expect_success 'empty prefix HEAD:./path' '
50 git rev-parse --prefix "" HEAD:./top >actual &&
51 git rev-parse HEAD:top >expected &&
52 test_cmp expected actual
53'
54
55test_expect_success 'valid prefix HEAD:./path' '
56 git rev-parse --prefix sub1/ HEAD:./file1 >actual &&
57 git rev-parse HEAD:sub1/file1 >expected &&
58 test_cmp expected actual
59'
60
61test_expect_success 'valid prefix HEAD:../path' '
62 git rev-parse --prefix sub1/ HEAD:../top >actual &&
63 git rev-parse HEAD:top >expected &&
64 test_cmp expected actual
65'
66
67test_expect_success 'prefix ignored with HEAD:top' '
68 git rev-parse --prefix sub1/ HEAD:top >actual &&
69 git rev-parse HEAD:top >expected &&
70 test_cmp expected actual
71'
72
73test_expect_success 'disambiguate path with valid prefix' '
74 git rev-parse --prefix sub1/ file1 >actual &&
75 cat <<-\EOF >expected &&
76 sub1/file1
77 EOF
78 test_cmp expected actual
79'
80
81test_expect_success 'file and refs with prefix' '
06d53148 82 git rev-parse --prefix sub1/ main file1 >actual &&
12b9d327 83 cat <<-EOF >expected &&
06d53148 84 $(git rev-parse main)
12b9d327
JK
85 sub1/file1
86 EOF
87 test_cmp expected actual
88'
89
90test_expect_success 'two-levels deep' '
91 git rev-parse --prefix sub1/sub2/ -- file2 >actual &&
92 cat <<-\EOF >expected &&
93 --
94 sub1/sub2/file2
95 EOF
96 test_cmp expected actual
97'
98
99test_done