##// END OF EJS Templates
test-largefiles: verify content of .hg_archival.txt
Yuya Nishihara -
r24679:422d3c0c default
parent child Browse files
Show More
@@ -1,1074 +1,1080 b''
1 This file contains testcases that tend to be related to special cases or less
1 This file contains testcases that tend to be related to special cases or less
2 common commands affecting largefile.
2 common commands affecting largefile.
3
3
4 Each sections should be independent of each others.
4 Each sections should be independent of each others.
5
5
6 $ USERCACHE="$TESTTMP/cache"; export USERCACHE
6 $ USERCACHE="$TESTTMP/cache"; export USERCACHE
7 $ mkdir "${USERCACHE}"
7 $ mkdir "${USERCACHE}"
8 $ cat >> $HGRCPATH <<EOF
8 $ cat >> $HGRCPATH <<EOF
9 > [extensions]
9 > [extensions]
10 > largefiles=
10 > largefiles=
11 > purge=
11 > purge=
12 > rebase=
12 > rebase=
13 > transplant=
13 > transplant=
14 > [phases]
14 > [phases]
15 > publish=False
15 > publish=False
16 > [largefiles]
16 > [largefiles]
17 > minsize=2
17 > minsize=2
18 > patterns=glob:**.dat
18 > patterns=glob:**.dat
19 > usercache=${USERCACHE}
19 > usercache=${USERCACHE}
20 > [hooks]
20 > [hooks]
21 > precommit=sh -c "echo \\"Invoking status precommit hook\\"; hg status"
21 > precommit=sh -c "echo \\"Invoking status precommit hook\\"; hg status"
22 > EOF
22 > EOF
23
23
24
24
25
25
26 Test copies and moves from a directory other than root (issue3516)
26 Test copies and moves from a directory other than root (issue3516)
27 =========================================================================
27 =========================================================================
28
28
29 $ hg init lf_cpmv
29 $ hg init lf_cpmv
30 $ cd lf_cpmv
30 $ cd lf_cpmv
31 $ mkdir dira
31 $ mkdir dira
32 $ mkdir dira/dirb
32 $ mkdir dira/dirb
33 $ touch dira/dirb/largefile
33 $ touch dira/dirb/largefile
34 $ hg add --large dira/dirb/largefile
34 $ hg add --large dira/dirb/largefile
35 $ hg commit -m "added"
35 $ hg commit -m "added"
36 Invoking status precommit hook
36 Invoking status precommit hook
37 A dira/dirb/largefile
37 A dira/dirb/largefile
38 $ cd dira
38 $ cd dira
39 $ hg cp dirb/largefile foo/largefile
39 $ hg cp dirb/largefile foo/largefile
40 $ hg ci -m "deep copy"
40 $ hg ci -m "deep copy"
41 Invoking status precommit hook
41 Invoking status precommit hook
42 A dira/foo/largefile
42 A dira/foo/largefile
43 $ find . | sort
43 $ find . | sort
44 .
44 .
45 ./dirb
45 ./dirb
46 ./dirb/largefile
46 ./dirb/largefile
47 ./foo
47 ./foo
48 ./foo/largefile
48 ./foo/largefile
49 $ hg mv foo/largefile baz/largefile
49 $ hg mv foo/largefile baz/largefile
50 $ hg ci -m "moved"
50 $ hg ci -m "moved"
51 Invoking status precommit hook
51 Invoking status precommit hook
52 A dira/baz/largefile
52 A dira/baz/largefile
53 R dira/foo/largefile
53 R dira/foo/largefile
54 $ find . | sort
54 $ find . | sort
55 .
55 .
56 ./baz
56 ./baz
57 ./baz/largefile
57 ./baz/largefile
58 ./dirb
58 ./dirb
59 ./dirb/largefile
59 ./dirb/largefile
60 $ cd ..
60 $ cd ..
61 $ hg mv dira dirc
61 $ hg mv dira dirc
62 moving .hglf/dira/baz/largefile to .hglf/dirc/baz/largefile (glob)
62 moving .hglf/dira/baz/largefile to .hglf/dirc/baz/largefile (glob)
63 moving .hglf/dira/dirb/largefile to .hglf/dirc/dirb/largefile (glob)
63 moving .hglf/dira/dirb/largefile to .hglf/dirc/dirb/largefile (glob)
64 $ find * | sort
64 $ find * | sort
65 dirc
65 dirc
66 dirc/baz
66 dirc/baz
67 dirc/baz/largefile
67 dirc/baz/largefile
68 dirc/dirb
68 dirc/dirb
69 dirc/dirb/largefile
69 dirc/dirb/largefile
70
70
71 $ hg clone -q . ../fetch
71 $ hg clone -q . ../fetch
72 $ hg --config extensions.fetch= fetch ../fetch
72 $ hg --config extensions.fetch= fetch ../fetch
73 abort: uncommitted changes
73 abort: uncommitted changes
74 [255]
74 [255]
75 $ hg up -qC
75 $ hg up -qC
76 $ cd ..
76 $ cd ..
77
77
78 Clone a local repository owned by another user
78 Clone a local repository owned by another user
79 ===================================================
79 ===================================================
80
80
81 #if unix-permissions
81 #if unix-permissions
82
82
83 We have to simulate that here by setting $HOME and removing write permissions
83 We have to simulate that here by setting $HOME and removing write permissions
84 $ ORIGHOME="$HOME"
84 $ ORIGHOME="$HOME"
85 $ mkdir alice
85 $ mkdir alice
86 $ HOME="`pwd`/alice"
86 $ HOME="`pwd`/alice"
87 $ cd alice
87 $ cd alice
88 $ hg init pubrepo
88 $ hg init pubrepo
89 $ cd pubrepo
89 $ cd pubrepo
90 $ dd if=/dev/zero bs=1k count=11k > a-large-file 2> /dev/null
90 $ dd if=/dev/zero bs=1k count=11k > a-large-file 2> /dev/null
91 $ hg add --large a-large-file
91 $ hg add --large a-large-file
92 $ hg commit -m "Add a large file"
92 $ hg commit -m "Add a large file"
93 Invoking status precommit hook
93 Invoking status precommit hook
94 A a-large-file
94 A a-large-file
95 $ cd ..
95 $ cd ..
96 $ chmod -R a-w pubrepo
96 $ chmod -R a-w pubrepo
97 $ cd ..
97 $ cd ..
98 $ mkdir bob
98 $ mkdir bob
99 $ HOME="`pwd`/bob"
99 $ HOME="`pwd`/bob"
100 $ cd bob
100 $ cd bob
101 $ hg clone --pull ../alice/pubrepo pubrepo
101 $ hg clone --pull ../alice/pubrepo pubrepo
102 requesting all changes
102 requesting all changes
103 adding changesets
103 adding changesets
104 adding manifests
104 adding manifests
105 adding file changes
105 adding file changes
106 added 1 changesets with 1 changes to 1 files
106 added 1 changesets with 1 changes to 1 files
107 updating to branch default
107 updating to branch default
108 getting changed largefiles
108 getting changed largefiles
109 1 largefiles updated, 0 removed
109 1 largefiles updated, 0 removed
110 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
110 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
111 $ cd ..
111 $ cd ..
112 $ chmod -R u+w alice/pubrepo
112 $ chmod -R u+w alice/pubrepo
113 $ HOME="$ORIGHOME"
113 $ HOME="$ORIGHOME"
114
114
115 #endif
115 #endif
116
116
117
117
118 Symlink to a large largefile should behave the same as a symlink to a normal file
118 Symlink to a large largefile should behave the same as a symlink to a normal file
119 =====================================================================================
119 =====================================================================================
120
120
121 #if symlink
121 #if symlink
122
122
123 $ hg init largesymlink
123 $ hg init largesymlink
124 $ cd largesymlink
124 $ cd largesymlink
125 $ dd if=/dev/zero bs=1k count=10k of=largefile 2>/dev/null
125 $ dd if=/dev/zero bs=1k count=10k of=largefile 2>/dev/null
126 $ hg add --large largefile
126 $ hg add --large largefile
127 $ hg commit -m "commit a large file"
127 $ hg commit -m "commit a large file"
128 Invoking status precommit hook
128 Invoking status precommit hook
129 A largefile
129 A largefile
130 $ ln -s largefile largelink
130 $ ln -s largefile largelink
131 $ hg add largelink
131 $ hg add largelink
132 $ hg commit -m "commit a large symlink"
132 $ hg commit -m "commit a large symlink"
133 Invoking status precommit hook
133 Invoking status precommit hook
134 A largelink
134 A largelink
135 $ rm -f largelink
135 $ rm -f largelink
136 $ hg up >/dev/null
136 $ hg up >/dev/null
137 $ test -f largelink
137 $ test -f largelink
138 [1]
138 [1]
139 $ test -L largelink
139 $ test -L largelink
140 [1]
140 [1]
141 $ rm -f largelink # make next part of the test independent of the previous
141 $ rm -f largelink # make next part of the test independent of the previous
142 $ hg up -C >/dev/null
142 $ hg up -C >/dev/null
143 $ test -f largelink
143 $ test -f largelink
144 $ test -L largelink
144 $ test -L largelink
145 $ cd ..
145 $ cd ..
146
146
147 #endif
147 #endif
148
148
149
149
150 test for pattern matching on 'hg status':
150 test for pattern matching on 'hg status':
151 ==============================================
151 ==============================================
152
152
153
153
154 to boost performance, largefiles checks whether specified patterns are
154 to boost performance, largefiles checks whether specified patterns are
155 related to largefiles in working directory (NOT to STANDIN) or not.
155 related to largefiles in working directory (NOT to STANDIN) or not.
156
156
157 $ hg init statusmatch
157 $ hg init statusmatch
158 $ cd statusmatch
158 $ cd statusmatch
159
159
160 $ mkdir -p a/b/c/d
160 $ mkdir -p a/b/c/d
161 $ echo normal > a/b/c/d/e.normal.txt
161 $ echo normal > a/b/c/d/e.normal.txt
162 $ hg add a/b/c/d/e.normal.txt
162 $ hg add a/b/c/d/e.normal.txt
163 $ echo large > a/b/c/d/e.large.txt
163 $ echo large > a/b/c/d/e.large.txt
164 $ hg add --large a/b/c/d/e.large.txt
164 $ hg add --large a/b/c/d/e.large.txt
165 $ mkdir -p a/b/c/x
165 $ mkdir -p a/b/c/x
166 $ echo normal > a/b/c/x/y.normal.txt
166 $ echo normal > a/b/c/x/y.normal.txt
167 $ hg add a/b/c/x/y.normal.txt
167 $ hg add a/b/c/x/y.normal.txt
168 $ hg commit -m 'add files'
168 $ hg commit -m 'add files'
169 Invoking status precommit hook
169 Invoking status precommit hook
170 A a/b/c/d/e.large.txt
170 A a/b/c/d/e.large.txt
171 A a/b/c/d/e.normal.txt
171 A a/b/c/d/e.normal.txt
172 A a/b/c/x/y.normal.txt
172 A a/b/c/x/y.normal.txt
173
173
174 (1) no pattern: no performance boost
174 (1) no pattern: no performance boost
175 $ hg status -A
175 $ hg status -A
176 C a/b/c/d/e.large.txt
176 C a/b/c/d/e.large.txt
177 C a/b/c/d/e.normal.txt
177 C a/b/c/d/e.normal.txt
178 C a/b/c/x/y.normal.txt
178 C a/b/c/x/y.normal.txt
179
179
180 (2) pattern not related to largefiles: performance boost
180 (2) pattern not related to largefiles: performance boost
181 $ hg status -A a/b/c/x
181 $ hg status -A a/b/c/x
182 C a/b/c/x/y.normal.txt
182 C a/b/c/x/y.normal.txt
183
183
184 (3) pattern related to largefiles: no performance boost
184 (3) pattern related to largefiles: no performance boost
185 $ hg status -A a/b/c/d
185 $ hg status -A a/b/c/d
186 C a/b/c/d/e.large.txt
186 C a/b/c/d/e.large.txt
187 C a/b/c/d/e.normal.txt
187 C a/b/c/d/e.normal.txt
188
188
189 (4) pattern related to STANDIN (not to largefiles): performance boost
189 (4) pattern related to STANDIN (not to largefiles): performance boost
190 $ hg status -A .hglf/a
190 $ hg status -A .hglf/a
191 C .hglf/a/b/c/d/e.large.txt
191 C .hglf/a/b/c/d/e.large.txt
192
192
193 (5) mixed case: no performance boost
193 (5) mixed case: no performance boost
194 $ hg status -A a/b/c/x a/b/c/d
194 $ hg status -A a/b/c/x a/b/c/d
195 C a/b/c/d/e.large.txt
195 C a/b/c/d/e.large.txt
196 C a/b/c/d/e.normal.txt
196 C a/b/c/d/e.normal.txt
197 C a/b/c/x/y.normal.txt
197 C a/b/c/x/y.normal.txt
198
198
199 verify that largefiles doesn't break filesets
199 verify that largefiles doesn't break filesets
200
200
201 $ hg log --rev . --exclude "set:binary()"
201 $ hg log --rev . --exclude "set:binary()"
202 changeset: 0:41bd42f10efa
202 changeset: 0:41bd42f10efa
203 tag: tip
203 tag: tip
204 user: test
204 user: test
205 date: Thu Jan 01 00:00:00 1970 +0000
205 date: Thu Jan 01 00:00:00 1970 +0000
206 summary: add files
206 summary: add files
207
207
208 verify that large files in subrepos handled properly
208 verify that large files in subrepos handled properly
209 $ hg init subrepo
209 $ hg init subrepo
210 $ echo "subrepo = subrepo" > .hgsub
210 $ echo "subrepo = subrepo" > .hgsub
211 $ hg add .hgsub
211 $ hg add .hgsub
212 $ hg ci -m "add subrepo"
212 $ hg ci -m "add subrepo"
213 Invoking status precommit hook
213 Invoking status precommit hook
214 A .hgsub
214 A .hgsub
215 ? .hgsubstate
215 ? .hgsubstate
216 $ echo "rev 1" > subrepo/large.txt
216 $ echo "rev 1" > subrepo/large.txt
217 $ hg add --large subrepo/large.txt
217 $ hg add --large subrepo/large.txt
218 $ hg sum
218 $ hg sum
219 parent: 1:8ee150ea2e9c tip
219 parent: 1:8ee150ea2e9c tip
220 add subrepo
220 add subrepo
221 branch: default
221 branch: default
222 commit: 1 subrepos
222 commit: 1 subrepos
223 update: (current)
223 update: (current)
224 $ hg st
224 $ hg st
225 $ hg st -S
225 $ hg st -S
226 A subrepo/large.txt
226 A subrepo/large.txt
227 $ hg ci -S -m "commit top repo"
227 $ hg ci -S -m "commit top repo"
228 committing subrepository subrepo
228 committing subrepository subrepo
229 Invoking status precommit hook
229 Invoking status precommit hook
230 A large.txt
230 A large.txt
231 Invoking status precommit hook
231 Invoking status precommit hook
232 M .hgsubstate
232 M .hgsubstate
233 # No differences
233 # No differences
234 $ hg st -S
234 $ hg st -S
235 $ hg sum
235 $ hg sum
236 parent: 2:ce4cd0c527a6 tip
236 parent: 2:ce4cd0c527a6 tip
237 commit top repo
237 commit top repo
238 branch: default
238 branch: default
239 commit: (clean)
239 commit: (clean)
240 update: (current)
240 update: (current)
241 $ echo "rev 2" > subrepo/large.txt
241 $ echo "rev 2" > subrepo/large.txt
242 $ hg st -S
242 $ hg st -S
243 M subrepo/large.txt
243 M subrepo/large.txt
244 $ hg sum
244 $ hg sum
245 parent: 2:ce4cd0c527a6 tip
245 parent: 2:ce4cd0c527a6 tip
246 commit top repo
246 commit top repo
247 branch: default
247 branch: default
248 commit: 1 subrepos
248 commit: 1 subrepos
249 update: (current)
249 update: (current)
250 $ hg ci -m "this commit should fail without -S"
250 $ hg ci -m "this commit should fail without -S"
251 abort: uncommitted changes in subrepository 'subrepo'
251 abort: uncommitted changes in subrepository 'subrepo'
252 (use --subrepos for recursive commit)
252 (use --subrepos for recursive commit)
253 [255]
253 [255]
254
254
255 Add a normal file to the subrepo, then test archiving
255 Add a normal file to the subrepo, then test archiving
256
256
257 $ echo 'normal file' > subrepo/normal.txt
257 $ echo 'normal file' > subrepo/normal.txt
258 $ touch large.dat
258 $ touch large.dat
259 $ mv subrepo/large.txt subrepo/renamed-large.txt
259 $ mv subrepo/large.txt subrepo/renamed-large.txt
260 $ hg addremove -S --dry-run
260 $ hg addremove -S --dry-run
261 adding large.dat as a largefile
261 adding large.dat as a largefile
262 removing subrepo/large.txt
262 removing subrepo/large.txt
263 adding subrepo/normal.txt
263 adding subrepo/normal.txt
264 adding subrepo/renamed-large.txt
264 adding subrepo/renamed-large.txt
265 $ hg status -S
265 $ hg status -S
266 ! subrepo/large.txt
266 ! subrepo/large.txt
267 ? large.dat
267 ? large.dat
268 ? subrepo/normal.txt
268 ? subrepo/normal.txt
269 ? subrepo/renamed-large.txt
269 ? subrepo/renamed-large.txt
270
270
271 $ hg addremove --dry-run subrepo
271 $ hg addremove --dry-run subrepo
272 removing subrepo/large.txt (glob)
272 removing subrepo/large.txt (glob)
273 adding subrepo/normal.txt (glob)
273 adding subrepo/normal.txt (glob)
274 adding subrepo/renamed-large.txt (glob)
274 adding subrepo/renamed-large.txt (glob)
275 $ hg status -S
275 $ hg status -S
276 ! subrepo/large.txt
276 ! subrepo/large.txt
277 ? large.dat
277 ? large.dat
278 ? subrepo/normal.txt
278 ? subrepo/normal.txt
279 ? subrepo/renamed-large.txt
279 ? subrepo/renamed-large.txt
280 $ cd ..
280 $ cd ..
281
281
282 $ hg -R statusmatch addremove --dry-run statusmatch/subrepo
282 $ hg -R statusmatch addremove --dry-run statusmatch/subrepo
283 removing statusmatch/subrepo/large.txt (glob)
283 removing statusmatch/subrepo/large.txt (glob)
284 adding statusmatch/subrepo/normal.txt (glob)
284 adding statusmatch/subrepo/normal.txt (glob)
285 adding statusmatch/subrepo/renamed-large.txt (glob)
285 adding statusmatch/subrepo/renamed-large.txt (glob)
286 $ hg -R statusmatch status -S
286 $ hg -R statusmatch status -S
287 ! subrepo/large.txt
287 ! subrepo/large.txt
288 ? large.dat
288 ? large.dat
289 ? subrepo/normal.txt
289 ? subrepo/normal.txt
290 ? subrepo/renamed-large.txt
290 ? subrepo/renamed-large.txt
291
291
292 $ hg -R statusmatch addremove --dry-run -S
292 $ hg -R statusmatch addremove --dry-run -S
293 adding large.dat as a largefile
293 adding large.dat as a largefile
294 removing subrepo/large.txt
294 removing subrepo/large.txt
295 adding subrepo/normal.txt
295 adding subrepo/normal.txt
296 adding subrepo/renamed-large.txt
296 adding subrepo/renamed-large.txt
297 $ cd statusmatch
297 $ cd statusmatch
298
298
299 $ mv subrepo/renamed-large.txt subrepo/large.txt
299 $ mv subrepo/renamed-large.txt subrepo/large.txt
300 $ hg addremove subrepo
300 $ hg addremove subrepo
301 adding subrepo/normal.txt (glob)
301 adding subrepo/normal.txt (glob)
302 $ hg forget subrepo/normal.txt
302 $ hg forget subrepo/normal.txt
303
303
304 $ hg addremove -S
304 $ hg addremove -S
305 adding large.dat as a largefile
305 adding large.dat as a largefile
306 adding subrepo/normal.txt
306 adding subrepo/normal.txt
307 $ rm large.dat
307 $ rm large.dat
308
308
309 $ hg addremove subrepo
309 $ hg addremove subrepo
310 $ hg addremove -S
310 $ hg addremove -S
311 removing large.dat
311 removing large.dat
312
312
313 Lock in subrepo, otherwise the change isn't archived
313 Lock in subrepo, otherwise the change isn't archived
314
314
315 $ hg ci -S -m "add normal file to top level"
315 $ hg ci -S -m "add normal file to top level"
316 committing subrepository subrepo
316 committing subrepository subrepo
317 Invoking status precommit hook
317 Invoking status precommit hook
318 M large.txt
318 M large.txt
319 A normal.txt
319 A normal.txt
320 Invoking status precommit hook
320 Invoking status precommit hook
321 M .hgsubstate
321 M .hgsubstate
322 $ hg archive -S ../lf_subrepo_archive
322 $ hg archive -S ../lf_subrepo_archive
323 $ find ../lf_subrepo_archive | sort
323 $ find ../lf_subrepo_archive | sort
324 ../lf_subrepo_archive
324 ../lf_subrepo_archive
325 ../lf_subrepo_archive/.hg_archival.txt
325 ../lf_subrepo_archive/.hg_archival.txt
326 ../lf_subrepo_archive/.hgsub
326 ../lf_subrepo_archive/.hgsub
327 ../lf_subrepo_archive/.hgsubstate
327 ../lf_subrepo_archive/.hgsubstate
328 ../lf_subrepo_archive/a
328 ../lf_subrepo_archive/a
329 ../lf_subrepo_archive/a/b
329 ../lf_subrepo_archive/a/b
330 ../lf_subrepo_archive/a/b/c
330 ../lf_subrepo_archive/a/b/c
331 ../lf_subrepo_archive/a/b/c/d
331 ../lf_subrepo_archive/a/b/c/d
332 ../lf_subrepo_archive/a/b/c/d/e.large.txt
332 ../lf_subrepo_archive/a/b/c/d/e.large.txt
333 ../lf_subrepo_archive/a/b/c/d/e.normal.txt
333 ../lf_subrepo_archive/a/b/c/d/e.normal.txt
334 ../lf_subrepo_archive/a/b/c/x
334 ../lf_subrepo_archive/a/b/c/x
335 ../lf_subrepo_archive/a/b/c/x/y.normal.txt
335 ../lf_subrepo_archive/a/b/c/x/y.normal.txt
336 ../lf_subrepo_archive/subrepo
336 ../lf_subrepo_archive/subrepo
337 ../lf_subrepo_archive/subrepo/large.txt
337 ../lf_subrepo_archive/subrepo/large.txt
338 ../lf_subrepo_archive/subrepo/normal.txt
338 ../lf_subrepo_archive/subrepo/normal.txt
339 $ cat ../lf_subrepo_archive/.hg_archival.txt
340 repo: 41bd42f10efa43698cc02052ea0977771cba506d
341 node: d56a95e6522858bc08a724c4fe2bdee066d1c30b
342 branch: default
343 latesttag: null
344 latesttagdistance: 4
339
345
340 Test update with subrepos.
346 Test update with subrepos.
341
347
342 $ hg update 0
348 $ hg update 0
343 getting changed largefiles
349 getting changed largefiles
344 0 largefiles updated, 1 removed
350 0 largefiles updated, 1 removed
345 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
351 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
346 $ hg status -S
352 $ hg status -S
347 $ hg update tip
353 $ hg update tip
348 getting changed largefiles
354 getting changed largefiles
349 1 largefiles updated, 0 removed
355 1 largefiles updated, 0 removed
350 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
356 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
351 $ hg status -S
357 $ hg status -S
352 # modify a large file
358 # modify a large file
353 $ echo "modified" > subrepo/large.txt
359 $ echo "modified" > subrepo/large.txt
354 $ hg st -S
360 $ hg st -S
355 M subrepo/large.txt
361 M subrepo/large.txt
356 # update -C should revert the change.
362 # update -C should revert the change.
357 $ hg update -C
363 $ hg update -C
358 getting changed largefiles
364 getting changed largefiles
359 1 largefiles updated, 0 removed
365 1 largefiles updated, 0 removed
360 getting changed largefiles
366 getting changed largefiles
361 0 largefiles updated, 0 removed
367 0 largefiles updated, 0 removed
362 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
368 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
363 $ hg status -S
369 $ hg status -S
364
370
365 $ hg forget -v subrepo/large.txt
371 $ hg forget -v subrepo/large.txt
366 removing subrepo/large.txt (glob)
372 removing subrepo/large.txt (glob)
367
373
368 Test reverting a forgotten file
374 Test reverting a forgotten file
369 $ hg revert -R subrepo subrepo/large.txt
375 $ hg revert -R subrepo subrepo/large.txt
370 $ hg status -SA subrepo/large.txt
376 $ hg status -SA subrepo/large.txt
371 C subrepo/large.txt
377 C subrepo/large.txt
372
378
373 $ hg rm -v subrepo/large.txt
379 $ hg rm -v subrepo/large.txt
374 removing subrepo/large.txt (glob)
380 removing subrepo/large.txt (glob)
375 $ hg revert -R subrepo subrepo/large.txt
381 $ hg revert -R subrepo subrepo/large.txt
376 $ rm subrepo/large.txt
382 $ rm subrepo/large.txt
377 $ hg addremove -S
383 $ hg addremove -S
378 removing subrepo/large.txt
384 removing subrepo/large.txt
379 $ hg st -S
385 $ hg st -S
380 R subrepo/large.txt
386 R subrepo/large.txt
381
387
382 Test archiving a revision that references a subrepo that is not yet
388 Test archiving a revision that references a subrepo that is not yet
383 cloned (see test-subrepo-recursion.t):
389 cloned (see test-subrepo-recursion.t):
384
390
385 $ hg clone -U . ../empty
391 $ hg clone -U . ../empty
386 $ cd ../empty
392 $ cd ../empty
387 $ hg archive --subrepos -r tip ../archive.tar.gz
393 $ hg archive --subrepos -r tip ../archive.tar.gz
388 cloning subrepo subrepo from $TESTTMP/statusmatch/subrepo
394 cloning subrepo subrepo from $TESTTMP/statusmatch/subrepo
389 $ cd ..
395 $ cd ..
390
396
391
397
392
398
393
399
394
400
395
401
396 Test addremove, forget and others
402 Test addremove, forget and others
397 ==============================================
403 ==============================================
398
404
399 Test that addremove picks up largefiles prior to the initial commit (issue3541)
405 Test that addremove picks up largefiles prior to the initial commit (issue3541)
400
406
401 $ hg init addrm2
407 $ hg init addrm2
402 $ cd addrm2
408 $ cd addrm2
403 $ touch large.dat
409 $ touch large.dat
404 $ touch large2.dat
410 $ touch large2.dat
405 $ touch normal
411 $ touch normal
406 $ hg add --large large.dat
412 $ hg add --large large.dat
407 $ hg addremove -v
413 $ hg addremove -v
408 adding large2.dat as a largefile
414 adding large2.dat as a largefile
409 adding normal
415 adding normal
410
416
411 Test that forgetting all largefiles reverts to islfilesrepo() == False
417 Test that forgetting all largefiles reverts to islfilesrepo() == False
412 (addremove will add *.dat as normal files now)
418 (addremove will add *.dat as normal files now)
413 $ hg forget large.dat
419 $ hg forget large.dat
414 $ hg forget large2.dat
420 $ hg forget large2.dat
415 $ hg addremove -v
421 $ hg addremove -v
416 adding large.dat
422 adding large.dat
417 adding large2.dat
423 adding large2.dat
418
424
419 Test commit's addremove option prior to the first commit
425 Test commit's addremove option prior to the first commit
420 $ hg forget large.dat
426 $ hg forget large.dat
421 $ hg forget large2.dat
427 $ hg forget large2.dat
422 $ hg add --large large.dat
428 $ hg add --large large.dat
423 $ hg ci -Am "commit"
429 $ hg ci -Am "commit"
424 adding large2.dat as a largefile
430 adding large2.dat as a largefile
425 Invoking status precommit hook
431 Invoking status precommit hook
426 A large.dat
432 A large.dat
427 A large2.dat
433 A large2.dat
428 A normal
434 A normal
429 $ find .hglf | sort
435 $ find .hglf | sort
430 .hglf
436 .hglf
431 .hglf/large.dat
437 .hglf/large.dat
432 .hglf/large2.dat
438 .hglf/large2.dat
433
439
434 Test actions on largefiles using relative paths from subdir
440 Test actions on largefiles using relative paths from subdir
435
441
436 $ mkdir sub
442 $ mkdir sub
437 $ cd sub
443 $ cd sub
438 $ echo anotherlarge > anotherlarge
444 $ echo anotherlarge > anotherlarge
439 $ hg add --large anotherlarge
445 $ hg add --large anotherlarge
440 $ hg st
446 $ hg st
441 A sub/anotherlarge
447 A sub/anotherlarge
442 $ hg st anotherlarge
448 $ hg st anotherlarge
443 A anotherlarge
449 A anotherlarge
444 $ hg commit -m anotherlarge anotherlarge
450 $ hg commit -m anotherlarge anotherlarge
445 Invoking status precommit hook
451 Invoking status precommit hook
446 A sub/anotherlarge
452 A sub/anotherlarge
447 $ hg log anotherlarge
453 $ hg log anotherlarge
448 changeset: 1:9627a577c5e9
454 changeset: 1:9627a577c5e9
449 tag: tip
455 tag: tip
450 user: test
456 user: test
451 date: Thu Jan 01 00:00:00 1970 +0000
457 date: Thu Jan 01 00:00:00 1970 +0000
452 summary: anotherlarge
458 summary: anotherlarge
453
459
454 $ hg --debug log -T '{rev}: {desc}\n' ../sub/anotherlarge
460 $ hg --debug log -T '{rev}: {desc}\n' ../sub/anotherlarge
455 updated patterns: ['../.hglf/sub/../sub/anotherlarge', '../sub/anotherlarge']
461 updated patterns: ['../.hglf/sub/../sub/anotherlarge', '../sub/anotherlarge']
456 1: anotherlarge
462 1: anotherlarge
457
463
458 $ hg log -G anotherlarge
464 $ hg log -G anotherlarge
459 @ changeset: 1:9627a577c5e9
465 @ changeset: 1:9627a577c5e9
460 | tag: tip
466 | tag: tip
461 | user: test
467 | user: test
462 | date: Thu Jan 01 00:00:00 1970 +0000
468 | date: Thu Jan 01 00:00:00 1970 +0000
463 | summary: anotherlarge
469 | summary: anotherlarge
464 |
470 |
465
471
466 $ hg log glob:another*
472 $ hg log glob:another*
467 changeset: 1:9627a577c5e9
473 changeset: 1:9627a577c5e9
468 tag: tip
474 tag: tip
469 user: test
475 user: test
470 date: Thu Jan 01 00:00:00 1970 +0000
476 date: Thu Jan 01 00:00:00 1970 +0000
471 summary: anotherlarge
477 summary: anotherlarge
472
478
473 $ hg --debug log -T '{rev}: {desc}\n' -G glob:another*
479 $ hg --debug log -T '{rev}: {desc}\n' -G glob:another*
474 updated patterns: ['glob:../.hglf/sub/another*', 'glob:another*']
480 updated patterns: ['glob:../.hglf/sub/another*', 'glob:another*']
475 @ 1: anotherlarge
481 @ 1: anotherlarge
476 |
482 |
477
483
478 #if no-msys
484 #if no-msys
479 $ hg --debug log -T '{rev}: {desc}\n' 'glob:../.hglf/sub/another*' # no-msys
485 $ hg --debug log -T '{rev}: {desc}\n' 'glob:../.hglf/sub/another*' # no-msys
480 updated patterns: ['glob:../.hglf/sub/another*']
486 updated patterns: ['glob:../.hglf/sub/another*']
481 1: anotherlarge
487 1: anotherlarge
482
488
483 $ hg --debug log -G -T '{rev}: {desc}\n' 'glob:../.hglf/sub/another*' # no-msys
489 $ hg --debug log -G -T '{rev}: {desc}\n' 'glob:../.hglf/sub/another*' # no-msys
484 updated patterns: ['glob:../.hglf/sub/another*']
490 updated patterns: ['glob:../.hglf/sub/another*']
485 @ 1: anotherlarge
491 @ 1: anotherlarge
486 |
492 |
487 #endif
493 #endif
488
494
489 $ echo more >> anotherlarge
495 $ echo more >> anotherlarge
490 $ hg st .
496 $ hg st .
491 M anotherlarge
497 M anotherlarge
492 $ hg cat anotherlarge
498 $ hg cat anotherlarge
493 anotherlarge
499 anotherlarge
494 $ hg revert anotherlarge
500 $ hg revert anotherlarge
495 $ hg st
501 $ hg st
496 ? sub/anotherlarge.orig
502 ? sub/anotherlarge.orig
497 $ cd ..
503 $ cd ..
498
504
499 Test glob logging from the root dir
505 Test glob logging from the root dir
500 $ hg log glob:**another*
506 $ hg log glob:**another*
501 changeset: 1:9627a577c5e9
507 changeset: 1:9627a577c5e9
502 tag: tip
508 tag: tip
503 user: test
509 user: test
504 date: Thu Jan 01 00:00:00 1970 +0000
510 date: Thu Jan 01 00:00:00 1970 +0000
505 summary: anotherlarge
511 summary: anotherlarge
506
512
507 $ hg log -G glob:**another*
513 $ hg log -G glob:**another*
508 @ changeset: 1:9627a577c5e9
514 @ changeset: 1:9627a577c5e9
509 | tag: tip
515 | tag: tip
510 | user: test
516 | user: test
511 | date: Thu Jan 01 00:00:00 1970 +0000
517 | date: Thu Jan 01 00:00:00 1970 +0000
512 | summary: anotherlarge
518 | summary: anotherlarge
513 |
519 |
514
520
515 $ cd ..
521 $ cd ..
516
522
517 Log from outer space
523 Log from outer space
518 $ hg --debug log -R addrm2 -T '{rev}: {desc}\n' 'addrm2/sub/anotherlarge'
524 $ hg --debug log -R addrm2 -T '{rev}: {desc}\n' 'addrm2/sub/anotherlarge'
519 updated patterns: ['addrm2/.hglf/sub/anotherlarge', 'addrm2/sub/anotherlarge']
525 updated patterns: ['addrm2/.hglf/sub/anotherlarge', 'addrm2/sub/anotherlarge']
520 1: anotherlarge
526 1: anotherlarge
521 $ hg --debug log -R addrm2 -T '{rev}: {desc}\n' 'addrm2/.hglf/sub/anotherlarge'
527 $ hg --debug log -R addrm2 -T '{rev}: {desc}\n' 'addrm2/.hglf/sub/anotherlarge'
522 updated patterns: ['addrm2/.hglf/sub/anotherlarge']
528 updated patterns: ['addrm2/.hglf/sub/anotherlarge']
523 1: anotherlarge
529 1: anotherlarge
524
530
525
531
526 Check error message while exchange
532 Check error message while exchange
527 =========================================================
533 =========================================================
528
534
529 issue3651: summary/outgoing with largefiles shows "no remote repo"
535 issue3651: summary/outgoing with largefiles shows "no remote repo"
530 unexpectedly
536 unexpectedly
531
537
532 $ mkdir issue3651
538 $ mkdir issue3651
533 $ cd issue3651
539 $ cd issue3651
534
540
535 $ hg init src
541 $ hg init src
536 $ echo a > src/a
542 $ echo a > src/a
537 $ hg -R src add --large src/a
543 $ hg -R src add --large src/a
538 $ hg -R src commit -m '#0'
544 $ hg -R src commit -m '#0'
539 Invoking status precommit hook
545 Invoking status precommit hook
540 A a
546 A a
541
547
542 check messages when no remote repository is specified:
548 check messages when no remote repository is specified:
543 "no remote repo" route for "hg outgoing --large" is not tested here,
549 "no remote repo" route for "hg outgoing --large" is not tested here,
544 because it can't be reproduced easily.
550 because it can't be reproduced easily.
545
551
546 $ hg init clone1
552 $ hg init clone1
547 $ hg -R clone1 -q pull src
553 $ hg -R clone1 -q pull src
548 $ hg -R clone1 -q update
554 $ hg -R clone1 -q update
549 $ hg -R clone1 paths | grep default
555 $ hg -R clone1 paths | grep default
550 [1]
556 [1]
551
557
552 $ hg -R clone1 summary --large
558 $ hg -R clone1 summary --large
553 parent: 0:fc0bd45326d3 tip
559 parent: 0:fc0bd45326d3 tip
554 #0
560 #0
555 branch: default
561 branch: default
556 commit: (clean)
562 commit: (clean)
557 update: (current)
563 update: (current)
558 largefiles: (no remote repo)
564 largefiles: (no remote repo)
559
565
560 check messages when there is no files to upload:
566 check messages when there is no files to upload:
561
567
562 $ hg -q clone src clone2
568 $ hg -q clone src clone2
563 $ hg -R clone2 paths | grep default
569 $ hg -R clone2 paths | grep default
564 default = $TESTTMP/issue3651/src (glob)
570 default = $TESTTMP/issue3651/src (glob)
565
571
566 $ hg -R clone2 summary --large
572 $ hg -R clone2 summary --large
567 parent: 0:fc0bd45326d3 tip
573 parent: 0:fc0bd45326d3 tip
568 #0
574 #0
569 branch: default
575 branch: default
570 commit: (clean)
576 commit: (clean)
571 update: (current)
577 update: (current)
572 largefiles: (no files to upload)
578 largefiles: (no files to upload)
573 $ hg -R clone2 outgoing --large
579 $ hg -R clone2 outgoing --large
574 comparing with $TESTTMP/issue3651/src (glob)
580 comparing with $TESTTMP/issue3651/src (glob)
575 searching for changes
581 searching for changes
576 no changes found
582 no changes found
577 largefiles: no files to upload
583 largefiles: no files to upload
578 [1]
584 [1]
579
585
580 $ hg -R clone2 outgoing --large --graph --template "{rev}"
586 $ hg -R clone2 outgoing --large --graph --template "{rev}"
581 comparing with $TESTTMP/issue3651/src (glob)
587 comparing with $TESTTMP/issue3651/src (glob)
582 searching for changes
588 searching for changes
583 no changes found
589 no changes found
584 largefiles: no files to upload
590 largefiles: no files to upload
585
591
586 check messages when there are files to upload:
592 check messages when there are files to upload:
587
593
588 $ echo b > clone2/b
594 $ echo b > clone2/b
589 $ hg -R clone2 add --large clone2/b
595 $ hg -R clone2 add --large clone2/b
590 $ hg -R clone2 commit -m '#1'
596 $ hg -R clone2 commit -m '#1'
591 Invoking status precommit hook
597 Invoking status precommit hook
592 A b
598 A b
593 $ hg -R clone2 summary --large
599 $ hg -R clone2 summary --large
594 parent: 1:1acbe71ce432 tip
600 parent: 1:1acbe71ce432 tip
595 #1
601 #1
596 branch: default
602 branch: default
597 commit: (clean)
603 commit: (clean)
598 update: (current)
604 update: (current)
599 largefiles: 1 entities for 1 files to upload
605 largefiles: 1 entities for 1 files to upload
600 $ hg -R clone2 outgoing --large
606 $ hg -R clone2 outgoing --large
601 comparing with $TESTTMP/issue3651/src (glob)
607 comparing with $TESTTMP/issue3651/src (glob)
602 searching for changes
608 searching for changes
603 changeset: 1:1acbe71ce432
609 changeset: 1:1acbe71ce432
604 tag: tip
610 tag: tip
605 user: test
611 user: test
606 date: Thu Jan 01 00:00:00 1970 +0000
612 date: Thu Jan 01 00:00:00 1970 +0000
607 summary: #1
613 summary: #1
608
614
609 largefiles to upload (1 entities):
615 largefiles to upload (1 entities):
610 b
616 b
611
617
612 $ hg -R clone2 outgoing --large --graph --template "{rev}"
618 $ hg -R clone2 outgoing --large --graph --template "{rev}"
613 comparing with $TESTTMP/issue3651/src (glob)
619 comparing with $TESTTMP/issue3651/src (glob)
614 searching for changes
620 searching for changes
615 @ 1
621 @ 1
616
622
617 largefiles to upload (1 entities):
623 largefiles to upload (1 entities):
618 b
624 b
619
625
620
626
621 $ cp clone2/b clone2/b1
627 $ cp clone2/b clone2/b1
622 $ cp clone2/b clone2/b2
628 $ cp clone2/b clone2/b2
623 $ hg -R clone2 add --large clone2/b1 clone2/b2
629 $ hg -R clone2 add --large clone2/b1 clone2/b2
624 $ hg -R clone2 commit -m '#2: add largefiles referring same entity'
630 $ hg -R clone2 commit -m '#2: add largefiles referring same entity'
625 Invoking status precommit hook
631 Invoking status precommit hook
626 A b1
632 A b1
627 A b2
633 A b2
628 $ hg -R clone2 summary --large
634 $ hg -R clone2 summary --large
629 parent: 2:6095d0695d70 tip
635 parent: 2:6095d0695d70 tip
630 #2: add largefiles referring same entity
636 #2: add largefiles referring same entity
631 branch: default
637 branch: default
632 commit: (clean)
638 commit: (clean)
633 update: (current)
639 update: (current)
634 largefiles: 1 entities for 3 files to upload
640 largefiles: 1 entities for 3 files to upload
635 $ hg -R clone2 outgoing --large -T "{rev}:{node|short}\n"
641 $ hg -R clone2 outgoing --large -T "{rev}:{node|short}\n"
636 comparing with $TESTTMP/issue3651/src (glob)
642 comparing with $TESTTMP/issue3651/src (glob)
637 searching for changes
643 searching for changes
638 1:1acbe71ce432
644 1:1acbe71ce432
639 2:6095d0695d70
645 2:6095d0695d70
640 largefiles to upload (1 entities):
646 largefiles to upload (1 entities):
641 b
647 b
642 b1
648 b1
643 b2
649 b2
644
650
645 $ hg -R clone2 cat -r 1 clone2/.hglf/b
651 $ hg -R clone2 cat -r 1 clone2/.hglf/b
646 89e6c98d92887913cadf06b2adb97f26cde4849b
652 89e6c98d92887913cadf06b2adb97f26cde4849b
647 $ hg -R clone2 outgoing --large -T "{rev}:{node|short}\n" --debug
653 $ hg -R clone2 outgoing --large -T "{rev}:{node|short}\n" --debug
648 comparing with $TESTTMP/issue3651/src (glob)
654 comparing with $TESTTMP/issue3651/src (glob)
649 query 1; heads
655 query 1; heads
650 searching for changes
656 searching for changes
651 all remote heads known locally
657 all remote heads known locally
652 1:1acbe71ce432
658 1:1acbe71ce432
653 2:6095d0695d70
659 2:6095d0695d70
654 finding outgoing largefiles: 0/2 revision (0.00%)
660 finding outgoing largefiles: 0/2 revision (0.00%)
655 finding outgoing largefiles: 1/2 revision (50.00%)
661 finding outgoing largefiles: 1/2 revision (50.00%)
656 largefiles to upload (1 entities):
662 largefiles to upload (1 entities):
657 b
663 b
658 89e6c98d92887913cadf06b2adb97f26cde4849b
664 89e6c98d92887913cadf06b2adb97f26cde4849b
659 b1
665 b1
660 89e6c98d92887913cadf06b2adb97f26cde4849b
666 89e6c98d92887913cadf06b2adb97f26cde4849b
661 b2
667 b2
662 89e6c98d92887913cadf06b2adb97f26cde4849b
668 89e6c98d92887913cadf06b2adb97f26cde4849b
663
669
664
670
665 $ echo bbb > clone2/b
671 $ echo bbb > clone2/b
666 $ hg -R clone2 commit -m '#3: add new largefile entity as existing file'
672 $ hg -R clone2 commit -m '#3: add new largefile entity as existing file'
667 Invoking status precommit hook
673 Invoking status precommit hook
668 M b
674 M b
669 $ echo bbbb > clone2/b
675 $ echo bbbb > clone2/b
670 $ hg -R clone2 commit -m '#4: add new largefile entity as existing file'
676 $ hg -R clone2 commit -m '#4: add new largefile entity as existing file'
671 Invoking status precommit hook
677 Invoking status precommit hook
672 M b
678 M b
673 $ cp clone2/b1 clone2/b
679 $ cp clone2/b1 clone2/b
674 $ hg -R clone2 commit -m '#5: refer existing largefile entity again'
680 $ hg -R clone2 commit -m '#5: refer existing largefile entity again'
675 Invoking status precommit hook
681 Invoking status precommit hook
676 M b
682 M b
677 $ hg -R clone2 summary --large
683 $ hg -R clone2 summary --large
678 parent: 5:036794ea641c tip
684 parent: 5:036794ea641c tip
679 #5: refer existing largefile entity again
685 #5: refer existing largefile entity again
680 branch: default
686 branch: default
681 commit: (clean)
687 commit: (clean)
682 update: (current)
688 update: (current)
683 largefiles: 3 entities for 3 files to upload
689 largefiles: 3 entities for 3 files to upload
684 $ hg -R clone2 outgoing --large -T "{rev}:{node|short}\n"
690 $ hg -R clone2 outgoing --large -T "{rev}:{node|short}\n"
685 comparing with $TESTTMP/issue3651/src (glob)
691 comparing with $TESTTMP/issue3651/src (glob)
686 searching for changes
692 searching for changes
687 1:1acbe71ce432
693 1:1acbe71ce432
688 2:6095d0695d70
694 2:6095d0695d70
689 3:7983dce246cc
695 3:7983dce246cc
690 4:233f12ada4ae
696 4:233f12ada4ae
691 5:036794ea641c
697 5:036794ea641c
692 largefiles to upload (3 entities):
698 largefiles to upload (3 entities):
693 b
699 b
694 b1
700 b1
695 b2
701 b2
696
702
697 $ hg -R clone2 cat -r 3 clone2/.hglf/b
703 $ hg -R clone2 cat -r 3 clone2/.hglf/b
698 c801c9cfe94400963fcb683246217d5db77f9a9a
704 c801c9cfe94400963fcb683246217d5db77f9a9a
699 $ hg -R clone2 cat -r 4 clone2/.hglf/b
705 $ hg -R clone2 cat -r 4 clone2/.hglf/b
700 13f9ed0898e315bf59dc2973fec52037b6f441a2
706 13f9ed0898e315bf59dc2973fec52037b6f441a2
701 $ hg -R clone2 outgoing --large -T "{rev}:{node|short}\n" --debug
707 $ hg -R clone2 outgoing --large -T "{rev}:{node|short}\n" --debug
702 comparing with $TESTTMP/issue3651/src (glob)
708 comparing with $TESTTMP/issue3651/src (glob)
703 query 1; heads
709 query 1; heads
704 searching for changes
710 searching for changes
705 all remote heads known locally
711 all remote heads known locally
706 1:1acbe71ce432
712 1:1acbe71ce432
707 2:6095d0695d70
713 2:6095d0695d70
708 3:7983dce246cc
714 3:7983dce246cc
709 4:233f12ada4ae
715 4:233f12ada4ae
710 5:036794ea641c
716 5:036794ea641c
711 finding outgoing largefiles: 0/5 revision (0.00%)
717 finding outgoing largefiles: 0/5 revision (0.00%)
712 finding outgoing largefiles: 1/5 revision (20.00%)
718 finding outgoing largefiles: 1/5 revision (20.00%)
713 finding outgoing largefiles: 2/5 revision (40.00%)
719 finding outgoing largefiles: 2/5 revision (40.00%)
714 finding outgoing largefiles: 3/5 revision (60.00%)
720 finding outgoing largefiles: 3/5 revision (60.00%)
715 finding outgoing largefiles: 4/5 revision (80.00%)
721 finding outgoing largefiles: 4/5 revision (80.00%)
716 largefiles to upload (3 entities):
722 largefiles to upload (3 entities):
717 b
723 b
718 13f9ed0898e315bf59dc2973fec52037b6f441a2
724 13f9ed0898e315bf59dc2973fec52037b6f441a2
719 89e6c98d92887913cadf06b2adb97f26cde4849b
725 89e6c98d92887913cadf06b2adb97f26cde4849b
720 c801c9cfe94400963fcb683246217d5db77f9a9a
726 c801c9cfe94400963fcb683246217d5db77f9a9a
721 b1
727 b1
722 89e6c98d92887913cadf06b2adb97f26cde4849b
728 89e6c98d92887913cadf06b2adb97f26cde4849b
723 b2
729 b2
724 89e6c98d92887913cadf06b2adb97f26cde4849b
730 89e6c98d92887913cadf06b2adb97f26cde4849b
725
731
726
732
727 Pushing revision #1 causes uploading entity 89e6c98d9288, which is
733 Pushing revision #1 causes uploading entity 89e6c98d9288, which is
728 shared also by largefiles b1, b2 in revision #2 and b in revision #5.
734 shared also by largefiles b1, b2 in revision #2 and b in revision #5.
729
735
730 Then, entity 89e6c98d9288 is not treated as "outgoing entity" at "hg
736 Then, entity 89e6c98d9288 is not treated as "outgoing entity" at "hg
731 summary" and "hg outgoing", even though files in outgoing revision #2
737 summary" and "hg outgoing", even though files in outgoing revision #2
732 and #5 refer it.
738 and #5 refer it.
733
739
734 $ hg -R clone2 push -r 1 -q
740 $ hg -R clone2 push -r 1 -q
735 $ hg -R clone2 summary --large
741 $ hg -R clone2 summary --large
736 parent: 5:036794ea641c tip
742 parent: 5:036794ea641c tip
737 #5: refer existing largefile entity again
743 #5: refer existing largefile entity again
738 branch: default
744 branch: default
739 commit: (clean)
745 commit: (clean)
740 update: (current)
746 update: (current)
741 largefiles: 2 entities for 1 files to upload
747 largefiles: 2 entities for 1 files to upload
742 $ hg -R clone2 outgoing --large -T "{rev}:{node|short}\n"
748 $ hg -R clone2 outgoing --large -T "{rev}:{node|short}\n"
743 comparing with $TESTTMP/issue3651/src (glob)
749 comparing with $TESTTMP/issue3651/src (glob)
744 searching for changes
750 searching for changes
745 2:6095d0695d70
751 2:6095d0695d70
746 3:7983dce246cc
752 3:7983dce246cc
747 4:233f12ada4ae
753 4:233f12ada4ae
748 5:036794ea641c
754 5:036794ea641c
749 largefiles to upload (2 entities):
755 largefiles to upload (2 entities):
750 b
756 b
751
757
752 $ hg -R clone2 outgoing --large -T "{rev}:{node|short}\n" --debug
758 $ hg -R clone2 outgoing --large -T "{rev}:{node|short}\n" --debug
753 comparing with $TESTTMP/issue3651/src (glob)
759 comparing with $TESTTMP/issue3651/src (glob)
754 query 1; heads
760 query 1; heads
755 searching for changes
761 searching for changes
756 all remote heads known locally
762 all remote heads known locally
757 2:6095d0695d70
763 2:6095d0695d70
758 3:7983dce246cc
764 3:7983dce246cc
759 4:233f12ada4ae
765 4:233f12ada4ae
760 5:036794ea641c
766 5:036794ea641c
761 finding outgoing largefiles: 0/4 revision (0.00%)
767 finding outgoing largefiles: 0/4 revision (0.00%)
762 finding outgoing largefiles: 1/4 revision (25.00%)
768 finding outgoing largefiles: 1/4 revision (25.00%)
763 finding outgoing largefiles: 2/4 revision (50.00%)
769 finding outgoing largefiles: 2/4 revision (50.00%)
764 finding outgoing largefiles: 3/4 revision (75.00%)
770 finding outgoing largefiles: 3/4 revision (75.00%)
765 largefiles to upload (2 entities):
771 largefiles to upload (2 entities):
766 b
772 b
767 13f9ed0898e315bf59dc2973fec52037b6f441a2
773 13f9ed0898e315bf59dc2973fec52037b6f441a2
768 c801c9cfe94400963fcb683246217d5db77f9a9a
774 c801c9cfe94400963fcb683246217d5db77f9a9a
769
775
770
776
771 $ cd ..
777 $ cd ..
772
778
773 merge action 'd' for 'local renamed directory to d2/g' which has no filename
779 merge action 'd' for 'local renamed directory to d2/g' which has no filename
774 ==================================================================================
780 ==================================================================================
775
781
776 $ hg init merge-action
782 $ hg init merge-action
777 $ cd merge-action
783 $ cd merge-action
778 $ touch l
784 $ touch l
779 $ hg add --large l
785 $ hg add --large l
780 $ mkdir d1
786 $ mkdir d1
781 $ touch d1/f
787 $ touch d1/f
782 $ hg ci -Aqm0
788 $ hg ci -Aqm0
783 Invoking status precommit hook
789 Invoking status precommit hook
784 A d1/f
790 A d1/f
785 A l
791 A l
786 $ echo > d1/f
792 $ echo > d1/f
787 $ touch d1/g
793 $ touch d1/g
788 $ hg ci -Aqm1
794 $ hg ci -Aqm1
789 Invoking status precommit hook
795 Invoking status precommit hook
790 M d1/f
796 M d1/f
791 A d1/g
797 A d1/g
792 $ hg up -qr0
798 $ hg up -qr0
793 $ hg mv d1 d2
799 $ hg mv d1 d2
794 moving d1/f to d2/f (glob)
800 moving d1/f to d2/f (glob)
795 $ hg ci -qm2
801 $ hg ci -qm2
796 Invoking status precommit hook
802 Invoking status precommit hook
797 A d2/f
803 A d2/f
798 R d1/f
804 R d1/f
799 $ hg merge
805 $ hg merge
800 merging d2/f and d1/f to d2/f
806 merging d2/f and d1/f to d2/f
801 getting changed largefiles
807 getting changed largefiles
802 0 largefiles updated, 0 removed
808 0 largefiles updated, 0 removed
803 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
809 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
804 (branch merge, don't forget to commit)
810 (branch merge, don't forget to commit)
805 $ cd ..
811 $ cd ..
806
812
807
813
808 Merge conflicts:
814 Merge conflicts:
809 =====================
815 =====================
810
816
811 $ hg init merge
817 $ hg init merge
812 $ cd merge
818 $ cd merge
813 $ echo 0 > f-different
819 $ echo 0 > f-different
814 $ echo 0 > f-same
820 $ echo 0 > f-same
815 $ echo 0 > f-unchanged-1
821 $ echo 0 > f-unchanged-1
816 $ echo 0 > f-unchanged-2
822 $ echo 0 > f-unchanged-2
817 $ hg add --large *
823 $ hg add --large *
818 $ hg ci -m0
824 $ hg ci -m0
819 Invoking status precommit hook
825 Invoking status precommit hook
820 A f-different
826 A f-different
821 A f-same
827 A f-same
822 A f-unchanged-1
828 A f-unchanged-1
823 A f-unchanged-2
829 A f-unchanged-2
824 $ echo tmp1 > f-unchanged-1
830 $ echo tmp1 > f-unchanged-1
825 $ echo tmp1 > f-unchanged-2
831 $ echo tmp1 > f-unchanged-2
826 $ echo tmp1 > f-same
832 $ echo tmp1 > f-same
827 $ hg ci -m1
833 $ hg ci -m1
828 Invoking status precommit hook
834 Invoking status precommit hook
829 M f-same
835 M f-same
830 M f-unchanged-1
836 M f-unchanged-1
831 M f-unchanged-2
837 M f-unchanged-2
832 $ echo 2 > f-different
838 $ echo 2 > f-different
833 $ echo 0 > f-unchanged-1
839 $ echo 0 > f-unchanged-1
834 $ echo 1 > f-unchanged-2
840 $ echo 1 > f-unchanged-2
835 $ echo 1 > f-same
841 $ echo 1 > f-same
836 $ hg ci -m2
842 $ hg ci -m2
837 Invoking status precommit hook
843 Invoking status precommit hook
838 M f-different
844 M f-different
839 M f-same
845 M f-same
840 M f-unchanged-1
846 M f-unchanged-1
841 M f-unchanged-2
847 M f-unchanged-2
842 $ hg up -qr0
848 $ hg up -qr0
843 $ echo tmp2 > f-unchanged-1
849 $ echo tmp2 > f-unchanged-1
844 $ echo tmp2 > f-unchanged-2
850 $ echo tmp2 > f-unchanged-2
845 $ echo tmp2 > f-same
851 $ echo tmp2 > f-same
846 $ hg ci -m3
852 $ hg ci -m3
847 Invoking status precommit hook
853 Invoking status precommit hook
848 M f-same
854 M f-same
849 M f-unchanged-1
855 M f-unchanged-1
850 M f-unchanged-2
856 M f-unchanged-2
851 created new head
857 created new head
852 $ echo 1 > f-different
858 $ echo 1 > f-different
853 $ echo 1 > f-unchanged-1
859 $ echo 1 > f-unchanged-1
854 $ echo 0 > f-unchanged-2
860 $ echo 0 > f-unchanged-2
855 $ echo 1 > f-same
861 $ echo 1 > f-same
856 $ hg ci -m4
862 $ hg ci -m4
857 Invoking status precommit hook
863 Invoking status precommit hook
858 M f-different
864 M f-different
859 M f-same
865 M f-same
860 M f-unchanged-1
866 M f-unchanged-1
861 M f-unchanged-2
867 M f-unchanged-2
862 $ hg merge
868 $ hg merge
863 largefile f-different has a merge conflict
869 largefile f-different has a merge conflict
864 ancestor was 09d2af8dd22201dd8d48e5dcfcaed281ff9422c7
870 ancestor was 09d2af8dd22201dd8d48e5dcfcaed281ff9422c7
865 keep (l)ocal e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e or
871 keep (l)ocal e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e or
866 take (o)ther 7448d8798a4380162d4b56f9b452e2f6f9e24e7a? l
872 take (o)ther 7448d8798a4380162d4b56f9b452e2f6f9e24e7a? l
867 getting changed largefiles
873 getting changed largefiles
868 1 largefiles updated, 0 removed
874 1 largefiles updated, 0 removed
869 0 files updated, 4 files merged, 0 files removed, 0 files unresolved
875 0 files updated, 4 files merged, 0 files removed, 0 files unresolved
870 (branch merge, don't forget to commit)
876 (branch merge, don't forget to commit)
871 $ cat f-different
877 $ cat f-different
872 1
878 1
873 $ cat f-same
879 $ cat f-same
874 1
880 1
875 $ cat f-unchanged-1
881 $ cat f-unchanged-1
876 1
882 1
877 $ cat f-unchanged-2
883 $ cat f-unchanged-2
878 1
884 1
879 $ cd ..
885 $ cd ..
880
886
881 Test largefile insulation (do not enabled a side effect
887 Test largefile insulation (do not enabled a side effect
882 ========================================================
888 ========================================================
883
889
884 Check whether "largefiles" feature is supported only in repositories
890 Check whether "largefiles" feature is supported only in repositories
885 enabling largefiles extension.
891 enabling largefiles extension.
886
892
887 $ mkdir individualenabling
893 $ mkdir individualenabling
888 $ cd individualenabling
894 $ cd individualenabling
889
895
890 $ hg init enabledlocally
896 $ hg init enabledlocally
891 $ echo large > enabledlocally/large
897 $ echo large > enabledlocally/large
892 $ hg -R enabledlocally add --large enabledlocally/large
898 $ hg -R enabledlocally add --large enabledlocally/large
893 $ hg -R enabledlocally commit -m '#0'
899 $ hg -R enabledlocally commit -m '#0'
894 Invoking status precommit hook
900 Invoking status precommit hook
895 A large
901 A large
896
902
897 $ hg init notenabledlocally
903 $ hg init notenabledlocally
898 $ echo large > notenabledlocally/large
904 $ echo large > notenabledlocally/large
899 $ hg -R notenabledlocally add --large notenabledlocally/large
905 $ hg -R notenabledlocally add --large notenabledlocally/large
900 $ hg -R notenabledlocally commit -m '#0'
906 $ hg -R notenabledlocally commit -m '#0'
901 Invoking status precommit hook
907 Invoking status precommit hook
902 A large
908 A large
903
909
904 $ cat >> $HGRCPATH <<EOF
910 $ cat >> $HGRCPATH <<EOF
905 > [extensions]
911 > [extensions]
906 > # disable globally
912 > # disable globally
907 > largefiles=!
913 > largefiles=!
908 > EOF
914 > EOF
909 $ cat >> enabledlocally/.hg/hgrc <<EOF
915 $ cat >> enabledlocally/.hg/hgrc <<EOF
910 > [extensions]
916 > [extensions]
911 > # enable locally
917 > # enable locally
912 > largefiles=
918 > largefiles=
913 > EOF
919 > EOF
914 $ hg -R enabledlocally root
920 $ hg -R enabledlocally root
915 $TESTTMP/individualenabling/enabledlocally (glob)
921 $TESTTMP/individualenabling/enabledlocally (glob)
916 $ hg -R notenabledlocally root
922 $ hg -R notenabledlocally root
917 abort: repository requires features unknown to this Mercurial: largefiles!
923 abort: repository requires features unknown to this Mercurial: largefiles!
918 (see http://mercurial.selenic.com/wiki/MissingRequirement for more information)
924 (see http://mercurial.selenic.com/wiki/MissingRequirement for more information)
919 [255]
925 [255]
920
926
921 $ hg init push-dst
927 $ hg init push-dst
922 $ hg -R enabledlocally push push-dst
928 $ hg -R enabledlocally push push-dst
923 pushing to push-dst
929 pushing to push-dst
924 abort: required features are not supported in the destination: largefiles
930 abort: required features are not supported in the destination: largefiles
925 [255]
931 [255]
926
932
927 $ hg init pull-src
933 $ hg init pull-src
928 $ hg -R pull-src pull enabledlocally
934 $ hg -R pull-src pull enabledlocally
929 pulling from enabledlocally
935 pulling from enabledlocally
930 abort: required features are not supported in the destination: largefiles
936 abort: required features are not supported in the destination: largefiles
931 [255]
937 [255]
932
938
933 $ hg clone enabledlocally clone-dst
939 $ hg clone enabledlocally clone-dst
934 abort: repository requires features unknown to this Mercurial: largefiles!
940 abort: repository requires features unknown to this Mercurial: largefiles!
935 (see http://mercurial.selenic.com/wiki/MissingRequirement for more information)
941 (see http://mercurial.selenic.com/wiki/MissingRequirement for more information)
936 [255]
942 [255]
937 $ test -d clone-dst
943 $ test -d clone-dst
938 [1]
944 [1]
939 $ hg clone --pull enabledlocally clone-pull-dst
945 $ hg clone --pull enabledlocally clone-pull-dst
940 abort: required features are not supported in the destination: largefiles
946 abort: required features are not supported in the destination: largefiles
941 [255]
947 [255]
942 $ test -d clone-pull-dst
948 $ test -d clone-pull-dst
943 [1]
949 [1]
944
950
945 #if serve
951 #if serve
946
952
947 Test largefiles specific peer setup, when largefiles is enabled
953 Test largefiles specific peer setup, when largefiles is enabled
948 locally (issue4109)
954 locally (issue4109)
949
955
950 $ hg showconfig extensions | grep largefiles
956 $ hg showconfig extensions | grep largefiles
951 extensions.largefiles=!
957 extensions.largefiles=!
952 $ mkdir -p $TESTTMP/individualenabling/usercache
958 $ mkdir -p $TESTTMP/individualenabling/usercache
953
959
954 $ hg serve -R enabledlocally -d -p $HGPORT --pid-file hg.pid
960 $ hg serve -R enabledlocally -d -p $HGPORT --pid-file hg.pid
955 $ cat hg.pid >> $DAEMON_PIDS
961 $ cat hg.pid >> $DAEMON_PIDS
956
962
957 $ hg init pull-dst
963 $ hg init pull-dst
958 $ cat > pull-dst/.hg/hgrc <<EOF
964 $ cat > pull-dst/.hg/hgrc <<EOF
959 > [extensions]
965 > [extensions]
960 > # enable locally
966 > # enable locally
961 > largefiles=
967 > largefiles=
962 > [largefiles]
968 > [largefiles]
963 > # ignore system cache to force largefiles specific wire proto access
969 > # ignore system cache to force largefiles specific wire proto access
964 > usercache=$TESTTMP/individualenabling/usercache
970 > usercache=$TESTTMP/individualenabling/usercache
965 > EOF
971 > EOF
966 $ hg -R pull-dst -q pull -u http://localhost:$HGPORT
972 $ hg -R pull-dst -q pull -u http://localhost:$HGPORT
967
973
968 $ "$TESTDIR/killdaemons.py" $DAEMON_PIDS
974 $ "$TESTDIR/killdaemons.py" $DAEMON_PIDS
969 #endif
975 #endif
970
976
971 Test overridden functions work correctly even for repos disabling
977 Test overridden functions work correctly even for repos disabling
972 largefiles (issue4547)
978 largefiles (issue4547)
973
979
974 $ hg showconfig extensions | grep largefiles
980 $ hg showconfig extensions | grep largefiles
975 extensions.largefiles=!
981 extensions.largefiles=!
976
982
977 (test updating implied by clone)
983 (test updating implied by clone)
978
984
979 $ hg init enabled-but-no-largefiles
985 $ hg init enabled-but-no-largefiles
980 $ echo normal1 > enabled-but-no-largefiles/normal1
986 $ echo normal1 > enabled-but-no-largefiles/normal1
981 $ hg -R enabled-but-no-largefiles add enabled-but-no-largefiles/normal1
987 $ hg -R enabled-but-no-largefiles add enabled-but-no-largefiles/normal1
982 $ hg -R enabled-but-no-largefiles commit -m '#0@enabled-but-no-largefiles'
988 $ hg -R enabled-but-no-largefiles commit -m '#0@enabled-but-no-largefiles'
983 Invoking status precommit hook
989 Invoking status precommit hook
984 A normal1
990 A normal1
985 $ cat >> enabled-but-no-largefiles/.hg/hgrc <<EOF
991 $ cat >> enabled-but-no-largefiles/.hg/hgrc <<EOF
986 > [extensions]
992 > [extensions]
987 > # enable locally
993 > # enable locally
988 > largefiles=
994 > largefiles=
989 > EOF
995 > EOF
990 $ hg clone -q enabled-but-no-largefiles no-largefiles
996 $ hg clone -q enabled-but-no-largefiles no-largefiles
991
997
992 (test rebasing implied by pull: precommit while rebasing unexpectedly
998 (test rebasing implied by pull: precommit while rebasing unexpectedly
993 shows "normal3" as "?", because lfdirstate isn't yet written out at
999 shows "normal3" as "?", because lfdirstate isn't yet written out at
994 that time)
1000 that time)
995
1001
996 $ echo normal2 > enabled-but-no-largefiles/normal2
1002 $ echo normal2 > enabled-but-no-largefiles/normal2
997 $ hg -R enabled-but-no-largefiles add enabled-but-no-largefiles/normal2
1003 $ hg -R enabled-but-no-largefiles add enabled-but-no-largefiles/normal2
998 $ hg -R enabled-but-no-largefiles commit -m '#1@enabled-but-no-largefiles'
1004 $ hg -R enabled-but-no-largefiles commit -m '#1@enabled-but-no-largefiles'
999 Invoking status precommit hook
1005 Invoking status precommit hook
1000 A normal2
1006 A normal2
1001
1007
1002 $ echo normal3 > no-largefiles/normal3
1008 $ echo normal3 > no-largefiles/normal3
1003 $ hg -R no-largefiles add no-largefiles/normal3
1009 $ hg -R no-largefiles add no-largefiles/normal3
1004 $ hg -R no-largefiles commit -m '#1@no-largefiles'
1010 $ hg -R no-largefiles commit -m '#1@no-largefiles'
1005 Invoking status precommit hook
1011 Invoking status precommit hook
1006 A normal3
1012 A normal3
1007
1013
1008 $ hg -R no-largefiles -q pull --rebase
1014 $ hg -R no-largefiles -q pull --rebase
1009 Invoking status precommit hook
1015 Invoking status precommit hook
1010 ? normal3
1016 ? normal3
1011
1017
1012 (test reverting)
1018 (test reverting)
1013
1019
1014 $ hg init subrepo-root
1020 $ hg init subrepo-root
1015 $ cat >> subrepo-root/.hg/hgrc <<EOF
1021 $ cat >> subrepo-root/.hg/hgrc <<EOF
1016 > [extensions]
1022 > [extensions]
1017 > # enable locally
1023 > # enable locally
1018 > largefiles=
1024 > largefiles=
1019 > EOF
1025 > EOF
1020 $ echo large > subrepo-root/large
1026 $ echo large > subrepo-root/large
1021 $ hg -R subrepo-root add --large subrepo-root/large
1027 $ hg -R subrepo-root add --large subrepo-root/large
1022 $ hg clone -q no-largefiles subrepo-root/no-largefiles
1028 $ hg clone -q no-largefiles subrepo-root/no-largefiles
1023 $ cat > subrepo-root/.hgsub <<EOF
1029 $ cat > subrepo-root/.hgsub <<EOF
1024 > no-largefiles = no-largefiles
1030 > no-largefiles = no-largefiles
1025 > EOF
1031 > EOF
1026 $ hg -R subrepo-root add subrepo-root/.hgsub
1032 $ hg -R subrepo-root add subrepo-root/.hgsub
1027 $ hg -R subrepo-root commit -m '#0'
1033 $ hg -R subrepo-root commit -m '#0'
1028 Invoking status precommit hook
1034 Invoking status precommit hook
1029 A .hgsub
1035 A .hgsub
1030 A large
1036 A large
1031 ? .hgsubstate
1037 ? .hgsubstate
1032 $ echo dirty >> subrepo-root/large
1038 $ echo dirty >> subrepo-root/large
1033 $ echo dirty >> subrepo-root/no-largefiles/normal1
1039 $ echo dirty >> subrepo-root/no-largefiles/normal1
1034 $ hg -R subrepo-root status -S
1040 $ hg -R subrepo-root status -S
1035 M large
1041 M large
1036 M no-largefiles/normal1
1042 M no-largefiles/normal1
1037 $ hg -R subrepo-root revert --all
1043 $ hg -R subrepo-root revert --all
1038 reverting subrepo-root/.hglf/large (glob)
1044 reverting subrepo-root/.hglf/large (glob)
1039 reverting subrepo no-largefiles
1045 reverting subrepo no-largefiles
1040 reverting subrepo-root/no-largefiles/normal1 (glob)
1046 reverting subrepo-root/no-largefiles/normal1 (glob)
1041
1047
1042 $ cd ..
1048 $ cd ..
1043
1049
1044
1050
1045 Test "pull --rebase" when rebase is enabled before largefiles (issue3861)
1051 Test "pull --rebase" when rebase is enabled before largefiles (issue3861)
1046 =========================================================================
1052 =========================================================================
1047
1053
1048 $ hg showconfig extensions | grep largefiles
1054 $ hg showconfig extensions | grep largefiles
1049 extensions.largefiles=!
1055 extensions.largefiles=!
1050
1056
1051 $ mkdir issue3861
1057 $ mkdir issue3861
1052 $ cd issue3861
1058 $ cd issue3861
1053 $ hg init src
1059 $ hg init src
1054 $ hg clone -q src dst
1060 $ hg clone -q src dst
1055 $ echo a > src/a
1061 $ echo a > src/a
1056 $ hg -R src commit -Aqm "#0"
1062 $ hg -R src commit -Aqm "#0"
1057 Invoking status precommit hook
1063 Invoking status precommit hook
1058 A a
1064 A a
1059
1065
1060 $ cat >> dst/.hg/hgrc <<EOF
1066 $ cat >> dst/.hg/hgrc <<EOF
1061 > [extensions]
1067 > [extensions]
1062 > largefiles=
1068 > largefiles=
1063 > EOF
1069 > EOF
1064 $ hg -R dst pull --rebase
1070 $ hg -R dst pull --rebase
1065 pulling from $TESTTMP/issue3861/src (glob)
1071 pulling from $TESTTMP/issue3861/src (glob)
1066 requesting all changes
1072 requesting all changes
1067 adding changesets
1073 adding changesets
1068 adding manifests
1074 adding manifests
1069 adding file changes
1075 adding file changes
1070 added 1 changesets with 1 changes to 1 files
1076 added 1 changesets with 1 changes to 1 files
1071 nothing to rebase - working directory parent is already an ancestor of destination bf5e395ced2c
1077 nothing to rebase - working directory parent is already an ancestor of destination bf5e395ced2c
1072 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1078 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1073
1079
1074 $ cd ..
1080 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now