Skip to content

Commit 4a9e097

Browse files
alibaba0010gitster
authored andcommitted
t2000: consolidate second scenario into a single test block
The second test scenario in t2000 consists of several fragmented test_expect_success blocks that handle data setup, tree writes, execution of git-checkout-index, and final state validation. Consolidate these nine separate blocks into a single self-contained test block. This follows the modern Git testing standard where setup, execution, and validation of a single logical scenario are kept together. As a result of this consolidation, the show_files() helper and its associated test_debug calls are no longer used and have been removed. This also removes a dependency on the non-portable 'find -ls' command. Helped-by: Karthik Nayak <karthik.188@gmail.com> Helped-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Zakariyah Ali <zakariyahali100@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 94f0577 commit 4a9e097

1 file changed

Lines changed: 8 additions & 57 deletions

File tree

t/t2000-conflict-when-checking-files-out.sh

Lines changed: 8 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,6 @@ test_description='git conflicts when checking files out test.'
2323

2424
. ./test-lib.sh
2525

26-
show_files() {
27-
# show filesystem files, just [-dl] for type and name
28-
find path? -ls |
29-
sed -e 's/^[0-9]* * [0-9]* * \([-bcdl]\)[^ ]* *[0-9]* *[^ ]* *[^ ]* *[0-9]* [A-Z][a-z][a-z] [0-9][0-9] [^ ]* /fs: \1 /'
30-
# what's in the cache, just mode and name
31-
git ls-files --stage |
32-
sed -e 's/^\([0-9]*\) [0-9a-f]* [0-3] /ca: \1 /'
33-
# what's in the tree, just mode and name.
34-
git ls-tree -r "$1" |
35-
sed -e 's/^\([0-9]*\) [^ ]* [0-9a-f]* /tr: \1 /'
36-
}
3726

3827
test_expect_success 'prepare files path0 and path1/file1' '
3928
date >path0 &&
@@ -83,59 +72,21 @@ test_expect_success SYMLINKS 'checkout-index -f twice with --prefix' '
8372
# path path3 is occupied by a non-directory. With "-f" it should remove
8473
# the symlink path3 and create directory path3 and file path3/file1.
8574

86-
test_expect_success 'prepare path2/file0 and index' '
75+
test_expect_success 'checkout-index -f resolves symlink conflict on leading path' '
8776
mkdir path2 &&
8877
date >path2/file0 &&
89-
git update-index --add path2/file0
90-
'
91-
92-
test_expect_success 'write tree with path2/file0' '
93-
tree1=$(git write-tree)
94-
'
95-
96-
test_debug 'show_files $tree1'
97-
98-
test_expect_success 'prepare path3/file1 and index' '
78+
git update-index --add path2/file0 &&
79+
tree1=$(git write-tree) &&
9980
mkdir path3 &&
10081
date >path3/file1 &&
101-
git update-index --add path3/file1
102-
'
103-
104-
test_expect_success 'write tree with path3/file1' '
105-
tree2=$(git write-tree)
106-
'
107-
108-
test_debug 'show_files $tree2'
109-
110-
test_expect_success 'read previously written tree and checkout.' '
82+
git update-index --add path3/file1 &&
83+
tree2=$(git write-tree) &&
11184
rm -fr path3 &&
11285
git read-tree -m $tree1 &&
113-
git checkout-index -f -a
114-
'
115-
116-
test_debug 'show_files $tree1'
117-
118-
test_expect_success 'add a symlink' '
119-
test_ln_s_add path2 path3
120-
'
121-
122-
test_expect_success 'write tree with symlink path3' '
123-
tree3=$(git write-tree)
124-
'
125-
126-
test_debug 'show_files $tree3'
127-
128-
# Morten says "Got that?" here.
129-
# Test begins.
130-
131-
test_expect_success 'read previously written tree and checkout.' '
86+
git checkout-index -f -a &&
87+
test_ln_s_add path2 path3 &&
13288
git read-tree $tree2 &&
133-
git checkout-index -f -a
134-
'
135-
136-
test_debug 'show_files $tree2'
137-
138-
test_expect_success 'checking out conflicting path with -f' '
89+
git checkout-index -f -a &&
13990
test_path_is_dir_not_symlink path2 &&
14091
test_path_is_dir_not_symlink path3 &&
14192
test_path_is_file_not_symlink path2/file0 &&

0 commit comments

Comments
 (0)