##// END OF EJS Templates
test-hardlinks: stabilize for Windows...
Matt Harbison -
r32780:5e76a07e default
parent child Browse files
Show More
@@ -1,422 +1,424 b''
1 #require hardlink
1 #require hardlink
2
2
3 $ cat > nlinks.py <<EOF
3 $ cat > nlinks.py <<EOF
4 > import sys
4 > import sys
5 > from mercurial import util
5 > from mercurial import util
6 > for f in sorted(sys.stdin.readlines()):
6 > for f in sorted(sys.stdin.readlines()):
7 > f = f[:-1]
7 > f = f[:-1]
8 > print util.nlinks(f), f
8 > print util.nlinks(f), f
9 > EOF
9 > EOF
10
10
11 $ nlinksdir()
11 $ nlinksdir()
12 > {
12 > {
13 > find "$@" -type f | python $TESTTMP/nlinks.py
13 > find "$@" -type f | python $TESTTMP/nlinks.py
14 > }
14 > }
15
15
16 Some implementations of cp can't create hardlinks (replaces 'cp -al' on Linux):
16 Some implementations of cp can't create hardlinks (replaces 'cp -al' on Linux):
17
17
18 $ cat > linkcp.py <<EOF
18 $ cat > linkcp.py <<EOF
19 > from mercurial import util
19 > from mercurial import util
20 > import sys
20 > import sys
21 > util.copyfiles(sys.argv[1], sys.argv[2], hardlink=True)
21 > util.copyfiles(sys.argv[1], sys.argv[2], hardlink=True)
22 > EOF
22 > EOF
23
23
24 $ linkcp()
24 $ linkcp()
25 > {
25 > {
26 > python $TESTTMP/linkcp.py $1 $2
26 > python $TESTTMP/linkcp.py $1 $2
27 > }
27 > }
28
28
29 Prepare repo r1:
29 Prepare repo r1:
30
30
31 $ hg init r1
31 $ hg init r1
32 $ cd r1
32 $ cd r1
33
33
34 $ echo c1 > f1
34 $ echo c1 > f1
35 $ hg add f1
35 $ hg add f1
36 $ hg ci -m0
36 $ hg ci -m0
37
37
38 $ mkdir d1
38 $ mkdir d1
39 $ cd d1
39 $ cd d1
40 $ echo c2 > f2
40 $ echo c2 > f2
41 $ hg add f2
41 $ hg add f2
42 $ hg ci -m1
42 $ hg ci -m1
43 $ cd ../..
43 $ cd ../..
44
44
45 $ nlinksdir r1/.hg/store
45 $ nlinksdir r1/.hg/store
46 1 r1/.hg/store/00changelog.i
46 1 r1/.hg/store/00changelog.i
47 1 r1/.hg/store/00manifest.i
47 1 r1/.hg/store/00manifest.i
48 1 r1/.hg/store/data/d1/f2.i
48 1 r1/.hg/store/data/d1/f2.i
49 1 r1/.hg/store/data/f1.i
49 1 r1/.hg/store/data/f1.i
50 1 r1/.hg/store/fncache
50 1 r1/.hg/store/fncache
51 1 r1/.hg/store/phaseroots
51 1 r1/.hg/store/phaseroots
52 1 r1/.hg/store/undo
52 1 r1/.hg/store/undo
53 1 r1/.hg/store/undo.backup.fncache
53 1 r1/.hg/store/undo.backup.fncache
54 1 r1/.hg/store/undo.backupfiles
54 1 r1/.hg/store/undo.backupfiles
55 1 r1/.hg/store/undo.phaseroots
55 1 r1/.hg/store/undo.phaseroots
56
56
57
57
58 Create hardlinked clone r2:
58 Create hardlinked clone r2:
59
59
60 $ hg clone -U --debug r1 r2 --config progress.debug=true
60 $ hg clone -U --debug r1 r2 --config progress.debug=true
61 linking: 1
61 linking: 1
62 linking: 2
62 linking: 2
63 linking: 3
63 linking: 3
64 linking: 4
64 linking: 4
65 linking: 5
65 linking: 5
66 linking: 6
66 linking: 6
67 linking: 7
67 linking: 7
68 linked 7 files
68 linked 7 files
69
69
70 Create non-hardlinked clone r3:
70 Create non-hardlinked clone r3:
71
71
72 $ hg clone --pull r1 r3
72 $ hg clone --pull r1 r3
73 requesting all changes
73 requesting all changes
74 adding changesets
74 adding changesets
75 adding manifests
75 adding manifests
76 adding file changes
76 adding file changes
77 added 2 changesets with 2 changes to 2 files
77 added 2 changesets with 2 changes to 2 files
78 updating to branch default
78 updating to branch default
79 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
79 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
80
80
81
81
82 Repos r1 and r2 should now contain hardlinked files:
82 Repos r1 and r2 should now contain hardlinked files:
83
83
84 $ nlinksdir r1/.hg/store
84 $ nlinksdir r1/.hg/store
85 2 r1/.hg/store/00changelog.i
85 2 r1/.hg/store/00changelog.i
86 2 r1/.hg/store/00manifest.i
86 2 r1/.hg/store/00manifest.i
87 2 r1/.hg/store/data/d1/f2.i
87 2 r1/.hg/store/data/d1/f2.i
88 2 r1/.hg/store/data/f1.i
88 2 r1/.hg/store/data/f1.i
89 2 r1/.hg/store/fncache
89 2 r1/.hg/store/fncache
90 1 r1/.hg/store/phaseroots
90 1 r1/.hg/store/phaseroots
91 1 r1/.hg/store/undo
91 1 r1/.hg/store/undo
92 1 r1/.hg/store/undo.backup.fncache
92 1 r1/.hg/store/undo.backup.fncache
93 1 r1/.hg/store/undo.backupfiles
93 1 r1/.hg/store/undo.backupfiles
94 1 r1/.hg/store/undo.phaseroots
94 1 r1/.hg/store/undo.phaseroots
95
95
96 $ nlinksdir r2/.hg/store
96 $ nlinksdir r2/.hg/store
97 2 r2/.hg/store/00changelog.i
97 2 r2/.hg/store/00changelog.i
98 2 r2/.hg/store/00manifest.i
98 2 r2/.hg/store/00manifest.i
99 2 r2/.hg/store/data/d1/f2.i
99 2 r2/.hg/store/data/d1/f2.i
100 2 r2/.hg/store/data/f1.i
100 2 r2/.hg/store/data/f1.i
101 2 r2/.hg/store/fncache
101 2 r2/.hg/store/fncache
102
102
103 Repo r3 should not be hardlinked:
103 Repo r3 should not be hardlinked:
104
104
105 $ nlinksdir r3/.hg/store
105 $ nlinksdir r3/.hg/store
106 1 r3/.hg/store/00changelog.i
106 1 r3/.hg/store/00changelog.i
107 1 r3/.hg/store/00manifest.i
107 1 r3/.hg/store/00manifest.i
108 1 r3/.hg/store/data/d1/f2.i
108 1 r3/.hg/store/data/d1/f2.i
109 1 r3/.hg/store/data/f1.i
109 1 r3/.hg/store/data/f1.i
110 1 r3/.hg/store/fncache
110 1 r3/.hg/store/fncache
111 1 r3/.hg/store/phaseroots
111 1 r3/.hg/store/phaseroots
112 1 r3/.hg/store/undo
112 1 r3/.hg/store/undo
113 1 r3/.hg/store/undo.backupfiles
113 1 r3/.hg/store/undo.backupfiles
114 1 r3/.hg/store/undo.phaseroots
114 1 r3/.hg/store/undo.phaseroots
115
115
116
116
117 Create a non-inlined filelog in r3:
117 Create a non-inlined filelog in r3:
118
118
119 $ cd r3/d1
119 $ cd r3/d1
120 >>> f = open('data1', 'wb')
120 >>> f = open('data1', 'wb')
121 >>> for x in range(10000):
121 >>> for x in range(10000):
122 ... f.write("%s\n" % str(x))
122 ... f.write("%s\n" % str(x))
123 >>> f.close()
123 >>> f.close()
124 $ for j in 0 1 2 3 4 5 6 7 8 9; do
124 $ for j in 0 1 2 3 4 5 6 7 8 9; do
125 > cat data1 >> f2
125 > cat data1 >> f2
126 > hg commit -m$j
126 > hg commit -m$j
127 > done
127 > done
128 $ cd ../..
128 $ cd ../..
129
129
130 $ nlinksdir r3/.hg/store
130 $ nlinksdir r3/.hg/store
131 1 r3/.hg/store/00changelog.i
131 1 r3/.hg/store/00changelog.i
132 1 r3/.hg/store/00manifest.i
132 1 r3/.hg/store/00manifest.i
133 1 r3/.hg/store/data/d1/f2.d
133 1 r3/.hg/store/data/d1/f2.d
134 1 r3/.hg/store/data/d1/f2.i
134 1 r3/.hg/store/data/d1/f2.i
135 1 r3/.hg/store/data/f1.i
135 1 r3/.hg/store/data/f1.i
136 1 r3/.hg/store/fncache
136 1 r3/.hg/store/fncache
137 1 r3/.hg/store/phaseroots
137 1 r3/.hg/store/phaseroots
138 1 r3/.hg/store/undo
138 1 r3/.hg/store/undo
139 1 r3/.hg/store/undo.backup.fncache
139 1 r3/.hg/store/undo.backup.fncache
140 1 r3/.hg/store/undo.backup.phaseroots
140 1 r3/.hg/store/undo.backup.phaseroots
141 1 r3/.hg/store/undo.backupfiles
141 1 r3/.hg/store/undo.backupfiles
142 1 r3/.hg/store/undo.phaseroots
142 1 r3/.hg/store/undo.phaseroots
143
143
144 Push to repo r1 should break up most hardlinks in r2:
144 Push to repo r1 should break up most hardlinks in r2:
145
145
146 $ hg -R r2 verify
146 $ hg -R r2 verify
147 checking changesets
147 checking changesets
148 checking manifests
148 checking manifests
149 crosschecking files in changesets and manifests
149 crosschecking files in changesets and manifests
150 checking files
150 checking files
151 2 files, 2 changesets, 2 total revisions
151 2 files, 2 changesets, 2 total revisions
152
152
153 $ cd r3
153 $ cd r3
154 $ hg push
154 $ hg push
155 pushing to $TESTTMP/r1 (glob)
155 pushing to $TESTTMP/r1 (glob)
156 searching for changes
156 searching for changes
157 adding changesets
157 adding changesets
158 adding manifests
158 adding manifests
159 adding file changes
159 adding file changes
160 added 10 changesets with 10 changes to 1 files
160 added 10 changesets with 10 changes to 1 files
161
161
162 $ cd ..
162 $ cd ..
163
163
164 $ nlinksdir r2/.hg/store
164 $ nlinksdir r2/.hg/store
165 1 r2/.hg/store/00changelog.i
165 1 r2/.hg/store/00changelog.i
166 1 r2/.hg/store/00manifest.i
166 1 r2/.hg/store/00manifest.i
167 1 r2/.hg/store/data/d1/f2.i
167 1 r2/.hg/store/data/d1/f2.i
168 2 r2/.hg/store/data/f1.i
168 2 r2/.hg/store/data/f1.i
169 [12] r2/\.hg/store/fncache (re)
169 [12] r2/\.hg/store/fncache (re)
170
170
171 #if hardlink-whitelisted
171 #if hardlink-whitelisted
172 $ nlinksdir r2/.hg/store/fncache
172 $ nlinksdir r2/.hg/store/fncache
173 2 r2/.hg/store/fncache
173 2 r2/.hg/store/fncache
174 #endif
174 #endif
175
175
176 $ hg -R r2 verify
176 $ hg -R r2 verify
177 checking changesets
177 checking changesets
178 checking manifests
178 checking manifests
179 crosschecking files in changesets and manifests
179 crosschecking files in changesets and manifests
180 checking files
180 checking files
181 2 files, 2 changesets, 2 total revisions
181 2 files, 2 changesets, 2 total revisions
182
182
183
183
184 $ cd r1
184 $ cd r1
185 $ hg up
185 $ hg up
186 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
186 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
187
187
188 Committing a change to f1 in r1 must break up hardlink f1.i in r2:
188 Committing a change to f1 in r1 must break up hardlink f1.i in r2:
189
189
190 $ echo c1c1 >> f1
190 $ echo c1c1 >> f1
191 $ hg ci -m00
191 $ hg ci -m00
192 $ cd ..
192 $ cd ..
193
193
194 $ nlinksdir r2/.hg/store
194 $ nlinksdir r2/.hg/store
195 1 r2/.hg/store/00changelog.i
195 1 r2/.hg/store/00changelog.i
196 1 r2/.hg/store/00manifest.i
196 1 r2/.hg/store/00manifest.i
197 1 r2/.hg/store/data/d1/f2.i
197 1 r2/.hg/store/data/d1/f2.i
198 1 r2/.hg/store/data/f1.i
198 1 r2/.hg/store/data/f1.i
199 [12] r2/\.hg/store/fncache (re)
199 [12] r2/\.hg/store/fncache (re)
200
200
201 #if hardlink-whitelisted
201 #if hardlink-whitelisted
202 $ nlinksdir r2/.hg/store/fncache
202 $ nlinksdir r2/.hg/store/fncache
203 2 r2/.hg/store/fncache
203 2 r2/.hg/store/fncache
204 #endif
204 #endif
205
205
206 Create a file which exec permissions we will change
206 Create a file which exec permissions we will change
207 $ cd r3
207 $ cd r3
208 $ echo "echo hello world" > f3
208 $ echo "echo hello world" > f3
209 $ hg add f3
209 $ hg add f3
210 $ hg ci -mf3
210 $ hg ci -mf3
211 $ cd ..
211 $ cd ..
212
212
213 $ cd r3
213 $ cd r3
214 $ hg tip --template '{rev}:{node|short}\n'
214 $ hg tip --template '{rev}:{node|short}\n'
215 12:d3b77733a28a
215 12:d3b77733a28a
216 $ echo bla > f1
216 $ echo bla > f1
217 $ chmod +x f3
217 $ chmod +x f3
218 $ hg ci -m1
218 $ hg ci -m1
219 $ cd ..
219 $ cd ..
220
220
221 Create hardlinked copy r4 of r3 (on Linux, we would call 'cp -al'):
221 Create hardlinked copy r4 of r3 (on Linux, we would call 'cp -al'):
222
222
223 $ linkcp r3 r4
223 $ linkcp r3 r4
224
224
225 'checklink' is produced by hardlinking a symlink, which is undefined whether
225 'checklink' is produced by hardlinking a symlink, which is undefined whether
226 the symlink should be followed or not. It does behave differently on Linux and
226 the symlink should be followed or not. It does behave differently on Linux and
227 BSD. Just remove it so the test pass on both platforms.
227 BSD. Just remove it so the test pass on both platforms.
228
228
229 $ rm -f r4/.hg/cache/checklink
229 $ rm -f r4/.hg/cache/checklink
230
230
231 r4 has hardlinks in the working dir (not just inside .hg):
231 r4 has hardlinks in the working dir (not just inside .hg):
232
232
233 $ nlinksdir r4
233 $ nlinksdir r4
234 2 r4/.hg/00changelog.i
234 2 r4/.hg/00changelog.i
235 2 r4/.hg/branch
235 2 r4/.hg/branch
236 2 r4/.hg/cache/branch2-base
236 2 r4/.hg/cache/branch2-base
237 2 r4/.hg/cache/branch2-served
237 2 r4/.hg/cache/branch2-served
238 2 r4/.hg/cache/checkisexec (execbit !)
238 2 r4/.hg/cache/checkisexec (execbit !)
239 ? r4/.hg/cache/checklink-target (glob) (symlink !)
239 ? r4/.hg/cache/checklink-target (glob) (symlink !)
240 2 r4/.hg/cache/checknoexec (execbit !)
240 2 r4/.hg/cache/checknoexec (execbit !)
241 2 r4/.hg/cache/rbc-names-v1
241 2 r4/.hg/cache/rbc-names-v1
242 2 r4/.hg/cache/rbc-revs-v1
242 2 r4/.hg/cache/rbc-revs-v1
243 2 r4/.hg/dirstate
243 2 r4/.hg/dirstate
244 2 r4/.hg/hgrc
244 2 r4/.hg/hgrc
245 2 r4/.hg/last-message.txt
245 2 r4/.hg/last-message.txt
246 2 r4/.hg/requires
246 2 r4/.hg/requires
247 2 r4/.hg/store/00changelog.i
247 2 r4/.hg/store/00changelog.i
248 2 r4/.hg/store/00manifest.i
248 2 r4/.hg/store/00manifest.i
249 2 r4/.hg/store/data/d1/f2.d
249 2 r4/.hg/store/data/d1/f2.d
250 2 r4/.hg/store/data/d1/f2.i
250 2 r4/.hg/store/data/d1/f2.i
251 2 r4/.hg/store/data/f1.i
251 2 r4/.hg/store/data/f1.i
252 2 r4/.hg/store/data/f3.i
252 2 r4/.hg/store/data/f3.i
253 2 r4/.hg/store/fncache
253 2 r4/.hg/store/fncache
254 2 r4/.hg/store/phaseroots
254 2 r4/.hg/store/phaseroots
255 2 r4/.hg/store/undo
255 2 r4/.hg/store/undo
256 2 r4/.hg/store/undo.backup.fncache
256 2 r4/.hg/store/undo.backup.fncache
257 2 r4/.hg/store/undo.backup.phaseroots
257 2 r4/.hg/store/undo.backup.phaseroots
258 2 r4/.hg/store/undo.backupfiles
258 2 r4/.hg/store/undo.backupfiles
259 2 r4/.hg/store/undo.phaseroots
259 2 r4/.hg/store/undo.phaseroots
260 [24] r4/\.hg/undo\.backup\.dirstate (re)
260 [24] r4/\.hg/undo\.backup\.dirstate (re)
261 2 r4/.hg/undo.bookmarks
261 2 r4/.hg/undo.bookmarks
262 2 r4/.hg/undo.branch
262 2 r4/.hg/undo.branch
263 2 r4/.hg/undo.desc
263 2 r4/.hg/undo.desc
264 [24] r4/\.hg/undo\.dirstate (re)
264 [24] r4/\.hg/undo\.dirstate (re)
265 2 r4/d1/data1
265 2 r4/d1/data1
266 2 r4/d1/f2
266 2 r4/d1/f2
267 2 r4/f1
267 2 r4/f1
268 2 r4/f3
268 2 r4/f3
269
269
270 Update back to revision 12 in r4 should break hardlink of file f1 and f3:
270 Update back to revision 12 in r4 should break hardlink of file f1 and f3:
271 #if hardlink-whitelisted
271 #if hardlink-whitelisted
272 $ nlinksdir r4/.hg/undo.backup.dirstate r4/.hg/undo.dirstate
272 $ nlinksdir r4/.hg/undo.backup.dirstate r4/.hg/undo.dirstate
273 4 r4/.hg/undo.backup.dirstate
273 4 r4/.hg/undo.backup.dirstate
274 4 r4/.hg/undo.dirstate
274 4 r4/.hg/undo.dirstate
275 #endif
275 #endif
276
276
277
277
278 $ hg -R r4 up 12
278 $ hg -R r4 up 12
279 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
279 2 files updated, 0 files merged, 0 files removed, 0 files unresolved (execbit !)
280 1 files updated, 0 files merged, 0 files removed, 0 files unresolved (no-execbit !)
280
281
281 $ nlinksdir r4
282 $ nlinksdir r4
282 2 r4/.hg/00changelog.i
283 2 r4/.hg/00changelog.i
283 1 r4/.hg/branch
284 1 r4/.hg/branch
284 2 r4/.hg/cache/branch2-base
285 2 r4/.hg/cache/branch2-base
285 2 r4/.hg/cache/branch2-served
286 2 r4/.hg/cache/branch2-served
286 2 r4/.hg/cache/checkisexec (execbit !)
287 2 r4/.hg/cache/checkisexec (execbit !)
287 2 r4/.hg/cache/checklink-target (symlink !)
288 2 r4/.hg/cache/checklink-target (symlink !)
288 2 r4/.hg/cache/checknoexec (execbit !)
289 2 r4/.hg/cache/checknoexec (execbit !)
289 2 r4/.hg/cache/rbc-names-v1
290 2 r4/.hg/cache/rbc-names-v1
290 2 r4/.hg/cache/rbc-revs-v1
291 2 r4/.hg/cache/rbc-revs-v1
291 1 r4/.hg/dirstate
292 1 r4/.hg/dirstate
292 2 r4/.hg/hgrc
293 2 r4/.hg/hgrc
293 2 r4/.hg/last-message.txt
294 2 r4/.hg/last-message.txt
294 2 r4/.hg/requires
295 2 r4/.hg/requires
295 2 r4/.hg/store/00changelog.i
296 2 r4/.hg/store/00changelog.i
296 2 r4/.hg/store/00manifest.i
297 2 r4/.hg/store/00manifest.i
297 2 r4/.hg/store/data/d1/f2.d
298 2 r4/.hg/store/data/d1/f2.d
298 2 r4/.hg/store/data/d1/f2.i
299 2 r4/.hg/store/data/d1/f2.i
299 2 r4/.hg/store/data/f1.i
300 2 r4/.hg/store/data/f1.i
300 2 r4/.hg/store/data/f3.i
301 2 r4/.hg/store/data/f3.i
301 2 r4/.hg/store/fncache
302 2 r4/.hg/store/fncache
302 2 r4/.hg/store/phaseroots
303 2 r4/.hg/store/phaseroots
303 2 r4/.hg/store/undo
304 2 r4/.hg/store/undo
304 2 r4/.hg/store/undo.backup.fncache
305 2 r4/.hg/store/undo.backup.fncache
305 2 r4/.hg/store/undo.backup.phaseroots
306 2 r4/.hg/store/undo.backup.phaseroots
306 2 r4/.hg/store/undo.backupfiles
307 2 r4/.hg/store/undo.backupfiles
307 2 r4/.hg/store/undo.phaseroots
308 2 r4/.hg/store/undo.phaseroots
308 [24] r4/\.hg/undo\.backup\.dirstate (re)
309 [24] r4/\.hg/undo\.backup\.dirstate (re)
309 2 r4/.hg/undo.bookmarks
310 2 r4/.hg/undo.bookmarks
310 2 r4/.hg/undo.branch
311 2 r4/.hg/undo.branch
311 2 r4/.hg/undo.desc
312 2 r4/.hg/undo.desc
312 [24] r4/\.hg/undo\.dirstate (re)
313 [24] r4/\.hg/undo\.dirstate (re)
313 2 r4/d1/data1
314 2 r4/d1/data1
314 2 r4/d1/f2
315 2 r4/d1/f2
315 1 r4/f1
316 1 r4/f1
316 1 r4/f3
317 1 r4/f3 (execbit !)
318 2 r4/f3 (no-execbit !)
317
319
318 #if hardlink-whitelisted
320 #if hardlink-whitelisted
319 $ nlinksdir r4/.hg/undo.backup.dirstate r4/.hg/undo.dirstate
321 $ nlinksdir r4/.hg/undo.backup.dirstate r4/.hg/undo.dirstate
320 4 r4/.hg/undo.backup.dirstate
322 4 r4/.hg/undo.backup.dirstate
321 4 r4/.hg/undo.dirstate
323 4 r4/.hg/undo.dirstate
322 #endif
324 #endif
323
325
324 Test hardlinking outside hg:
326 Test hardlinking outside hg:
325
327
326 $ mkdir x
328 $ mkdir x
327 $ echo foo > x/a
329 $ echo foo > x/a
328
330
329 $ linkcp x y
331 $ linkcp x y
330 $ echo bar >> y/a
332 $ echo bar >> y/a
331
333
332 No diff if hardlink:
334 No diff if hardlink:
333
335
334 $ diff x/a y/a
336 $ diff x/a y/a
335
337
336 Test mq hardlinking:
338 Test mq hardlinking:
337
339
338 $ echo "[extensions]" >> $HGRCPATH
340 $ echo "[extensions]" >> $HGRCPATH
339 $ echo "mq=" >> $HGRCPATH
341 $ echo "mq=" >> $HGRCPATH
340
342
341 $ hg init a
343 $ hg init a
342 $ cd a
344 $ cd a
343
345
344 $ hg qimport -n foo - << EOF
346 $ hg qimport -n foo - << EOF
345 > # HG changeset patch
347 > # HG changeset patch
346 > # Date 1 0
348 > # Date 1 0
347 > diff -r 2588a8b53d66 a
349 > diff -r 2588a8b53d66 a
348 > --- /dev/null Thu Jan 01 00:00:00 1970 +0000
350 > --- /dev/null Thu Jan 01 00:00:00 1970 +0000
349 > +++ b/a Wed Jul 23 15:54:29 2008 +0200
351 > +++ b/a Wed Jul 23 15:54:29 2008 +0200
350 > @@ -0,0 +1,1 @@
352 > @@ -0,0 +1,1 @@
351 > +a
353 > +a
352 > EOF
354 > EOF
353 adding foo to series file
355 adding foo to series file
354
356
355 $ hg qpush
357 $ hg qpush
356 applying foo
358 applying foo
357 now at: foo
359 now at: foo
358
360
359 $ cd ..
361 $ cd ..
360 $ linkcp a b
362 $ linkcp a b
361 $ cd b
363 $ cd b
362
364
363 $ hg qimport -n bar - << EOF
365 $ hg qimport -n bar - << EOF
364 > # HG changeset patch
366 > # HG changeset patch
365 > # Date 2 0
367 > # Date 2 0
366 > diff -r 2588a8b53d66 a
368 > diff -r 2588a8b53d66 a
367 > --- /dev/null Thu Jan 01 00:00:00 1970 +0000
369 > --- /dev/null Thu Jan 01 00:00:00 1970 +0000
368 > +++ b/b Wed Jul 23 15:54:29 2008 +0200
370 > +++ b/b Wed Jul 23 15:54:29 2008 +0200
369 > @@ -0,0 +1,1 @@
371 > @@ -0,0 +1,1 @@
370 > +b
372 > +b
371 > EOF
373 > EOF
372 adding bar to series file
374 adding bar to series file
373
375
374 $ hg qpush
376 $ hg qpush
375 applying bar
377 applying bar
376 now at: bar
378 now at: bar
377
379
378 $ cat .hg/patches/status
380 $ cat .hg/patches/status
379 430ed4828a74fa4047bc816a25500f7472ab4bfe:foo
381 430ed4828a74fa4047bc816a25500f7472ab4bfe:foo
380 4e7abb4840c46a910f6d7b4d3c3fc7e5209e684c:bar
382 4e7abb4840c46a910f6d7b4d3c3fc7e5209e684c:bar
381
383
382 $ cat .hg/patches/series
384 $ cat .hg/patches/series
383 foo
385 foo
384 bar
386 bar
385
387
386 $ cat ../a/.hg/patches/status
388 $ cat ../a/.hg/patches/status
387 430ed4828a74fa4047bc816a25500f7472ab4bfe:foo
389 430ed4828a74fa4047bc816a25500f7472ab4bfe:foo
388
390
389 $ cat ../a/.hg/patches/series
391 $ cat ../a/.hg/patches/series
390 foo
392 foo
391
393
392 Test tags hardlinking:
394 Test tags hardlinking:
393
395
394 $ hg qdel -r qbase:qtip
396 $ hg qdel -r qbase:qtip
395 patch foo finalized without changeset message
397 patch foo finalized without changeset message
396 patch bar finalized without changeset message
398 patch bar finalized without changeset message
397
399
398 $ hg tag -l lfoo
400 $ hg tag -l lfoo
399 $ hg tag foo
401 $ hg tag foo
400
402
401 $ cd ..
403 $ cd ..
402 $ linkcp b c
404 $ linkcp b c
403 $ cd c
405 $ cd c
404
406
405 $ hg tag -l -r 0 lbar
407 $ hg tag -l -r 0 lbar
406 $ hg tag -r 0 bar
408 $ hg tag -r 0 bar
407
409
408 $ cat .hgtags
410 $ cat .hgtags
409 4e7abb4840c46a910f6d7b4d3c3fc7e5209e684c foo
411 4e7abb4840c46a910f6d7b4d3c3fc7e5209e684c foo
410 430ed4828a74fa4047bc816a25500f7472ab4bfe bar
412 430ed4828a74fa4047bc816a25500f7472ab4bfe bar
411
413
412 $ cat .hg/localtags
414 $ cat .hg/localtags
413 4e7abb4840c46a910f6d7b4d3c3fc7e5209e684c lfoo
415 4e7abb4840c46a910f6d7b4d3c3fc7e5209e684c lfoo
414 430ed4828a74fa4047bc816a25500f7472ab4bfe lbar
416 430ed4828a74fa4047bc816a25500f7472ab4bfe lbar
415
417
416 $ cat ../b/.hgtags
418 $ cat ../b/.hgtags
417 4e7abb4840c46a910f6d7b4d3c3fc7e5209e684c foo
419 4e7abb4840c46a910f6d7b4d3c3fc7e5209e684c foo
418
420
419 $ cat ../b/.hg/localtags
421 $ cat ../b/.hg/localtags
420 4e7abb4840c46a910f6d7b4d3c3fc7e5209e684c lfoo
422 4e7abb4840c46a910f6d7b4d3c3fc7e5209e684c lfoo
421
423
422 $ cd ..
424 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now