##// END OF EJS Templates
tests: diff -r on Solaris emits "Common subdirectories:"...
Danek Duvall -
r25863:1b449b01 stable
parent child Browse files
Show More
@@ -1,804 +1,804 b''
1 Preparing the subrepository 'sub2'
1 Preparing the subrepository 'sub2'
2
2
3 $ hg init sub2
3 $ hg init sub2
4 $ echo sub2 > sub2/sub2
4 $ echo sub2 > sub2/sub2
5 $ hg add -R sub2
5 $ hg add -R sub2
6 adding sub2/sub2 (glob)
6 adding sub2/sub2 (glob)
7 $ hg commit -R sub2 -m "sub2 import"
7 $ hg commit -R sub2 -m "sub2 import"
8
8
9 Preparing the 'sub1' repo which depends on the subrepo 'sub2'
9 Preparing the 'sub1' repo which depends on the subrepo 'sub2'
10
10
11 $ hg init sub1
11 $ hg init sub1
12 $ echo sub1 > sub1/sub1
12 $ echo sub1 > sub1/sub1
13 $ echo "sub2 = ../sub2" > sub1/.hgsub
13 $ echo "sub2 = ../sub2" > sub1/.hgsub
14 $ hg clone sub2 sub1/sub2
14 $ hg clone sub2 sub1/sub2
15 updating to branch default
15 updating to branch default
16 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
16 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
17 $ hg add -R sub1
17 $ hg add -R sub1
18 adding sub1/.hgsub (glob)
18 adding sub1/.hgsub (glob)
19 adding sub1/sub1 (glob)
19 adding sub1/sub1 (glob)
20 $ hg commit -R sub1 -m "sub1 import"
20 $ hg commit -R sub1 -m "sub1 import"
21
21
22 Preparing the 'main' repo which depends on the subrepo 'sub1'
22 Preparing the 'main' repo which depends on the subrepo 'sub1'
23
23
24 $ hg init main
24 $ hg init main
25 $ echo main > main/main
25 $ echo main > main/main
26 $ echo "sub1 = ../sub1" > main/.hgsub
26 $ echo "sub1 = ../sub1" > main/.hgsub
27 $ hg clone sub1 main/sub1
27 $ hg clone sub1 main/sub1
28 updating to branch default
28 updating to branch default
29 cloning subrepo sub2 from $TESTTMP/sub2
29 cloning subrepo sub2 from $TESTTMP/sub2
30 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
30 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
31 $ hg add -R main
31 $ hg add -R main
32 adding main/.hgsub (glob)
32 adding main/.hgsub (glob)
33 adding main/main (glob)
33 adding main/main (glob)
34 $ hg commit -R main -m "main import"
34 $ hg commit -R main -m "main import"
35
35
36 Cleaning both repositories, just as a clone -U
36 Cleaning both repositories, just as a clone -U
37
37
38 $ hg up -C -R sub2 null
38 $ hg up -C -R sub2 null
39 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
39 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
40 $ hg up -C -R sub1 null
40 $ hg up -C -R sub1 null
41 0 files updated, 0 files merged, 3 files removed, 0 files unresolved
41 0 files updated, 0 files merged, 3 files removed, 0 files unresolved
42 $ hg up -C -R main null
42 $ hg up -C -R main null
43 0 files updated, 0 files merged, 3 files removed, 0 files unresolved
43 0 files updated, 0 files merged, 3 files removed, 0 files unresolved
44 $ rm -rf main/sub1
44 $ rm -rf main/sub1
45 $ rm -rf sub1/sub2
45 $ rm -rf sub1/sub2
46
46
47 Clone main
47 Clone main
48
48
49 $ hg --config extensions.largefiles= clone main cloned
49 $ hg --config extensions.largefiles= clone main cloned
50 updating to branch default
50 updating to branch default
51 cloning subrepo sub1 from $TESTTMP/sub1
51 cloning subrepo sub1 from $TESTTMP/sub1
52 cloning subrepo sub1/sub2 from $TESTTMP/sub2 (glob)
52 cloning subrepo sub1/sub2 from $TESTTMP/sub2 (glob)
53 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
53 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
54
54
55 Largefiles is NOT enabled in the clone if the source repo doesn't require it
55 Largefiles is NOT enabled in the clone if the source repo doesn't require it
56 $ cat cloned/.hg/hgrc
56 $ cat cloned/.hg/hgrc
57 # example repository config (see "hg help config" for more info)
57 # example repository config (see "hg help config" for more info)
58 [paths]
58 [paths]
59 default = $TESTTMP/main (glob)
59 default = $TESTTMP/main (glob)
60
60
61 # path aliases to other clones of this repo in URLs or filesystem paths
61 # path aliases to other clones of this repo in URLs or filesystem paths
62 # (see "hg help config.paths" for more info)
62 # (see "hg help config.paths" for more info)
63 #
63 #
64 # default-push = ssh://jdoe@example.net/hg/jdoes-fork
64 # default-push = ssh://jdoe@example.net/hg/jdoes-fork
65 # my-fork = ssh://jdoe@example.net/hg/jdoes-fork
65 # my-fork = ssh://jdoe@example.net/hg/jdoes-fork
66 # my-clone = /home/jdoe/jdoes-clone
66 # my-clone = /home/jdoe/jdoes-clone
67
67
68 [ui]
68 [ui]
69 # name and email (local to this repository, optional), e.g.
69 # name and email (local to this repository, optional), e.g.
70 # username = Jane Doe <jdoe@example.com>
70 # username = Jane Doe <jdoe@example.com>
71
71
72 Checking cloned repo ids
72 Checking cloned repo ids
73
73
74 $ printf "cloned " ; hg id -R cloned
74 $ printf "cloned " ; hg id -R cloned
75 cloned 7f491f53a367 tip
75 cloned 7f491f53a367 tip
76 $ printf "cloned/sub1 " ; hg id -R cloned/sub1
76 $ printf "cloned/sub1 " ; hg id -R cloned/sub1
77 cloned/sub1 fc3b4ce2696f tip
77 cloned/sub1 fc3b4ce2696f tip
78 $ printf "cloned/sub1/sub2 " ; hg id -R cloned/sub1/sub2
78 $ printf "cloned/sub1/sub2 " ; hg id -R cloned/sub1/sub2
79 cloned/sub1/sub2 c57a0840e3ba tip
79 cloned/sub1/sub2 c57a0840e3ba tip
80
80
81 debugsub output for main and sub1
81 debugsub output for main and sub1
82
82
83 $ hg debugsub -R cloned
83 $ hg debugsub -R cloned
84 path sub1
84 path sub1
85 source ../sub1
85 source ../sub1
86 revision fc3b4ce2696f7741438c79207583768f2ce6b0dd
86 revision fc3b4ce2696f7741438c79207583768f2ce6b0dd
87 $ hg debugsub -R cloned/sub1
87 $ hg debugsub -R cloned/sub1
88 path sub2
88 path sub2
89 source ../sub2
89 source ../sub2
90 revision c57a0840e3badd667ef3c3ef65471609acb2ba3c
90 revision c57a0840e3badd667ef3c3ef65471609acb2ba3c
91
91
92 Modifying deeply nested 'sub2'
92 Modifying deeply nested 'sub2'
93
93
94 $ echo modified > cloned/sub1/sub2/sub2
94 $ echo modified > cloned/sub1/sub2/sub2
95 $ hg commit --subrepos -m "deep nested modif should trigger a commit" -R cloned
95 $ hg commit --subrepos -m "deep nested modif should trigger a commit" -R cloned
96 committing subrepository sub1
96 committing subrepository sub1
97 committing subrepository sub1/sub2 (glob)
97 committing subrepository sub1/sub2 (glob)
98
98
99 Checking modified node ids
99 Checking modified node ids
100
100
101 $ printf "cloned " ; hg id -R cloned
101 $ printf "cloned " ; hg id -R cloned
102 cloned ffe6649062fe tip
102 cloned ffe6649062fe tip
103 $ printf "cloned/sub1 " ; hg id -R cloned/sub1
103 $ printf "cloned/sub1 " ; hg id -R cloned/sub1
104 cloned/sub1 2ecb03bf44a9 tip
104 cloned/sub1 2ecb03bf44a9 tip
105 $ printf "cloned/sub1/sub2 " ; hg id -R cloned/sub1/sub2
105 $ printf "cloned/sub1/sub2 " ; hg id -R cloned/sub1/sub2
106 cloned/sub1/sub2 53dd3430bcaf tip
106 cloned/sub1/sub2 53dd3430bcaf tip
107
107
108 debugsub output for main and sub1
108 debugsub output for main and sub1
109
109
110 $ hg debugsub -R cloned
110 $ hg debugsub -R cloned
111 path sub1
111 path sub1
112 source ../sub1
112 source ../sub1
113 revision 2ecb03bf44a94e749e8669481dd9069526ce7cb9
113 revision 2ecb03bf44a94e749e8669481dd9069526ce7cb9
114 $ hg debugsub -R cloned/sub1
114 $ hg debugsub -R cloned/sub1
115 path sub2
115 path sub2
116 source ../sub2
116 source ../sub2
117 revision 53dd3430bcaf5ab4a7c48262bcad6d441f510487
117 revision 53dd3430bcaf5ab4a7c48262bcad6d441f510487
118
118
119 Check that deep archiving works
119 Check that deep archiving works
120
120
121 $ cd cloned
121 $ cd cloned
122 $ echo 'test' > sub1/sub2/test.txt
122 $ echo 'test' > sub1/sub2/test.txt
123 $ hg --config extensions.largefiles=! add sub1/sub2/test.txt
123 $ hg --config extensions.largefiles=! add sub1/sub2/test.txt
124 $ mkdir sub1/sub2/folder
124 $ mkdir sub1/sub2/folder
125 $ echo 'subfolder' > sub1/sub2/folder/test.txt
125 $ echo 'subfolder' > sub1/sub2/folder/test.txt
126 $ hg ci -ASm "add test.txt"
126 $ hg ci -ASm "add test.txt"
127 adding sub1/sub2/folder/test.txt
127 adding sub1/sub2/folder/test.txt
128 committing subrepository sub1
128 committing subrepository sub1
129 committing subrepository sub1/sub2 (glob)
129 committing subrepository sub1/sub2 (glob)
130
130
131 .. but first take a detour through some deep removal testing
131 .. but first take a detour through some deep removal testing
132
132
133 $ hg remove -S -I 're:.*.txt' .
133 $ hg remove -S -I 're:.*.txt' .
134 removing sub1/sub2/folder/test.txt (glob)
134 removing sub1/sub2/folder/test.txt (glob)
135 removing sub1/sub2/test.txt (glob)
135 removing sub1/sub2/test.txt (glob)
136 $ hg status -S
136 $ hg status -S
137 R sub1/sub2/folder/test.txt
137 R sub1/sub2/folder/test.txt
138 R sub1/sub2/test.txt
138 R sub1/sub2/test.txt
139 $ hg update -Cq
139 $ hg update -Cq
140 $ hg remove -I 're:.*.txt' sub1
140 $ hg remove -I 're:.*.txt' sub1
141 $ hg status -S
141 $ hg status -S
142 $ hg remove sub1/sub2/folder/test.txt
142 $ hg remove sub1/sub2/folder/test.txt
143 $ hg remove sub1/.hgsubstate
143 $ hg remove sub1/.hgsubstate
144 $ mv sub1/.hgsub sub1/x.hgsub
144 $ mv sub1/.hgsub sub1/x.hgsub
145 $ hg status -S
145 $ hg status -S
146 warning: subrepo spec file 'sub1/.hgsub' not found (glob)
146 warning: subrepo spec file 'sub1/.hgsub' not found (glob)
147 R sub1/.hgsubstate
147 R sub1/.hgsubstate
148 R sub1/sub2/folder/test.txt
148 R sub1/sub2/folder/test.txt
149 ! sub1/.hgsub
149 ! sub1/.hgsub
150 ? sub1/x.hgsub
150 ? sub1/x.hgsub
151 $ mv sub1/x.hgsub sub1/.hgsub
151 $ mv sub1/x.hgsub sub1/.hgsub
152 $ hg update -Cq
152 $ hg update -Cq
153 $ touch sub1/foo
153 $ touch sub1/foo
154 $ hg forget sub1/sub2/folder/test.txt
154 $ hg forget sub1/sub2/folder/test.txt
155 $ rm sub1/sub2/test.txt
155 $ rm sub1/sub2/test.txt
156
156
157 Test relative path printing + subrepos
157 Test relative path printing + subrepos
158 $ mkdir -p foo/bar
158 $ mkdir -p foo/bar
159 $ cd foo
159 $ cd foo
160 $ touch bar/abc
160 $ touch bar/abc
161 $ hg addremove -S ..
161 $ hg addremove -S ..
162 adding ../sub1/sub2/folder/test.txt (glob)
162 adding ../sub1/sub2/folder/test.txt (glob)
163 removing ../sub1/sub2/test.txt (glob)
163 removing ../sub1/sub2/test.txt (glob)
164 adding ../sub1/foo (glob)
164 adding ../sub1/foo (glob)
165 adding bar/abc (glob)
165 adding bar/abc (glob)
166 $ cd ..
166 $ cd ..
167 $ hg status -S
167 $ hg status -S
168 A foo/bar/abc
168 A foo/bar/abc
169 A sub1/foo
169 A sub1/foo
170 R sub1/sub2/test.txt
170 R sub1/sub2/test.txt
171
171
172 Archive wdir() with subrepos
172 Archive wdir() with subrepos
173 $ hg rm main
173 $ hg rm main
174 $ hg archive -S -r 'wdir()' ../wdir
174 $ hg archive -S -r 'wdir()' ../wdir
175 $ diff -r . ../wdir | grep -v '\.hg$'
175 $ diff -r . ../wdir | egrep -v '\.hg$|^Common subdirectories:'
176 Only in ../wdir: .hg_archival.txt
176 Only in ../wdir: .hg_archival.txt
177
177
178 $ find ../wdir -type f | sort
178 $ find ../wdir -type f | sort
179 ../wdir/.hg_archival.txt
179 ../wdir/.hg_archival.txt
180 ../wdir/.hgsub
180 ../wdir/.hgsub
181 ../wdir/.hgsubstate
181 ../wdir/.hgsubstate
182 ../wdir/foo/bar/abc
182 ../wdir/foo/bar/abc
183 ../wdir/sub1/.hgsub
183 ../wdir/sub1/.hgsub
184 ../wdir/sub1/.hgsubstate
184 ../wdir/sub1/.hgsubstate
185 ../wdir/sub1/foo
185 ../wdir/sub1/foo
186 ../wdir/sub1/sub1
186 ../wdir/sub1/sub1
187 ../wdir/sub1/sub2/folder/test.txt
187 ../wdir/sub1/sub2/folder/test.txt
188 ../wdir/sub1/sub2/sub2
188 ../wdir/sub1/sub2/sub2
189
189
190 $ cat ../wdir/.hg_archival.txt
190 $ cat ../wdir/.hg_archival.txt
191 repo: 7f491f53a367861f47ee64a80eb997d1f341b77a
191 repo: 7f491f53a367861f47ee64a80eb997d1f341b77a
192 node: 9bb10eebee29dc0f1201dcf5977b811a540255fd+
192 node: 9bb10eebee29dc0f1201dcf5977b811a540255fd+
193 branch: default
193 branch: default
194 latesttag: null
194 latesttag: null
195 latesttagdistance: 4
195 latesttagdistance: 4
196 changessincelatesttag: 4
196 changessincelatesttag: 4
197
197
198 Attempting to archive 'wdir()' with a missing file is handled gracefully
198 Attempting to archive 'wdir()' with a missing file is handled gracefully
199 $ rm sub1/sub1
199 $ rm sub1/sub1
200 $ rm -r ../wdir
200 $ rm -r ../wdir
201 $ hg archive -v -S -r 'wdir()' ../wdir
201 $ hg archive -v -S -r 'wdir()' ../wdir
202 $ find ../wdir -type f | sort
202 $ find ../wdir -type f | sort
203 ../wdir/.hg_archival.txt
203 ../wdir/.hg_archival.txt
204 ../wdir/.hgsub
204 ../wdir/.hgsub
205 ../wdir/.hgsubstate
205 ../wdir/.hgsubstate
206 ../wdir/foo/bar/abc
206 ../wdir/foo/bar/abc
207 ../wdir/sub1/.hgsub
207 ../wdir/sub1/.hgsub
208 ../wdir/sub1/.hgsubstate
208 ../wdir/sub1/.hgsubstate
209 ../wdir/sub1/foo
209 ../wdir/sub1/foo
210 ../wdir/sub1/sub2/folder/test.txt
210 ../wdir/sub1/sub2/folder/test.txt
211 ../wdir/sub1/sub2/sub2
211 ../wdir/sub1/sub2/sub2
212
212
213 Continue relative path printing + subrepos
213 Continue relative path printing + subrepos
214 $ hg update -Cq
214 $ hg update -Cq
215 $ rm -r ../wdir
215 $ rm -r ../wdir
216 $ hg archive -S -r 'wdir()' ../wdir
216 $ hg archive -S -r 'wdir()' ../wdir
217 $ cat ../wdir/.hg_archival.txt
217 $ cat ../wdir/.hg_archival.txt
218 repo: 7f491f53a367861f47ee64a80eb997d1f341b77a
218 repo: 7f491f53a367861f47ee64a80eb997d1f341b77a
219 node: 9bb10eebee29dc0f1201dcf5977b811a540255fd
219 node: 9bb10eebee29dc0f1201dcf5977b811a540255fd
220 branch: default
220 branch: default
221 latesttag: null
221 latesttag: null
222 latesttagdistance: 4
222 latesttagdistance: 4
223 changessincelatesttag: 4
223 changessincelatesttag: 4
224
224
225 $ touch sub1/sub2/folder/bar
225 $ touch sub1/sub2/folder/bar
226 $ hg addremove sub1/sub2
226 $ hg addremove sub1/sub2
227 adding sub1/sub2/folder/bar (glob)
227 adding sub1/sub2/folder/bar (glob)
228 $ hg status -S
228 $ hg status -S
229 A sub1/sub2/folder/bar
229 A sub1/sub2/folder/bar
230 ? foo/bar/abc
230 ? foo/bar/abc
231 ? sub1/foo
231 ? sub1/foo
232 $ hg update -Cq
232 $ hg update -Cq
233 $ hg addremove sub1
233 $ hg addremove sub1
234 adding sub1/sub2/folder/bar (glob)
234 adding sub1/sub2/folder/bar (glob)
235 adding sub1/foo (glob)
235 adding sub1/foo (glob)
236 $ hg update -Cq
236 $ hg update -Cq
237 $ rm sub1/sub2/folder/test.txt
237 $ rm sub1/sub2/folder/test.txt
238 $ rm sub1/sub2/test.txt
238 $ rm sub1/sub2/test.txt
239 $ hg ci -ASm "remove test.txt"
239 $ hg ci -ASm "remove test.txt"
240 adding sub1/sub2/folder/bar
240 adding sub1/sub2/folder/bar
241 removing sub1/sub2/folder/test.txt
241 removing sub1/sub2/folder/test.txt
242 removing sub1/sub2/test.txt
242 removing sub1/sub2/test.txt
243 adding sub1/foo
243 adding sub1/foo
244 adding foo/bar/abc
244 adding foo/bar/abc
245 committing subrepository sub1
245 committing subrepository sub1
246 committing subrepository sub1/sub2 (glob)
246 committing subrepository sub1/sub2 (glob)
247
247
248 $ hg forget sub1/sub2/sub2
248 $ hg forget sub1/sub2/sub2
249 $ echo x > sub1/sub2/x.txt
249 $ echo x > sub1/sub2/x.txt
250 $ hg add sub1/sub2/x.txt
250 $ hg add sub1/sub2/x.txt
251
251
252 Files sees uncommitted adds and removes in subrepos
252 Files sees uncommitted adds and removes in subrepos
253 $ hg files -S
253 $ hg files -S
254 .hgsub
254 .hgsub
255 .hgsubstate
255 .hgsubstate
256 foo/bar/abc (glob)
256 foo/bar/abc (glob)
257 main
257 main
258 sub1/.hgsub (glob)
258 sub1/.hgsub (glob)
259 sub1/.hgsubstate (glob)
259 sub1/.hgsubstate (glob)
260 sub1/foo (glob)
260 sub1/foo (glob)
261 sub1/sub1 (glob)
261 sub1/sub1 (glob)
262 sub1/sub2/folder/bar (glob)
262 sub1/sub2/folder/bar (glob)
263 sub1/sub2/x.txt (glob)
263 sub1/sub2/x.txt (glob)
264
264
265 $ hg files -S "set:eol('dos') or eol('unix') or size('<= 0')"
265 $ hg files -S "set:eol('dos') or eol('unix') or size('<= 0')"
266 .hgsub
266 .hgsub
267 .hgsubstate
267 .hgsubstate
268 foo/bar/abc (glob)
268 foo/bar/abc (glob)
269 main
269 main
270 sub1/.hgsub (glob)
270 sub1/.hgsub (glob)
271 sub1/.hgsubstate (glob)
271 sub1/.hgsubstate (glob)
272 sub1/foo (glob)
272 sub1/foo (glob)
273 sub1/sub1 (glob)
273 sub1/sub1 (glob)
274 sub1/sub2/folder/bar (glob)
274 sub1/sub2/folder/bar (glob)
275 sub1/sub2/x.txt (glob)
275 sub1/sub2/x.txt (glob)
276
276
277 $ hg files -r '.^' -S "set:eol('dos') or eol('unix')"
277 $ hg files -r '.^' -S "set:eol('dos') or eol('unix')"
278 .hgsub
278 .hgsub
279 .hgsubstate
279 .hgsubstate
280 main
280 main
281 sub1/.hgsub (glob)
281 sub1/.hgsub (glob)
282 sub1/.hgsubstate (glob)
282 sub1/.hgsubstate (glob)
283 sub1/sub1 (glob)
283 sub1/sub1 (glob)
284 sub1/sub2/folder/test.txt (glob)
284 sub1/sub2/folder/test.txt (glob)
285 sub1/sub2/sub2 (glob)
285 sub1/sub2/sub2 (glob)
286 sub1/sub2/test.txt (glob)
286 sub1/sub2/test.txt (glob)
287
287
288 $ hg files sub1
288 $ hg files sub1
289 sub1/.hgsub (glob)
289 sub1/.hgsub (glob)
290 sub1/.hgsubstate (glob)
290 sub1/.hgsubstate (glob)
291 sub1/foo (glob)
291 sub1/foo (glob)
292 sub1/sub1 (glob)
292 sub1/sub1 (glob)
293 sub1/sub2/folder/bar (glob)
293 sub1/sub2/folder/bar (glob)
294 sub1/sub2/x.txt (glob)
294 sub1/sub2/x.txt (glob)
295
295
296 $ hg files sub1/sub2
296 $ hg files sub1/sub2
297 sub1/sub2/folder/bar (glob)
297 sub1/sub2/folder/bar (glob)
298 sub1/sub2/x.txt (glob)
298 sub1/sub2/x.txt (glob)
299
299
300 $ hg files -S -r '.^' sub1/sub2/folder
300 $ hg files -S -r '.^' sub1/sub2/folder
301 sub1/sub2/folder/test.txt (glob)
301 sub1/sub2/folder/test.txt (glob)
302
302
303 $ hg files -S -r '.^' sub1/sub2/missing
303 $ hg files -S -r '.^' sub1/sub2/missing
304 sub1/sub2/missing: no such file in rev 78026e779ea6 (glob)
304 sub1/sub2/missing: no such file in rev 78026e779ea6 (glob)
305 [1]
305 [1]
306
306
307 $ hg files -r '.^' sub1/
307 $ hg files -r '.^' sub1/
308 sub1/.hgsub (glob)
308 sub1/.hgsub (glob)
309 sub1/.hgsubstate (glob)
309 sub1/.hgsubstate (glob)
310 sub1/sub1 (glob)
310 sub1/sub1 (glob)
311 sub1/sub2/folder/test.txt (glob)
311 sub1/sub2/folder/test.txt (glob)
312 sub1/sub2/sub2 (glob)
312 sub1/sub2/sub2 (glob)
313 sub1/sub2/test.txt (glob)
313 sub1/sub2/test.txt (glob)
314
314
315 $ hg files -r '.^' sub1/sub2
315 $ hg files -r '.^' sub1/sub2
316 sub1/sub2/folder/test.txt (glob)
316 sub1/sub2/folder/test.txt (glob)
317 sub1/sub2/sub2 (glob)
317 sub1/sub2/sub2 (glob)
318 sub1/sub2/test.txt (glob)
318 sub1/sub2/test.txt (glob)
319
319
320 $ hg rollback -q
320 $ hg rollback -q
321 $ hg up -Cq
321 $ hg up -Cq
322
322
323 $ hg --config extensions.largefiles=! archive -S ../archive_all
323 $ hg --config extensions.largefiles=! archive -S ../archive_all
324 $ find ../archive_all | sort
324 $ find ../archive_all | sort
325 ../archive_all
325 ../archive_all
326 ../archive_all/.hg_archival.txt
326 ../archive_all/.hg_archival.txt
327 ../archive_all/.hgsub
327 ../archive_all/.hgsub
328 ../archive_all/.hgsubstate
328 ../archive_all/.hgsubstate
329 ../archive_all/main
329 ../archive_all/main
330 ../archive_all/sub1
330 ../archive_all/sub1
331 ../archive_all/sub1/.hgsub
331 ../archive_all/sub1/.hgsub
332 ../archive_all/sub1/.hgsubstate
332 ../archive_all/sub1/.hgsubstate
333 ../archive_all/sub1/sub1
333 ../archive_all/sub1/sub1
334 ../archive_all/sub1/sub2
334 ../archive_all/sub1/sub2
335 ../archive_all/sub1/sub2/folder
335 ../archive_all/sub1/sub2/folder
336 ../archive_all/sub1/sub2/folder/test.txt
336 ../archive_all/sub1/sub2/folder/test.txt
337 ../archive_all/sub1/sub2/sub2
337 ../archive_all/sub1/sub2/sub2
338 ../archive_all/sub1/sub2/test.txt
338 ../archive_all/sub1/sub2/test.txt
339
339
340 Check that archive -X works in deep subrepos
340 Check that archive -X works in deep subrepos
341
341
342 $ hg --config extensions.largefiles=! archive -S -X '**test*' ../archive_exclude
342 $ hg --config extensions.largefiles=! archive -S -X '**test*' ../archive_exclude
343 $ find ../archive_exclude | sort
343 $ find ../archive_exclude | sort
344 ../archive_exclude
344 ../archive_exclude
345 ../archive_exclude/.hg_archival.txt
345 ../archive_exclude/.hg_archival.txt
346 ../archive_exclude/.hgsub
346 ../archive_exclude/.hgsub
347 ../archive_exclude/.hgsubstate
347 ../archive_exclude/.hgsubstate
348 ../archive_exclude/main
348 ../archive_exclude/main
349 ../archive_exclude/sub1
349 ../archive_exclude/sub1
350 ../archive_exclude/sub1/.hgsub
350 ../archive_exclude/sub1/.hgsub
351 ../archive_exclude/sub1/.hgsubstate
351 ../archive_exclude/sub1/.hgsubstate
352 ../archive_exclude/sub1/sub1
352 ../archive_exclude/sub1/sub1
353 ../archive_exclude/sub1/sub2
353 ../archive_exclude/sub1/sub2
354 ../archive_exclude/sub1/sub2/sub2
354 ../archive_exclude/sub1/sub2/sub2
355
355
356 $ hg --config extensions.largefiles=! archive -S -I '**test*' ../archive_include
356 $ hg --config extensions.largefiles=! archive -S -I '**test*' ../archive_include
357 $ find ../archive_include | sort
357 $ find ../archive_include | sort
358 ../archive_include
358 ../archive_include
359 ../archive_include/sub1
359 ../archive_include/sub1
360 ../archive_include/sub1/sub2
360 ../archive_include/sub1/sub2
361 ../archive_include/sub1/sub2/folder
361 ../archive_include/sub1/sub2/folder
362 ../archive_include/sub1/sub2/folder/test.txt
362 ../archive_include/sub1/sub2/folder/test.txt
363 ../archive_include/sub1/sub2/test.txt
363 ../archive_include/sub1/sub2/test.txt
364
364
365 Check that deep archive works with largefiles (which overrides hgsubrepo impl)
365 Check that deep archive works with largefiles (which overrides hgsubrepo impl)
366 This also tests the repo.ui regression in 43fb170a23bd, and that lf subrepo
366 This also tests the repo.ui regression in 43fb170a23bd, and that lf subrepo
367 subrepos are archived properly.
367 subrepos are archived properly.
368 Note that add --large through a subrepo currently adds the file as a normal file
368 Note that add --large through a subrepo currently adds the file as a normal file
369
369
370 $ echo "large" > sub1/sub2/large.bin
370 $ echo "large" > sub1/sub2/large.bin
371 $ hg --config extensions.largefiles= add --large -R sub1/sub2 sub1/sub2/large.bin
371 $ hg --config extensions.largefiles= add --large -R sub1/sub2 sub1/sub2/large.bin
372 $ echo "large" > large.bin
372 $ echo "large" > large.bin
373 $ hg --config extensions.largefiles= add --large large.bin
373 $ hg --config extensions.largefiles= add --large large.bin
374 $ hg --config extensions.largefiles= ci -S -m "add large files"
374 $ hg --config extensions.largefiles= ci -S -m "add large files"
375 committing subrepository sub1
375 committing subrepository sub1
376 committing subrepository sub1/sub2 (glob)
376 committing subrepository sub1/sub2 (glob)
377
377
378 $ hg --config extensions.largefiles= archive -S ../archive_lf
378 $ hg --config extensions.largefiles= archive -S ../archive_lf
379 $ find ../archive_lf | sort
379 $ find ../archive_lf | sort
380 ../archive_lf
380 ../archive_lf
381 ../archive_lf/.hg_archival.txt
381 ../archive_lf/.hg_archival.txt
382 ../archive_lf/.hgsub
382 ../archive_lf/.hgsub
383 ../archive_lf/.hgsubstate
383 ../archive_lf/.hgsubstate
384 ../archive_lf/large.bin
384 ../archive_lf/large.bin
385 ../archive_lf/main
385 ../archive_lf/main
386 ../archive_lf/sub1
386 ../archive_lf/sub1
387 ../archive_lf/sub1/.hgsub
387 ../archive_lf/sub1/.hgsub
388 ../archive_lf/sub1/.hgsubstate
388 ../archive_lf/sub1/.hgsubstate
389 ../archive_lf/sub1/sub1
389 ../archive_lf/sub1/sub1
390 ../archive_lf/sub1/sub2
390 ../archive_lf/sub1/sub2
391 ../archive_lf/sub1/sub2/folder
391 ../archive_lf/sub1/sub2/folder
392 ../archive_lf/sub1/sub2/folder/test.txt
392 ../archive_lf/sub1/sub2/folder/test.txt
393 ../archive_lf/sub1/sub2/large.bin
393 ../archive_lf/sub1/sub2/large.bin
394 ../archive_lf/sub1/sub2/sub2
394 ../archive_lf/sub1/sub2/sub2
395 ../archive_lf/sub1/sub2/test.txt
395 ../archive_lf/sub1/sub2/test.txt
396 $ rm -rf ../archive_lf
396 $ rm -rf ../archive_lf
397
397
398 Exclude large files from main and sub-sub repo
398 Exclude large files from main and sub-sub repo
399
399
400 $ hg --config extensions.largefiles= archive -S -X '**.bin' ../archive_lf
400 $ hg --config extensions.largefiles= archive -S -X '**.bin' ../archive_lf
401 $ find ../archive_lf | sort
401 $ find ../archive_lf | sort
402 ../archive_lf
402 ../archive_lf
403 ../archive_lf/.hg_archival.txt
403 ../archive_lf/.hg_archival.txt
404 ../archive_lf/.hgsub
404 ../archive_lf/.hgsub
405 ../archive_lf/.hgsubstate
405 ../archive_lf/.hgsubstate
406 ../archive_lf/main
406 ../archive_lf/main
407 ../archive_lf/sub1
407 ../archive_lf/sub1
408 ../archive_lf/sub1/.hgsub
408 ../archive_lf/sub1/.hgsub
409 ../archive_lf/sub1/.hgsubstate
409 ../archive_lf/sub1/.hgsubstate
410 ../archive_lf/sub1/sub1
410 ../archive_lf/sub1/sub1
411 ../archive_lf/sub1/sub2
411 ../archive_lf/sub1/sub2
412 ../archive_lf/sub1/sub2/folder
412 ../archive_lf/sub1/sub2/folder
413 ../archive_lf/sub1/sub2/folder/test.txt
413 ../archive_lf/sub1/sub2/folder/test.txt
414 ../archive_lf/sub1/sub2/sub2
414 ../archive_lf/sub1/sub2/sub2
415 ../archive_lf/sub1/sub2/test.txt
415 ../archive_lf/sub1/sub2/test.txt
416 $ rm -rf ../archive_lf
416 $ rm -rf ../archive_lf
417
417
418 Exclude normal files from main and sub-sub repo
418 Exclude normal files from main and sub-sub repo
419
419
420 $ hg --config extensions.largefiles= archive -S -X '**.txt' -p '.' ../archive_lf.tgz
420 $ hg --config extensions.largefiles= archive -S -X '**.txt' -p '.' ../archive_lf.tgz
421 $ tar -tzf ../archive_lf.tgz | sort
421 $ tar -tzf ../archive_lf.tgz | sort
422 .hgsub
422 .hgsub
423 .hgsubstate
423 .hgsubstate
424 large.bin
424 large.bin
425 main
425 main
426 sub1/.hgsub
426 sub1/.hgsub
427 sub1/.hgsubstate
427 sub1/.hgsubstate
428 sub1/sub1
428 sub1/sub1
429 sub1/sub2/large.bin
429 sub1/sub2/large.bin
430 sub1/sub2/sub2
430 sub1/sub2/sub2
431
431
432 Include normal files from within a largefiles subrepo
432 Include normal files from within a largefiles subrepo
433
433
434 $ hg --config extensions.largefiles= archive -S -I '**.txt' ../archive_lf
434 $ hg --config extensions.largefiles= archive -S -I '**.txt' ../archive_lf
435 $ find ../archive_lf | sort
435 $ find ../archive_lf | sort
436 ../archive_lf
436 ../archive_lf
437 ../archive_lf/.hg_archival.txt
437 ../archive_lf/.hg_archival.txt
438 ../archive_lf/sub1
438 ../archive_lf/sub1
439 ../archive_lf/sub1/sub2
439 ../archive_lf/sub1/sub2
440 ../archive_lf/sub1/sub2/folder
440 ../archive_lf/sub1/sub2/folder
441 ../archive_lf/sub1/sub2/folder/test.txt
441 ../archive_lf/sub1/sub2/folder/test.txt
442 ../archive_lf/sub1/sub2/test.txt
442 ../archive_lf/sub1/sub2/test.txt
443 $ rm -rf ../archive_lf
443 $ rm -rf ../archive_lf
444
444
445 Include large files from within a largefiles subrepo
445 Include large files from within a largefiles subrepo
446
446
447 $ hg --config extensions.largefiles= archive -S -I '**.bin' ../archive_lf
447 $ hg --config extensions.largefiles= archive -S -I '**.bin' ../archive_lf
448 $ find ../archive_lf | sort
448 $ find ../archive_lf | sort
449 ../archive_lf
449 ../archive_lf
450 ../archive_lf/large.bin
450 ../archive_lf/large.bin
451 ../archive_lf/sub1
451 ../archive_lf/sub1
452 ../archive_lf/sub1/sub2
452 ../archive_lf/sub1/sub2
453 ../archive_lf/sub1/sub2/large.bin
453 ../archive_lf/sub1/sub2/large.bin
454 $ rm -rf ../archive_lf
454 $ rm -rf ../archive_lf
455
455
456 Find an exact largefile match in a largefiles subrepo
456 Find an exact largefile match in a largefiles subrepo
457
457
458 $ hg --config extensions.largefiles= archive -S -I 'sub1/sub2/large.bin' ../archive_lf
458 $ hg --config extensions.largefiles= archive -S -I 'sub1/sub2/large.bin' ../archive_lf
459 $ find ../archive_lf | sort
459 $ find ../archive_lf | sort
460 ../archive_lf
460 ../archive_lf
461 ../archive_lf/sub1
461 ../archive_lf/sub1
462 ../archive_lf/sub1/sub2
462 ../archive_lf/sub1/sub2
463 ../archive_lf/sub1/sub2/large.bin
463 ../archive_lf/sub1/sub2/large.bin
464 $ rm -rf ../archive_lf
464 $ rm -rf ../archive_lf
465
465
466 The local repo enables largefiles if a largefiles repo is cloned
466 The local repo enables largefiles if a largefiles repo is cloned
467 $ hg showconfig extensions
467 $ hg showconfig extensions
468 abort: repository requires features unknown to this Mercurial: largefiles!
468 abort: repository requires features unknown to this Mercurial: largefiles!
469 (see http://mercurial.selenic.com/wiki/MissingRequirement for more information)
469 (see http://mercurial.selenic.com/wiki/MissingRequirement for more information)
470 [255]
470 [255]
471 $ hg --config extensions.largefiles= clone -qU . ../lfclone
471 $ hg --config extensions.largefiles= clone -qU . ../lfclone
472 $ cat ../lfclone/.hg/hgrc
472 $ cat ../lfclone/.hg/hgrc
473 # example repository config (see "hg help config" for more info)
473 # example repository config (see "hg help config" for more info)
474 [paths]
474 [paths]
475 default = $TESTTMP/cloned (glob)
475 default = $TESTTMP/cloned (glob)
476
476
477 # path aliases to other clones of this repo in URLs or filesystem paths
477 # path aliases to other clones of this repo in URLs or filesystem paths
478 # (see "hg help config.paths" for more info)
478 # (see "hg help config.paths" for more info)
479 #
479 #
480 # default-push = ssh://jdoe@example.net/hg/jdoes-fork
480 # default-push = ssh://jdoe@example.net/hg/jdoes-fork
481 # my-fork = ssh://jdoe@example.net/hg/jdoes-fork
481 # my-fork = ssh://jdoe@example.net/hg/jdoes-fork
482 # my-clone = /home/jdoe/jdoes-clone
482 # my-clone = /home/jdoe/jdoes-clone
483
483
484 [ui]
484 [ui]
485 # name and email (local to this repository, optional), e.g.
485 # name and email (local to this repository, optional), e.g.
486 # username = Jane Doe <jdoe@example.com>
486 # username = Jane Doe <jdoe@example.com>
487
487
488 [extensions]
488 [extensions]
489 largefiles=
489 largefiles=
490
490
491 Find an exact match to a standin (should archive nothing)
491 Find an exact match to a standin (should archive nothing)
492 $ hg --config extensions.largefiles= archive -S -I 'sub/sub2/.hglf/large.bin' ../archive_lf
492 $ hg --config extensions.largefiles= archive -S -I 'sub/sub2/.hglf/large.bin' ../archive_lf
493 $ find ../archive_lf 2> /dev/null | sort
493 $ find ../archive_lf 2> /dev/null | sort
494
494
495 $ cat >> $HGRCPATH <<EOF
495 $ cat >> $HGRCPATH <<EOF
496 > [extensions]
496 > [extensions]
497 > largefiles=
497 > largefiles=
498 > [largefiles]
498 > [largefiles]
499 > patterns=glob:**.dat
499 > patterns=glob:**.dat
500 > EOF
500 > EOF
501
501
502 Test forget through a deep subrepo with the largefiles extension, both a
502 Test forget through a deep subrepo with the largefiles extension, both a
503 largefile and a normal file. Then a largefile that hasn't been committed yet.
503 largefile and a normal file. Then a largefile that hasn't been committed yet.
504 $ touch sub1/sub2/untracked.txt
504 $ touch sub1/sub2/untracked.txt
505 $ touch sub1/sub2/large.dat
505 $ touch sub1/sub2/large.dat
506 $ hg forget sub1/sub2/large.bin sub1/sub2/test.txt sub1/sub2/untracked.txt
506 $ hg forget sub1/sub2/large.bin sub1/sub2/test.txt sub1/sub2/untracked.txt
507 not removing sub1/sub2/untracked.txt: file is already untracked (glob)
507 not removing sub1/sub2/untracked.txt: file is already untracked (glob)
508 [1]
508 [1]
509 $ hg add --large --dry-run -v sub1/sub2/untracked.txt
509 $ hg add --large --dry-run -v sub1/sub2/untracked.txt
510 adding sub1/sub2/untracked.txt as a largefile (glob)
510 adding sub1/sub2/untracked.txt as a largefile (glob)
511 $ hg add --large -v sub1/sub2/untracked.txt
511 $ hg add --large -v sub1/sub2/untracked.txt
512 adding sub1/sub2/untracked.txt as a largefile (glob)
512 adding sub1/sub2/untracked.txt as a largefile (glob)
513 $ hg add --normal -v sub1/sub2/large.dat
513 $ hg add --normal -v sub1/sub2/large.dat
514 adding sub1/sub2/large.dat (glob)
514 adding sub1/sub2/large.dat (glob)
515 $ hg forget -v sub1/sub2/untracked.txt
515 $ hg forget -v sub1/sub2/untracked.txt
516 removing sub1/sub2/untracked.txt (glob)
516 removing sub1/sub2/untracked.txt (glob)
517 $ hg status -S
517 $ hg status -S
518 A sub1/sub2/large.dat
518 A sub1/sub2/large.dat
519 R sub1/sub2/large.bin
519 R sub1/sub2/large.bin
520 R sub1/sub2/test.txt
520 R sub1/sub2/test.txt
521 ? foo/bar/abc
521 ? foo/bar/abc
522 ? sub1/sub2/untracked.txt
522 ? sub1/sub2/untracked.txt
523 ? sub1/sub2/x.txt
523 ? sub1/sub2/x.txt
524 $ hg add sub1/sub2
524 $ hg add sub1/sub2
525
525
526 $ hg archive -S -r 'wdir()' ../wdir2
526 $ hg archive -S -r 'wdir()' ../wdir2
527 $ diff -r . ../wdir2 | grep -v '\.hg$'
527 $ diff -r . ../wdir2 | egrep -v '\.hg$|^Common subdirectories:'
528 Only in ../wdir2: .hg_archival.txt
528 Only in ../wdir2: .hg_archival.txt
529 Only in .: .hglf
529 Only in .: .hglf
530 Only in .: foo
530 Only in .: foo
531 Only in ./sub1/sub2: large.bin
531 Only in ./sub1/sub2: large.bin
532 Only in ./sub1/sub2: test.txt
532 Only in ./sub1/sub2: test.txt
533 Only in ./sub1/sub2: untracked.txt
533 Only in ./sub1/sub2: untracked.txt
534 Only in ./sub1/sub2: x.txt
534 Only in ./sub1/sub2: x.txt
535 $ find ../wdir2 -type f | sort
535 $ find ../wdir2 -type f | sort
536 ../wdir2/.hg_archival.txt
536 ../wdir2/.hg_archival.txt
537 ../wdir2/.hgsub
537 ../wdir2/.hgsub
538 ../wdir2/.hgsubstate
538 ../wdir2/.hgsubstate
539 ../wdir2/large.bin
539 ../wdir2/large.bin
540 ../wdir2/main
540 ../wdir2/main
541 ../wdir2/sub1/.hgsub
541 ../wdir2/sub1/.hgsub
542 ../wdir2/sub1/.hgsubstate
542 ../wdir2/sub1/.hgsubstate
543 ../wdir2/sub1/sub1
543 ../wdir2/sub1/sub1
544 ../wdir2/sub1/sub2/folder/test.txt
544 ../wdir2/sub1/sub2/folder/test.txt
545 ../wdir2/sub1/sub2/large.dat
545 ../wdir2/sub1/sub2/large.dat
546 ../wdir2/sub1/sub2/sub2
546 ../wdir2/sub1/sub2/sub2
547 $ hg status -S -mac -n | sort
547 $ hg status -S -mac -n | sort
548 .hgsub
548 .hgsub
549 .hgsubstate
549 .hgsubstate
550 large.bin
550 large.bin
551 main
551 main
552 sub1/.hgsub
552 sub1/.hgsub
553 sub1/.hgsubstate
553 sub1/.hgsubstate
554 sub1/sub1
554 sub1/sub1
555 sub1/sub2/folder/test.txt
555 sub1/sub2/folder/test.txt
556 sub1/sub2/large.dat
556 sub1/sub2/large.dat
557 sub1/sub2/sub2
557 sub1/sub2/sub2
558
558
559 $ hg ci -Sqm 'forget testing'
559 $ hg ci -Sqm 'forget testing'
560
560
561 Test 'wdir()' modified file archiving with largefiles
561 Test 'wdir()' modified file archiving with largefiles
562 $ echo 'mod' > main
562 $ echo 'mod' > main
563 $ echo 'mod' > large.bin
563 $ echo 'mod' > large.bin
564 $ echo 'mod' > sub1/sub2/large.dat
564 $ echo 'mod' > sub1/sub2/large.dat
565 $ hg archive -S -r 'wdir()' ../wdir3
565 $ hg archive -S -r 'wdir()' ../wdir3
566 $ diff -r . ../wdir3 | grep -v '\.hg$'
566 $ diff -r . ../wdir3 | egrep -v '\.hg$|^Common subdirectories'
567 Only in ../wdir3: .hg_archival.txt
567 Only in ../wdir3: .hg_archival.txt
568 Only in .: .hglf
568 Only in .: .hglf
569 Only in .: foo
569 Only in .: foo
570 Only in ./sub1/sub2: large.bin
570 Only in ./sub1/sub2: large.bin
571 Only in ./sub1/sub2: test.txt
571 Only in ./sub1/sub2: test.txt
572 Only in ./sub1/sub2: untracked.txt
572 Only in ./sub1/sub2: untracked.txt
573 Only in ./sub1/sub2: x.txt
573 Only in ./sub1/sub2: x.txt
574 $ find ../wdir3 -type f | sort
574 $ find ../wdir3 -type f | sort
575 ../wdir3/.hg_archival.txt
575 ../wdir3/.hg_archival.txt
576 ../wdir3/.hgsub
576 ../wdir3/.hgsub
577 ../wdir3/.hgsubstate
577 ../wdir3/.hgsubstate
578 ../wdir3/large.bin
578 ../wdir3/large.bin
579 ../wdir3/main
579 ../wdir3/main
580 ../wdir3/sub1/.hgsub
580 ../wdir3/sub1/.hgsub
581 ../wdir3/sub1/.hgsubstate
581 ../wdir3/sub1/.hgsubstate
582 ../wdir3/sub1/sub1
582 ../wdir3/sub1/sub1
583 ../wdir3/sub1/sub2/folder/test.txt
583 ../wdir3/sub1/sub2/folder/test.txt
584 ../wdir3/sub1/sub2/large.dat
584 ../wdir3/sub1/sub2/large.dat
585 ../wdir3/sub1/sub2/sub2
585 ../wdir3/sub1/sub2/sub2
586 $ hg up -Cq
586 $ hg up -Cq
587
587
588 Test issue4330: commit a directory where only normal files have changed
588 Test issue4330: commit a directory where only normal files have changed
589 $ touch foo/bar/large.dat
589 $ touch foo/bar/large.dat
590 $ hg add --large foo/bar/large.dat
590 $ hg add --large foo/bar/large.dat
591 $ hg ci -m 'add foo/bar/large.dat'
591 $ hg ci -m 'add foo/bar/large.dat'
592 $ touch a.txt
592 $ touch a.txt
593 $ touch a.dat
593 $ touch a.dat
594 $ hg add -v foo/bar/abc a.txt a.dat
594 $ hg add -v foo/bar/abc a.txt a.dat
595 adding a.dat as a largefile
595 adding a.dat as a largefile
596 adding a.txt
596 adding a.txt
597 adding foo/bar/abc (glob)
597 adding foo/bar/abc (glob)
598 $ hg ci -m 'dir commit with only normal file deltas' foo/bar
598 $ hg ci -m 'dir commit with only normal file deltas' foo/bar
599 $ hg status
599 $ hg status
600 A a.dat
600 A a.dat
601 A a.txt
601 A a.txt
602
602
603 Test a directory commit with a changed largefile and a changed normal file
603 Test a directory commit with a changed largefile and a changed normal file
604 $ echo changed > foo/bar/large.dat
604 $ echo changed > foo/bar/large.dat
605 $ echo changed > foo/bar/abc
605 $ echo changed > foo/bar/abc
606 $ hg ci -m 'dir commit with normal and lf file deltas' foo
606 $ hg ci -m 'dir commit with normal and lf file deltas' foo
607 $ hg status
607 $ hg status
608 A a.dat
608 A a.dat
609 A a.txt
609 A a.txt
610
610
611 $ hg ci -m "add a.*"
611 $ hg ci -m "add a.*"
612 $ hg mv a.dat b.dat
612 $ hg mv a.dat b.dat
613 $ hg mv foo/bar/abc foo/bar/def
613 $ hg mv foo/bar/abc foo/bar/def
614 $ hg status -C
614 $ hg status -C
615 A b.dat
615 A b.dat
616 a.dat
616 a.dat
617 A foo/bar/def
617 A foo/bar/def
618 foo/bar/abc
618 foo/bar/abc
619 R a.dat
619 R a.dat
620 R foo/bar/abc
620 R foo/bar/abc
621
621
622 $ hg ci -m "move large and normal"
622 $ hg ci -m "move large and normal"
623 $ hg status -C --rev '.^' --rev .
623 $ hg status -C --rev '.^' --rev .
624 A b.dat
624 A b.dat
625 a.dat
625 a.dat
626 A foo/bar/def
626 A foo/bar/def
627 foo/bar/abc
627 foo/bar/abc
628 R a.dat
628 R a.dat
629 R foo/bar/abc
629 R foo/bar/abc
630
630
631
631
632 $ echo foo > main
632 $ echo foo > main
633 $ hg ci -m "mod parent only"
633 $ hg ci -m "mod parent only"
634 $ hg init sub3
634 $ hg init sub3
635 $ echo "sub3 = sub3" >> .hgsub
635 $ echo "sub3 = sub3" >> .hgsub
636 $ echo xyz > sub3/a.txt
636 $ echo xyz > sub3/a.txt
637 $ hg add sub3/a.txt
637 $ hg add sub3/a.txt
638 $ hg ci -Sm "add sub3"
638 $ hg ci -Sm "add sub3"
639 committing subrepository sub3
639 committing subrepository sub3
640 $ cat .hgsub | grep -v sub3 > .hgsub1
640 $ cat .hgsub | grep -v sub3 > .hgsub1
641 $ mv .hgsub1 .hgsub
641 $ mv .hgsub1 .hgsub
642 $ hg ci -m "remove sub3"
642 $ hg ci -m "remove sub3"
643
643
644 $ hg log -r "subrepo()" --style compact
644 $ hg log -r "subrepo()" --style compact
645 0 7f491f53a367 1970-01-01 00:00 +0000 test
645 0 7f491f53a367 1970-01-01 00:00 +0000 test
646 main import
646 main import
647
647
648 1 ffe6649062fe 1970-01-01 00:00 +0000 test
648 1 ffe6649062fe 1970-01-01 00:00 +0000 test
649 deep nested modif should trigger a commit
649 deep nested modif should trigger a commit
650
650
651 2 9bb10eebee29 1970-01-01 00:00 +0000 test
651 2 9bb10eebee29 1970-01-01 00:00 +0000 test
652 add test.txt
652 add test.txt
653
653
654 3 7c64f035294f 1970-01-01 00:00 +0000 test
654 3 7c64f035294f 1970-01-01 00:00 +0000 test
655 add large files
655 add large files
656
656
657 4 f734a59e2e35 1970-01-01 00:00 +0000 test
657 4 f734a59e2e35 1970-01-01 00:00 +0000 test
658 forget testing
658 forget testing
659
659
660 11 9685a22af5db 1970-01-01 00:00 +0000 test
660 11 9685a22af5db 1970-01-01 00:00 +0000 test
661 add sub3
661 add sub3
662
662
663 12[tip] 2e0485b475b9 1970-01-01 00:00 +0000 test
663 12[tip] 2e0485b475b9 1970-01-01 00:00 +0000 test
664 remove sub3
664 remove sub3
665
665
666 $ hg log -r "subrepo('sub3')" --style compact
666 $ hg log -r "subrepo('sub3')" --style compact
667 11 9685a22af5db 1970-01-01 00:00 +0000 test
667 11 9685a22af5db 1970-01-01 00:00 +0000 test
668 add sub3
668 add sub3
669
669
670 12[tip] 2e0485b475b9 1970-01-01 00:00 +0000 test
670 12[tip] 2e0485b475b9 1970-01-01 00:00 +0000 test
671 remove sub3
671 remove sub3
672
672
673 $ hg log -r "subrepo('bogus')" --style compact
673 $ hg log -r "subrepo('bogus')" --style compact
674
674
675
675
676 Test .hgsubstate in the R state
676 Test .hgsubstate in the R state
677
677
678 $ hg rm .hgsub .hgsubstate
678 $ hg rm .hgsub .hgsubstate
679 $ hg ci -m 'trash subrepo tracking'
679 $ hg ci -m 'trash subrepo tracking'
680
680
681 $ hg log -r "subrepo('re:sub\d+')" --style compact
681 $ hg log -r "subrepo('re:sub\d+')" --style compact
682 0 7f491f53a367 1970-01-01 00:00 +0000 test
682 0 7f491f53a367 1970-01-01 00:00 +0000 test
683 main import
683 main import
684
684
685 1 ffe6649062fe 1970-01-01 00:00 +0000 test
685 1 ffe6649062fe 1970-01-01 00:00 +0000 test
686 deep nested modif should trigger a commit
686 deep nested modif should trigger a commit
687
687
688 2 9bb10eebee29 1970-01-01 00:00 +0000 test
688 2 9bb10eebee29 1970-01-01 00:00 +0000 test
689 add test.txt
689 add test.txt
690
690
691 3 7c64f035294f 1970-01-01 00:00 +0000 test
691 3 7c64f035294f 1970-01-01 00:00 +0000 test
692 add large files
692 add large files
693
693
694 4 f734a59e2e35 1970-01-01 00:00 +0000 test
694 4 f734a59e2e35 1970-01-01 00:00 +0000 test
695 forget testing
695 forget testing
696
696
697 11 9685a22af5db 1970-01-01 00:00 +0000 test
697 11 9685a22af5db 1970-01-01 00:00 +0000 test
698 add sub3
698 add sub3
699
699
700 12 2e0485b475b9 1970-01-01 00:00 +0000 test
700 12 2e0485b475b9 1970-01-01 00:00 +0000 test
701 remove sub3
701 remove sub3
702
702
703 13[tip] a68b2c361653 1970-01-01 00:00 +0000 test
703 13[tip] a68b2c361653 1970-01-01 00:00 +0000 test
704 trash subrepo tracking
704 trash subrepo tracking
705
705
706
706
707 Restore the trashed subrepo tracking
707 Restore the trashed subrepo tracking
708
708
709 $ hg rollback -q
709 $ hg rollback -q
710 $ hg update -Cq .
710 $ hg update -Cq .
711
711
712 Interaction with extdiff, largefiles and subrepos
712 Interaction with extdiff, largefiles and subrepos
713
713
714 $ hg --config extensions.extdiff= extdiff -S
714 $ hg --config extensions.extdiff= extdiff -S
715
715
716 $ hg --config extensions.extdiff= extdiff -r '.^' -S
716 $ hg --config extensions.extdiff= extdiff -r '.^' -S
717 diff -Npru cloned.*/.hgsub cloned/.hgsub (glob)
717 diff -Npru cloned.*/.hgsub cloned/.hgsub (glob)
718 --- cloned.*/.hgsub * +0000 (glob)
718 --- cloned.*/.hgsub * +0000 (glob)
719 +++ cloned/.hgsub * +0000 (glob)
719 +++ cloned/.hgsub * +0000 (glob)
720 @@ -1,2 +1 @@
720 @@ -1,2 +1 @@
721 sub1 = ../sub1
721 sub1 = ../sub1
722 -sub3 = sub3
722 -sub3 = sub3
723 diff -Npru cloned.*/.hgsubstate cloned/.hgsubstate (glob)
723 diff -Npru cloned.*/.hgsubstate cloned/.hgsubstate (glob)
724 --- cloned.*/.hgsubstate * +0000 (glob)
724 --- cloned.*/.hgsubstate * +0000 (glob)
725 +++ cloned/.hgsubstate * +0000 (glob)
725 +++ cloned/.hgsubstate * +0000 (glob)
726 @@ -1,2 +1 @@
726 @@ -1,2 +1 @@
727 7a36fa02b66e61f27f3d4a822809f159479b8ab2 sub1
727 7a36fa02b66e61f27f3d4a822809f159479b8ab2 sub1
728 -b1a26de6f2a045a9f079323693614ee322f1ff7e sub3
728 -b1a26de6f2a045a9f079323693614ee322f1ff7e sub3
729 [1]
729 [1]
730
730
731 $ hg --config extensions.extdiff= extdiff -r 0 -r '.^' -S
731 $ hg --config extensions.extdiff= extdiff -r 0 -r '.^' -S
732 diff -Npru cloned.*/.hglf/b.dat cloned.*/.hglf/b.dat (glob)
732 diff -Npru cloned.*/.hglf/b.dat cloned.*/.hglf/b.dat (glob)
733 --- cloned.*/.hglf/b.dat * (glob)
733 --- cloned.*/.hglf/b.dat * (glob)
734 +++ cloned.*/.hglf/b.dat * (glob)
734 +++ cloned.*/.hglf/b.dat * (glob)
735 @@ -0,0 +1 @@
735 @@ -0,0 +1 @@
736 +da39a3ee5e6b4b0d3255bfef95601890afd80709
736 +da39a3ee5e6b4b0d3255bfef95601890afd80709
737 diff -Npru cloned.*/.hglf/foo/bar/large.dat cloned.*/.hglf/foo/bar/large.dat (glob)
737 diff -Npru cloned.*/.hglf/foo/bar/large.dat cloned.*/.hglf/foo/bar/large.dat (glob)
738 --- cloned.*/.hglf/foo/bar/large.dat * (glob)
738 --- cloned.*/.hglf/foo/bar/large.dat * (glob)
739 +++ cloned.*/.hglf/foo/bar/large.dat * (glob)
739 +++ cloned.*/.hglf/foo/bar/large.dat * (glob)
740 @@ -0,0 +1 @@
740 @@ -0,0 +1 @@
741 +2f6933b5ee0f5fdd823d9717d8729f3c2523811b
741 +2f6933b5ee0f5fdd823d9717d8729f3c2523811b
742 diff -Npru cloned.*/.hglf/large.bin cloned.*/.hglf/large.bin (glob)
742 diff -Npru cloned.*/.hglf/large.bin cloned.*/.hglf/large.bin (glob)
743 --- cloned.*/.hglf/large.bin * (glob)
743 --- cloned.*/.hglf/large.bin * (glob)
744 +++ cloned.*/.hglf/large.bin * (glob)
744 +++ cloned.*/.hglf/large.bin * (glob)
745 @@ -0,0 +1 @@
745 @@ -0,0 +1 @@
746 +7f7097b041ccf68cc5561e9600da4655d21c6d18
746 +7f7097b041ccf68cc5561e9600da4655d21c6d18
747 diff -Npru cloned.*/.hgsub cloned.*/.hgsub (glob)
747 diff -Npru cloned.*/.hgsub cloned.*/.hgsub (glob)
748 --- cloned.*/.hgsub * (glob)
748 --- cloned.*/.hgsub * (glob)
749 +++ cloned.*/.hgsub * (glob)
749 +++ cloned.*/.hgsub * (glob)
750 @@ -1 +1,2 @@
750 @@ -1 +1,2 @@
751 sub1 = ../sub1
751 sub1 = ../sub1
752 +sub3 = sub3
752 +sub3 = sub3
753 diff -Npru cloned.*/.hgsubstate cloned.*/.hgsubstate (glob)
753 diff -Npru cloned.*/.hgsubstate cloned.*/.hgsubstate (glob)
754 --- cloned.*/.hgsubstate * (glob)
754 --- cloned.*/.hgsubstate * (glob)
755 +++ cloned.*/.hgsubstate * (glob)
755 +++ cloned.*/.hgsubstate * (glob)
756 @@ -1 +1,2 @@
756 @@ -1 +1,2 @@
757 -fc3b4ce2696f7741438c79207583768f2ce6b0dd sub1
757 -fc3b4ce2696f7741438c79207583768f2ce6b0dd sub1
758 +7a36fa02b66e61f27f3d4a822809f159479b8ab2 sub1
758 +7a36fa02b66e61f27f3d4a822809f159479b8ab2 sub1
759 +b1a26de6f2a045a9f079323693614ee322f1ff7e sub3
759 +b1a26de6f2a045a9f079323693614ee322f1ff7e sub3
760 diff -Npru cloned.*/foo/bar/def cloned.*/foo/bar/def (glob)
760 diff -Npru cloned.*/foo/bar/def cloned.*/foo/bar/def (glob)
761 --- cloned.*/foo/bar/def * (glob)
761 --- cloned.*/foo/bar/def * (glob)
762 +++ cloned.*/foo/bar/def * (glob)
762 +++ cloned.*/foo/bar/def * (glob)
763 @@ -0,0 +1 @@
763 @@ -0,0 +1 @@
764 +changed
764 +changed
765 diff -Npru cloned.*/main cloned.*/main (glob)
765 diff -Npru cloned.*/main cloned.*/main (glob)
766 --- cloned.*/main * (glob)
766 --- cloned.*/main * (glob)
767 +++ cloned.*/main * (glob)
767 +++ cloned.*/main * (glob)
768 @@ -1 +1 @@
768 @@ -1 +1 @@
769 -main
769 -main
770 +foo
770 +foo
771 diff -Npru cloned.*/sub1/.hgsubstate cloned.*/sub1/.hgsubstate (glob)
771 diff -Npru cloned.*/sub1/.hgsubstate cloned.*/sub1/.hgsubstate (glob)
772 --- cloned.*/sub1/.hgsubstate * (glob)
772 --- cloned.*/sub1/.hgsubstate * (glob)
773 +++ cloned.*/sub1/.hgsubstate * (glob)
773 +++ cloned.*/sub1/.hgsubstate * (glob)
774 @@ -1 +1 @@
774 @@ -1 +1 @@
775 -c57a0840e3badd667ef3c3ef65471609acb2ba3c sub2
775 -c57a0840e3badd667ef3c3ef65471609acb2ba3c sub2
776 +c77908c81ccea3794a896c79e98b0e004aee2e9e sub2
776 +c77908c81ccea3794a896c79e98b0e004aee2e9e sub2
777 diff -Npru cloned.*/sub1/sub2/folder/test.txt cloned.*/sub1/sub2/folder/test.txt (glob)
777 diff -Npru cloned.*/sub1/sub2/folder/test.txt cloned.*/sub1/sub2/folder/test.txt (glob)
778 --- cloned.*/sub1/sub2/folder/test.txt * (glob)
778 --- cloned.*/sub1/sub2/folder/test.txt * (glob)
779 +++ cloned.*/sub1/sub2/folder/test.txt * (glob)
779 +++ cloned.*/sub1/sub2/folder/test.txt * (glob)
780 @@ -0,0 +1 @@
780 @@ -0,0 +1 @@
781 +subfolder
781 +subfolder
782 diff -Npru cloned.*/sub1/sub2/sub2 cloned.*/sub1/sub2/sub2 (glob)
782 diff -Npru cloned.*/sub1/sub2/sub2 cloned.*/sub1/sub2/sub2 (glob)
783 --- cloned.*/sub1/sub2/sub2 * (glob)
783 --- cloned.*/sub1/sub2/sub2 * (glob)
784 +++ cloned.*/sub1/sub2/sub2 * (glob)
784 +++ cloned.*/sub1/sub2/sub2 * (glob)
785 @@ -1 +1 @@
785 @@ -1 +1 @@
786 -sub2
786 -sub2
787 +modified
787 +modified
788 diff -Npru cloned.*/sub3/a.txt cloned.*/sub3/a.txt (glob)
788 diff -Npru cloned.*/sub3/a.txt cloned.*/sub3/a.txt (glob)
789 --- cloned.*/sub3/a.txt * (glob)
789 --- cloned.*/sub3/a.txt * (glob)
790 +++ cloned.*/sub3/a.txt * (glob)
790 +++ cloned.*/sub3/a.txt * (glob)
791 @@ -0,0 +1 @@
791 @@ -0,0 +1 @@
792 +xyz
792 +xyz
793 [1]
793 [1]
794
794
795 $ echo mod > sub1/sub2/sub2
795 $ echo mod > sub1/sub2/sub2
796 $ hg --config extensions.extdiff= extdiff -S
796 $ hg --config extensions.extdiff= extdiff -S
797 --- */cloned.*/sub1/sub2/sub2 * (glob)
797 --- */cloned.*/sub1/sub2/sub2 * (glob)
798 +++ */cloned/sub1/sub2/sub2 * (glob)
798 +++ */cloned/sub1/sub2/sub2 * (glob)
799 @@ -1 +1 @@
799 @@ -1 +1 @@
800 -modified
800 -modified
801 +mod
801 +mod
802 [1]
802 [1]
803
803
804 $ cd ..
804 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now