@@ -4,72 +4,72 @@ test_description='git mv in subdirs'
4
4
. ./test-lib.sh
5
5
6
6
test_expect_success ' prepare reference tree' '
7
- mkdir path0 path1 &&
8
- cp "$TEST_DIRECTORY"/../COPYING path0/COPYING &&
9
- git add path0/COPYING &&
10
- git commit -m add -a
7
+ mkdir path0 path1 &&
8
+ cp "$TEST_DIRECTORY"/../COPYING path0/COPYING &&
9
+ git add path0/COPYING &&
10
+ git commit -m add -a
11
11
'
12
12
13
13
test_expect_success ' moving the file out of subdirectory' '
14
- cd path0 && git mv COPYING ../path1/COPYING
14
+ cd path0 && git mv COPYING ../path1/COPYING
15
15
'
16
16
17
17
# in path0 currently
18
18
test_expect_success ' commiting the change' '
19
- cd .. && git commit -m move-out -a
19
+ cd .. && git commit -m move-out -a
20
20
'
21
21
22
22
test_expect_success ' checking the commit' '
23
- git diff-tree -r -M --name-status HEAD^ HEAD >actual &&
24
- grep "^R100..*path0/COPYING..*path1/COPYING" actual
23
+ git diff-tree -r -M --name-status HEAD^ HEAD >actual &&
24
+ grep "^R100..*path0/COPYING..*path1/COPYING" actual
25
25
'
26
26
27
27
test_expect_success ' moving the file back into subdirectory' '
28
- cd path0 && git mv ../path1/COPYING COPYING
28
+ cd path0 && git mv ../path1/COPYING COPYING
29
29
'
30
30
31
31
# in path0 currently
32
32
test_expect_success ' commiting the change' '
33
- cd .. && git commit -m move-in -a
33
+ cd .. && git commit -m move-in -a
34
34
'
35
35
36
36
test_expect_success ' checking the commit' '
37
- git diff-tree -r -M --name-status HEAD^ HEAD >actual &&
38
- grep "^R100..*path1/COPYING..*path0/COPYING" actual
37
+ git diff-tree -r -M --name-status HEAD^ HEAD >actual &&
38
+ grep "^R100..*path1/COPYING..*path0/COPYING" actual
39
39
'
40
40
41
41
test_expect_success ' mv --dry-run does not move file' '
42
- git mv -n path0/COPYING MOVED &&
43
- test -f path0/COPYING &&
44
- test ! -f MOVED
42
+ git mv -n path0/COPYING MOVED &&
43
+ test -f path0/COPYING &&
44
+ test ! -f MOVED
45
45
'
46
46
47
47
test_expect_success ' checking -k on non-existing file' '
48
- git mv -k idontexist path0
48
+ git mv -k idontexist path0
49
49
'
50
50
51
51
test_expect_success ' checking -k on untracked file' '
52
- touch untracked1 &&
53
- git mv -k untracked1 path0 &&
54
- test -f untracked1 &&
55
- test ! -f path0/untracked1
52
+ touch untracked1 &&
53
+ git mv -k untracked1 path0 &&
54
+ test -f untracked1 &&
55
+ test ! -f path0/untracked1
56
56
'
57
57
58
58
test_expect_success ' checking -k on multiple untracked files' '
59
- touch untracked2 &&
60
- git mv -k untracked1 untracked2 path0 &&
61
- test -f untracked1 &&
62
- test -f untracked2 &&
63
- test ! -f path0/untracked1 &&
64
- test ! -f path0/untracked2
59
+ touch untracked2 &&
60
+ git mv -k untracked1 untracked2 path0 &&
61
+ test -f untracked1 &&
62
+ test -f untracked2 &&
63
+ test ! -f path0/untracked1 &&
64
+ test ! -f path0/untracked2
65
65
'
66
66
67
67
test_expect_success ' checking -f on untracked file with existing target' '
68
- touch path0/untracked1 &&
69
- test_must_fail git mv -f untracked1 path0 &&
70
- test ! -f .git/index.lock &&
71
- test -f untracked1 &&
72
- test -f path0/untracked1
68
+ touch path0/untracked1 &&
69
+ test_must_fail git mv -f untracked1 path0 &&
70
+ test ! -f .git/index.lock &&
71
+ test -f untracked1 &&
72
+ test -f path0/untracked1
73
73
'
74
74
75
75
# clean up the mess in case bad things happen
@@ -79,77 +79,77 @@ rm -f idontexist untracked1 untracked2 \
79
79
rmdir path1
80
80
81
81
test_expect_success ' moving to absent target with trailing slash' '
82
- test_must_fail git mv path0/COPYING no-such-dir/ &&
83
- test_must_fail git mv path0/COPYING no-such-dir// &&
84
- git mv path0/ no-such-dir/ &&
85
- test_path_is_dir no-such-dir
82
+ test_must_fail git mv path0/COPYING no-such-dir/ &&
83
+ test_must_fail git mv path0/COPYING no-such-dir// &&
84
+ git mv path0/ no-such-dir/ &&
85
+ test_path_is_dir no-such-dir
86
86
'
87
87
88
88
test_expect_success ' clean up' '
89
- git reset --hard
89
+ git reset --hard
90
90
'
91
91
92
92
test_expect_success ' moving to existing untracked target with trailing slash' '
93
- mkdir path1 &&
94
- git mv path0/ path1/ &&
95
- test_path_is_dir path1/path0/
93
+ mkdir path1 &&
94
+ git mv path0/ path1/ &&
95
+ test_path_is_dir path1/path0/
96
96
'
97
97
98
98
test_expect_success ' moving to existing tracked target with trailing slash' '
99
- mkdir path2 &&
100
- >path2/file && git add path2/file &&
101
- git mv path1/path0/ path2/ &&
102
- test_path_is_dir path2/path0/
99
+ mkdir path2 &&
100
+ >path2/file && git add path2/file &&
101
+ git mv path1/path0/ path2/ &&
102
+ test_path_is_dir path2/path0/
103
103
'
104
104
105
105
test_expect_success ' clean up' '
106
- git reset --hard
106
+ git reset --hard
107
107
'
108
108
109
109
test_expect_success ' adding another file' '
110
- cp "$TEST_DIRECTORY"/../README.md path0/README &&
111
- git add path0/README &&
112
- git commit -m add2 -a
110
+ cp "$TEST_DIRECTORY"/../README.md path0/README &&
111
+ git add path0/README &&
112
+ git commit -m add2 -a
113
113
'
114
114
115
115
test_expect_success ' moving whole subdirectory' '
116
- git mv path0 path2
116
+ git mv path0 path2
117
117
'
118
118
119
119
test_expect_success ' commiting the change' '
120
- git commit -m dir-move -a
120
+ git commit -m dir-move -a
121
121
'
122
122
123
123
test_expect_success ' checking the commit' '
124
- git diff-tree -r -M --name-status HEAD^ HEAD >actual &&
125
- grep "^R100..*path0/COPYING..*path2/COPYING" actual &&
126
- grep "^R100..*path0/README..*path2/README" actual
124
+ git diff-tree -r -M --name-status HEAD^ HEAD >actual &&
125
+ grep "^R100..*path0/COPYING..*path2/COPYING" actual &&
126
+ grep "^R100..*path0/README..*path2/README" actual
127
127
'
128
128
129
129
test_expect_success ' succeed when source is a prefix of destination' '
130
- git mv path2/COPYING path2/COPYING-renamed
130
+ git mv path2/COPYING path2/COPYING-renamed
131
131
'
132
132
133
133
test_expect_success ' moving whole subdirectory into subdirectory' '
134
- git mv path2 path1
134
+ git mv path2 path1
135
135
'
136
136
137
137
test_expect_success ' commiting the change' '
138
- git commit -m dir-move -a
138
+ git commit -m dir-move -a
139
139
'
140
140
141
141
test_expect_success ' checking the commit' '
142
- git diff-tree -r -M --name-status HEAD^ HEAD >actual &&
143
- grep "^R100..*path2/COPYING..*path1/path2/COPYING" actual &&
144
- grep "^R100..*path2/README..*path1/path2/README" actual
142
+ git diff-tree -r -M --name-status HEAD^ HEAD >actual &&
143
+ grep "^R100..*path2/COPYING..*path1/path2/COPYING" actual &&
144
+ grep "^R100..*path2/README..*path1/path2/README" actual
145
145
'
146
146
147
147
test_expect_success ' do not move directory over existing directory' '
148
- mkdir path0 && mkdir path0/path2 && test_must_fail git mv path2 path0
148
+ mkdir path0 && mkdir path0/path2 && test_must_fail git mv path2 path0
149
149
'
150
150
151
151
test_expect_success ' move into "."' '
152
- git mv path1/path2/ .
152
+ git mv path1/path2/ .
153
153
'
154
154
155
155
test_expect_success " Michael Cassar's test case" '
0 commit comments