comparison tests/test-git-export.t @ 24432:e22248f6d257

commands.diff: add support for diffs relative to a subdirectory Previous patches added all the backend support for this. This exposes this option in the UI.
author Siddharth Agarwal <sid0@fb.com>
date Tue, 17 Mar 2015 15:46:30 -0700
parents 1184edaead7a
children 16961d43dc89
comparison
equal deleted inserted replaced
24431:a0004402776b 24432:e22248f6d257
3 $ hg ci -Amstart 3 $ hg ci -Amstart
4 adding start 4 adding start
5 5
6 New file: 6 New file:
7 7
8 $ echo new > new 8 $ mkdir dir1
9 $ echo new > dir1/new
9 $ hg ci -Amnew 10 $ hg ci -Amnew
10 adding new 11 adding dir1/new
11 $ hg diff --git -r 0 12 $ hg diff --git -r 0
12 diff --git a/new b/new 13 diff --git a/dir1/new b/dir1/new
13 new file mode 100644 14 new file mode 100644
14 --- /dev/null 15 --- /dev/null
15 +++ b/new 16 +++ b/dir1/new
16 @@ -0,0 +1,1 @@ 17 @@ -0,0 +1,1 @@
17 +new 18 +new
18 19
19 Copy: 20 Copy:
20 21
21 $ hg cp new copy 22 $ mkdir dir2
23 $ hg cp dir1/new dir1/copy
24 $ echo copy1 >> dir1/copy
25 $ hg cp dir1/new dir2/copy
26 $ echo copy2 >> dir2/copy
22 $ hg ci -mcopy 27 $ hg ci -mcopy
23 $ hg diff --git -r 1:tip 28 $ hg diff --git -r 1:tip
29 diff --git a/dir1/new b/dir1/copy
30 copy from dir1/new
31 copy to dir1/copy
32 --- a/dir1/new
33 +++ b/dir1/copy
34 @@ -1,1 +1,2 @@
35 new
36 +copy1
37 diff --git a/dir1/new b/dir2/copy
38 copy from dir1/new
39 copy to dir2/copy
40 --- a/dir1/new
41 +++ b/dir2/copy
42 @@ -1,1 +1,2 @@
43 new
44 +copy2
45
46 Cross and same-directory copies with a relative root:
47
48 $ hg diff --git --relative .. -r 1:tip
49 abort: .. not under root '$TESTTMP'
50 [255]
51 $ hg diff --git --relative doesnotexist -r 1:tip
52 $ hg diff --git --relative . -r 1:tip
53 diff --git a/dir1/new b/dir1/copy
54 copy from dir1/new
55 copy to dir1/copy
56 --- a/dir1/new
57 +++ b/dir1/copy
58 @@ -1,1 +1,2 @@
59 new
60 +copy1
61 diff --git a/dir1/new b/dir2/copy
62 copy from dir1/new
63 copy to dir2/copy
64 --- a/dir1/new
65 +++ b/dir2/copy
66 @@ -1,1 +1,2 @@
67 new
68 +copy2
69 $ hg diff --git --relative dir1 -r 1:tip
24 diff --git a/new b/copy 70 diff --git a/new b/copy
25 copy from new 71 copy from new
26 copy to copy 72 copy to copy
73 --- a/new
74 +++ b/copy
75 @@ -1,1 +1,2 @@
76 new
77 +copy1
78
79 $ hg diff --git --relative dir2/ -r 1:tip
80 diff --git a/copy b/copy
81 new file mode 100644
82 --- /dev/null
83 +++ b/copy
84 @@ -0,0 +1,2 @@
85 +new
86 +copy2
87
88 $ hg diff --git --relative dir1 -r 1:tip -I '**/copy'
89 diff --git a/new b/copy
90 copy from new
91 copy to copy
92 --- a/new
93 +++ b/copy
94 @@ -1,1 +1,2 @@
95 new
96 +copy1
97
98 $ hg diff --git --relative dir1 -r 1:tip dir2
99 warning: dir2 not inside relative root dir1
100
101 $ hg diff --git --relative dir1 -r 1:tip 'dir2/{copy}'
102 warning: dir2/{copy} not inside relative root dir1
103
104 $ cd dir1
105 $ hg diff --git --relative .. -r 1:tip
106 diff --git a/dir1/new b/dir1/copy
107 copy from dir1/new
108 copy to dir1/copy
109 --- a/dir1/new
110 +++ b/dir1/copy
111 @@ -1,1 +1,2 @@
112 new
113 +copy1
114 diff --git a/dir1/new b/dir2/copy
115 copy from dir1/new
116 copy to dir2/copy
117 --- a/dir1/new
118 +++ b/dir2/copy
119 @@ -1,1 +1,2 @@
120 new
121 +copy2
122
123 $ hg diff --git --relative ../.. -r 1:tip
124 abort: ../.. not under root '$TESTTMP'
125 [255]
126 $ hg diff --git --relative ../doesnotexist -r 1:tip
127 $ hg diff --git --relative .. -r 1:tip
128 diff --git a/dir1/new b/dir1/copy
129 copy from dir1/new
130 copy to dir1/copy
131 --- a/dir1/new
132 +++ b/dir1/copy
133 @@ -1,1 +1,2 @@
134 new
135 +copy1
136 diff --git a/dir1/new b/dir2/copy
137 copy from dir1/new
138 copy to dir2/copy
139 --- a/dir1/new
140 +++ b/dir2/copy
141 @@ -1,1 +1,2 @@
142 new
143 +copy2
144
145 $ hg diff --git --relative . -r 1:tip
146 diff --git a/new b/copy
147 copy from new
148 copy to copy
149 --- a/new
150 +++ b/copy
151 @@ -1,1 +1,2 @@
152 new
153 +copy1
154 $ hg diff --git --relative . -r 1:tip copy
155 diff --git a/new b/copy
156 copy from new
157 copy to copy
158 --- a/new
159 +++ b/copy
160 @@ -1,1 +1,2 @@
161 new
162 +copy1
163 $ hg diff --git --relative . -r 1:tip ../dir2
164 warning: ../dir2 not inside relative root .
165 $ hg diff --git --relative . -r 1:tip '../dir2/*'
166 warning: ../dir2/* not inside relative root .
167 $ cd ..
27 168
28 Rename: 169 Rename:
29 170
30 $ hg mv copy rename 171 $ hg mv dir1/copy dir1/rename1
172 $ echo rename1 >> dir1/rename1
173 $ hg mv dir2/copy dir1/rename2
174 $ echo rename2 >> dir1/rename2
31 $ hg ci -mrename 175 $ hg ci -mrename
32 $ hg diff --git -r 2:tip 176 $ hg diff --git -r 2:tip
33 diff --git a/copy b/rename 177 diff --git a/dir1/copy b/dir1/rename1
178 rename from dir1/copy
179 rename to dir1/rename1
180 --- a/dir1/copy
181 +++ b/dir1/rename1
182 @@ -1,2 +1,3 @@
183 new
184 copy1
185 +rename1
186 diff --git a/dir2/copy b/dir1/rename2
187 rename from dir2/copy
188 rename to dir1/rename2
189 --- a/dir2/copy
190 +++ b/dir1/rename2
191 @@ -1,2 +1,3 @@
192 new
193 copy2
194 +rename2
195
196 Cross and same-directory renames with a relative root:
197
198 $ hg diff --relative dir1 --git -r 2:tip
199 diff --git a/copy b/rename1
34 rename from copy 200 rename from copy
35 rename to rename 201 rename to rename1
202 --- a/copy
203 +++ b/rename1
204 @@ -1,2 +1,3 @@
205 new
206 copy1
207 +rename1
208 diff --git a/rename2 b/rename2
209 new file mode 100644
210 --- /dev/null
211 +++ b/rename2
212 @@ -0,0 +1,3 @@
213 +new
214 +copy2
215 +rename2
216
217 $ hg diff --relative dir2 --git -r 2:tip
218 diff --git a/copy b/copy
219 deleted file mode 100644
220 --- a/copy
221 +++ /dev/null
222 @@ -1,2 +0,0 @@
223 -new
224 -copy2
225
226 $ hg diff --relative dir1 --git -r 2:tip -I '**/copy'
227 diff --git a/copy b/copy
228 deleted file mode 100644
229 --- a/copy
230 +++ /dev/null
231 @@ -1,2 +0,0 @@
232 -new
233 -copy1
234
235 $ hg diff --relative dir1 --git -r 2:tip -I '**/rename*'
236 diff --git a/copy b/rename1
237 copy from copy
238 copy to rename1
239 --- a/copy
240 +++ b/rename1
241 @@ -1,2 +1,3 @@
242 new
243 copy1
244 +rename1
245 diff --git a/rename2 b/rename2
246 new file mode 100644
247 --- /dev/null
248 +++ b/rename2
249 @@ -0,0 +1,3 @@
250 +new
251 +copy2
252 +rename2
36 253
37 Delete: 254 Delete:
38 255
39 $ hg rm rename 256 $ hg rm dir1/*
40 $ hg ci -mdelete 257 $ hg ci -mdelete
41 $ hg diff --git -r 3:tip 258 $ hg diff --git -r 3:tip
42 diff --git a/rename b/rename 259 diff --git a/dir1/new b/dir1/new
43 deleted file mode 100644 260 deleted file mode 100644
44 --- a/rename 261 --- a/dir1/new
45 +++ /dev/null 262 +++ /dev/null
46 @@ -1,1 +0,0 @@ 263 @@ -1,1 +0,0 @@
47 -new 264 -new
265 diff --git a/dir1/rename1 b/dir1/rename1
266 deleted file mode 100644
267 --- a/dir1/rename1
268 +++ /dev/null
269 @@ -1,3 +0,0 @@
270 -new
271 -copy1
272 -rename1
273 diff --git a/dir1/rename2 b/dir1/rename2
274 deleted file mode 100644
275 --- a/dir1/rename2
276 +++ /dev/null
277 @@ -1,3 +0,0 @@
278 -new
279 -copy2
280 -rename2
48 281
49 $ cat > src <<EOF 282 $ cat > src <<EOF
50 > 1 283 > 1
51 > 2 284 > 2
52 > 3 285 > 3