git-p4: add failing test for "don't exclude other files with same prefix"
In preparation for a fix, add a failing test case to test that git-p4 doesn't exclude files with the same prefix unintentionally when exclude paths are specified without a trailing /. I.e., don't exclude "//depot/file_dont_exclude" if run with "-//depot/file". or don't exclude "//depot/discard_file_not" if run with "-//depot/discard_file". Signed-off-by: Andrey Mazo <amazo@checkvideo.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Mazo, Andrey committed
Apr 1, 2019 at 18:02 UTC
d6045201fcec7bd9738fea4daf9d176d8df9f5ba
1 file changed
+46
-5
t/t9817-git-p4-exclude.sh
+46
-5
@@ -22,7 +22,9 @@ test_expect_success 'create exclude repo' '
22
mkdir -p wanted discard &&
23
echo wanted >wanted/foo &&
24
echo discard >discard/foo &&
25
- p4 add wanted/foo discard/foo &&
25
+ echo discard_file >discard_file &&
26
+ echo discard_file_not >discard_file_not &&
27
+ p4 add wanted/foo discard/foo discard_file discard_file_not &&
28
p4 submit -d "initial revision"
29
)
30
'
@@ -33,7 +35,9 @@ test_expect_success 'check the repo was created correctly' '
35
(
36
cd "$git" &&
37
test_path_is_file wanted/foo &&
36
- test_path_is_file discard/foo
38
+ test_path_is_file discard/foo &&
39
+ test_path_is_file discard_file &&
40
+ test_path_is_file discard_file_not
41
)
42
'
43
@@ -43,7 +47,21 @@ test_expect_success 'clone, excluding part of repo' '
47
(
48
cd "$git" &&
49
test_path_is_file wanted/foo &&
46
- test_path_is_missing discard/foo
50
+ test_path_is_missing discard/foo &&
51
+ test_path_is_file discard_file &&
52
+ test_path_is_file discard_file_not
53
+ )
54
+'
55
+
56
+test_expect_failure 'clone, excluding single file, no trailing /' '
57
+ test_when_finished cleanup_git &&
58
+ git p4 clone -//depot/discard_file --dest="$git" //depot/...@all &&
59
+ (
60
+ cd "$git" &&
61
+ test_path_is_file wanted/foo &&
62
+ test_path_is_file discard/foo &&
63
+ test_path_is_missing discard_file &&
64
+ test_path_is_file discard_file_not
65
)
66
'
67
@@ -52,15 +70,38 @@ test_expect_success 'clone, then sync with exclude' '
70
git p4 clone -//depot/discard/... --dest="$git" //depot/...@all &&
71
(
72
cd "$cli" &&
55
- p4 edit wanted/foo discard/foo &&
73
+ p4 edit wanted/foo discard/foo discard_file_not &&
74
date >>wanted/foo &&
75
date >>discard/foo &&
76
+ date >>discard_file_not &&
77
p4 submit -d "updating" &&
78
79
cd "$git" &&
80
git p4 sync -//depot/discard/... &&
81
test_path_is_file wanted/foo &&
63
- test_path_is_missing discard/foo
82
+ test_path_is_missing discard/foo &&
83
+ test_path_is_file discard_file &&
84
+ test_path_is_file discard_file_not
85
+ )
86
+'
87
+
88
+test_expect_failure 'clone, then sync with exclude, no trailing /' '
89
+ test_when_finished cleanup_git &&
90
+ git p4 clone -//depot/discard/... -//depot/discard_file --dest="$git" //depot/...@all &&
91
+ (
92
+ cd "$cli" &&
93
+ p4 edit wanted/foo discard/foo discard_file_not &&
94
+ date >>wanted/foo &&
95
+ date >>discard/foo &&
96
+ date >>discard_file_not &&
97
+ p4 submit -d "updating" &&
98
+
99
+ cd "$git" &&
100
+ git p4 sync -//depot/discard/... -//depot/discard_file &&
101
+ test_path_is_file wanted/foo &&
102
+ test_path_is_missing discard/foo &&
103
+ test_path_is_missing discard_file &&
104
+ test_path_is_file discard_file_not
105
)
106
'
107