Skip to content

Commit 6fd09f5

Browse files
pcloudsgitster
authored andcommitted
t3703, t4208: add test cases for magic pathspec
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 0e539dc commit 6fd09f5

3 files changed

Lines changed: 93 additions & 0 deletions

File tree

Documentation/glossary-content.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,9 @@ top `/`;;
324324
Currently only the slash `/` is recognized as the "magic signature",
325325
but it is envisioned that we will support more types of magic in later
326326
versions of git.
327+
+
328+
A pathspec with only a colon means "there is no pathspec". This form
329+
should not be combined with other pathspec.
327330

328331
[[def_parent]]parent::
329332
A <<def_commit_object,commit object>> contains a (possibly empty) list

t/t3703-add-magic-pathspec.sh

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
#!/bin/sh
2+
3+
test_description='magic pathspec tests using git-add'
4+
5+
. ./test-lib.sh
6+
7+
test_expect_success 'setup' '
8+
mkdir sub anothersub &&
9+
: >sub/foo &&
10+
: >anothersub/foo
11+
'
12+
13+
test_expect_success 'add :/' "
14+
cat >expected <<-EOF &&
15+
add 'anothersub/foo'
16+
add 'expected'
17+
add 'sub/actual'
18+
add 'sub/foo'
19+
EOF
20+
(cd sub && git add -n :/ >actual) &&
21+
test_cmp expected sub/actual
22+
"
23+
24+
cat >expected <<EOF
25+
add 'anothersub/foo'
26+
EOF
27+
28+
test_expect_success 'add :/anothersub' '
29+
(cd sub && git add -n :/anothersub >actual) &&
30+
test_cmp expected sub/actual
31+
'
32+
33+
test_expect_success 'add :/non-existent' '
34+
(cd sub && test_must_fail git add -n :/non-existent)
35+
'
36+
37+
cat >expected <<EOF
38+
add 'sub/foo'
39+
EOF
40+
41+
test_expect_success 'a file with the same (long) magic name exists' '
42+
: >":(icase)ha" &&
43+
test_must_fail git add -n ":(icase)ha" &&
44+
git add -n "./:(icase)ha"
45+
'
46+
47+
test_expect_success 'a file with the same (short) magic name exists' '
48+
mkdir ":" &&
49+
: >":/bar" &&
50+
test_must_fail git add -n :/bar &&
51+
git add -n "./:/bar"
52+
'
53+
54+
test_done

t/t4208-log-magic-pathspec.sh

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#!/bin/sh
2+
3+
test_description='magic pathspec tests using git-log'
4+
5+
. ./test-lib.sh
6+
7+
test_expect_success 'setup' '
8+
test_commit initial &&
9+
test_tick &&
10+
git commit --allow-empty -m empty &&
11+
mkdir sub
12+
'
13+
14+
test_expect_success '"git log :/" should be ambiguous' '
15+
test_must_fail git log :/ 2>error &&
16+
grep ambiguous error
17+
'
18+
19+
test_expect_success '"git log :" should be ambiguous' '
20+
test_must_fail git log : 2>error &&
21+
grep ambiguous error
22+
'
23+
24+
test_expect_success 'git log -- :' '
25+
git log -- :
26+
'
27+
28+
test_expect_success 'git log HEAD -- :/' '
29+
cat >expected <<-EOF &&
30+
24b24cf initial
31+
EOF
32+
(cd sub && git log --oneline HEAD -- :/ >../actual) &&
33+
test_cmp expected actual
34+
'
35+
36+
test_done

0 commit comments

Comments
 (0)