##// END OF EJS Templates
test-subrepo-git.t: adapt for Windows...
Eduard-Cristian Stefan -
r17022:8a38839a default
parent child Browse files
Show More
@@ -1,516 +1,524 b''
1 1 $ "$TESTDIR/hghave" git || exit 80
2 2
3 3 make git commits repeatable
4 4
5 $ echo "[core]" >> $HOME/.gitconfig
6 $ echo "autocrlf = false" >> $HOME/.gitconfig
5 7 $ GIT_AUTHOR_NAME='test'; export GIT_AUTHOR_NAME
6 8 $ GIT_AUTHOR_EMAIL='test@example.org'; export GIT_AUTHOR_EMAIL
7 9 $ GIT_AUTHOR_DATE='1234567891 +0000'; export GIT_AUTHOR_DATE
8 10 $ GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"; export GIT_COMMITTER_NAME
9 11 $ GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"; export GIT_COMMITTER_EMAIL
10 12 $ GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"; export GIT_COMMITTER_DATE
11 13
12 14 root hg repo
13 15
14 16 $ hg init t
15 17 $ cd t
16 18 $ echo a > a
17 19 $ hg add a
18 20 $ hg commit -m a
19 21 $ cd ..
20 22
21 23 new external git repo
22 24
23 25 $ mkdir gitroot
24 26 $ cd gitroot
25 27 $ git init -q
26 28 $ echo g > g
27 29 $ git add g
28 30 $ git commit -q -m g
29 31
30 32 add subrepo clone
31 33
32 34 $ cd ../t
33 35 $ echo 's = [git]../gitroot' > .hgsub
34 36 $ git clone -q ../gitroot s
35 37 $ hg add .hgsub
36 38 $ hg commit -m 'new git subrepo'
37 39 $ hg debugsub
38 40 path s
39 41 source ../gitroot
40 42 revision da5f5b1d8ffcf62fb8327bcd3c89a4367a6018e7
41 43
42 44 record a new commit from upstream from a different branch
43 45
44 46 $ cd ../gitroot
45 47 $ git checkout -q -b testing
46 48 $ echo gg >> g
47 49 $ git commit -q -a -m gg
48 50
49 51 $ cd ../t/s
50 52 $ git pull -q >/dev/null 2>/dev/null
51 53 $ git checkout -q -b testing origin/testing >/dev/null
52 54
53 55 $ cd ..
54 56 $ hg status --subrepos
55 57 M s/g
56 58 $ hg commit -m 'update git subrepo'
57 59 $ hg debugsub
58 60 path s
59 61 source ../gitroot
60 62 revision 126f2a14290cd5ce061fdedc430170e8d39e1c5a
61 63
62 64 make $GITROOT pushable, by replacing it with a clone with nothing checked out
63 65
64 66 $ cd ..
65 67 $ git clone gitroot gitrootbare --bare -q
66 68 $ rm -rf gitroot
67 69 $ mv gitrootbare gitroot
68 70
69 71 clone root
70 72
71 73 $ cd t
72 74 $ hg clone . ../tc
73 75 updating to branch default
74 76 cloning subrepo s from $TESTTMP/gitroot
75 77 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
76 78 $ cd ../tc
77 79 $ hg debugsub
78 80 path s
79 81 source ../gitroot
80 82 revision 126f2a14290cd5ce061fdedc430170e8d39e1c5a
81 83
82 84 update to previous substate
83 85
84 86 $ hg update 1 -q
85 87 $ cat s/g
86 88 g
87 89 $ hg debugsub
88 90 path s
89 91 source ../gitroot
90 92 revision da5f5b1d8ffcf62fb8327bcd3c89a4367a6018e7
91 93
92 94 clone root, make local change
93 95
94 96 $ cd ../t
95 97 $ hg clone . ../ta
96 98 updating to branch default
97 99 cloning subrepo s from $TESTTMP/gitroot
98 100 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
99 101
100 102 $ cd ../ta
101 103 $ echo ggg >> s/g
102 104 $ hg status --subrepos
103 105 M s/g
104 106 $ hg commit --subrepos -m ggg
105 107 committing subrepository s
106 108 $ hg debugsub
107 109 path s
108 110 source ../gitroot
109 111 revision 79695940086840c99328513acbe35f90fcd55e57
110 112
111 113 clone root separately, make different local change
112 114
113 115 $ cd ../t
114 116 $ hg clone . ../tb
115 117 updating to branch default
116 118 cloning subrepo s from $TESTTMP/gitroot
117 119 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
118 120
119 121 $ cd ../tb/s
120 122 $ echo f > f
121 123 $ git add f
122 124 $ cd ..
123 125
124 126 $ hg status --subrepos
125 127 A s/f
126 128 $ hg commit --subrepos -m f
127 129 committing subrepository s
128 130 $ hg debugsub
129 131 path s
130 132 source ../gitroot
131 133 revision aa84837ccfbdfedcdcdeeedc309d73e6eb069edc
132 134
133 135 user b push changes
134 136
135 137 $ hg push 2>/dev/null
136 pushing to $TESTTMP/t
138 pushing to $TESTTMP/t (glob)
137 139 pushing branch testing of subrepo s
138 140 searching for changes
139 141 adding changesets
140 142 adding manifests
141 143 adding file changes
142 144 added 1 changesets with 1 changes to 1 files
143 145
144 146 user a pulls, merges, commits
145 147
146 148 $ cd ../ta
147 149 $ hg pull
148 pulling from $TESTTMP/t
150 pulling from $TESTTMP/t (glob)
149 151 searching for changes
150 152 adding changesets
151 153 adding manifests
152 154 adding file changes
153 155 added 1 changesets with 1 changes to 1 files (+1 heads)
154 156 (run 'hg heads' to see heads, 'hg merge' to merge)
155 157 $ hg merge 2>/dev/null
156 158 pulling subrepo s from $TESTTMP/gitroot
157 159 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
158 160 (branch merge, don't forget to commit)
159 161 $ cat s/f
160 162 f
161 163 $ cat s/g
162 164 g
163 165 gg
164 166 ggg
165 167 $ hg commit --subrepos -m 'merge'
166 168 committing subrepository s
167 169 $ hg status --subrepos --rev 1:5
168 170 M .hgsubstate
169 171 M s/g
170 172 A s/f
171 173 $ hg debugsub
172 174 path s
173 175 source ../gitroot
174 176 revision f47b465e1bce645dbf37232a00574aa1546ca8d3
175 177 $ hg push 2>/dev/null
176 pushing to $TESTTMP/t
178 pushing to $TESTTMP/t (glob)
177 179 pushing branch testing of subrepo s
178 180 searching for changes
179 181 adding changesets
180 182 adding manifests
181 183 adding file changes
182 184 added 2 changesets with 2 changes to 1 files
183 185
184 186 make upstream git changes
185 187
186 188 $ cd ..
187 189 $ git clone -q gitroot gitclone
188 190 $ cd gitclone
189 191 $ echo ff >> f
190 192 $ git commit -q -a -m ff
191 193 $ echo fff >> f
192 194 $ git commit -q -a -m fff
193 195 $ git push origin testing 2>/dev/null
194 196
195 197 make and push changes to hg without updating the subrepo
196 198
197 199 $ cd ../t
198 200 $ hg clone . ../td
199 201 updating to branch default
200 202 cloning subrepo s from $TESTTMP/gitroot
201 203 checking out detached HEAD in subrepo s
202 204 check out a git branch if you intend to make changes
203 205 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
204 206 $ cd ../td
205 207 $ echo aa >> a
206 208 $ hg commit -m aa
207 209 $ hg push
208 pushing to $TESTTMP/t
210 pushing to $TESTTMP/t (glob)
209 211 searching for changes
210 212 adding changesets
211 213 adding manifests
212 214 adding file changes
213 215 added 1 changesets with 1 changes to 1 files
214 216
215 217 sync to upstream git, distribute changes
216 218
217 219 $ cd ../ta
218 220 $ hg pull -u -q
219 221 $ cd s
220 222 $ git pull -q >/dev/null 2>/dev/null
221 223 $ cd ..
222 224 $ hg commit -m 'git upstream sync'
223 225 $ hg debugsub
224 226 path s
225 227 source ../gitroot
226 228 revision 32a343883b74769118bb1d3b4b1fbf9156f4dddc
227 229 $ hg push -q
228 230
229 231 $ cd ../tb
230 232 $ hg pull -q
231 233 $ hg update 2>/dev/null
232 234 pulling subrepo s from $TESTTMP/gitroot
233 235 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
234 236 $ hg debugsub
235 237 path s
236 238 source ../gitroot
237 239 revision 32a343883b74769118bb1d3b4b1fbf9156f4dddc
238 240
239 241 update to a revision without the subrepo, keeping the local git repository
240 242
241 243 $ cd ../t
242 244 $ hg up 0
243 245 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
244 246 $ ls -a s
245 247 .
246 248 ..
247 249 .git
248 250
249 251 $ hg up 2
250 252 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
251 253 $ ls -a s
252 254 .
253 255 ..
254 256 .git
255 257 g
256 258
257 259 archive subrepos
258 260
259 261 $ cd ../tc
260 262 $ hg pull -q
261 263 $ hg archive --subrepos -r 5 ../archive 2>/dev/null
262 264 pulling subrepo s from $TESTTMP/gitroot
263 265 $ cd ../archive
264 266 $ cat s/f
265 267 f
266 268 $ cat s/g
267 269 g
268 270 gg
269 271 ggg
270 272
271 273 create nested repo
272 274
273 275 $ cd ..
274 276 $ hg init outer
275 277 $ cd outer
276 278 $ echo b>b
277 279 $ hg add b
278 280 $ hg commit -m b
279 281
280 282 $ hg clone ../t inner
281 283 updating to branch default
282 284 cloning subrepo s from $TESTTMP/gitroot
283 285 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
284 286 $ echo inner = inner > .hgsub
285 287 $ hg add .hgsub
286 288 $ hg commit -m 'nested sub'
287 289
288 290 nested commit
289 291
290 292 $ echo ffff >> inner/s/f
291 293 $ hg status --subrepos
292 294 M inner/s/f
293 295 $ hg commit --subrepos -m nested
294 296 committing subrepository inner
295 committing subrepository inner/s
297 committing subrepository inner/s (glob)
296 298
297 299 nested archive
298 300
299 301 $ hg archive --subrepos ../narchive
300 302 $ ls ../narchive/inner/s | grep -v pax_global_header
301 303 f
302 304 g
303 305
304 306 relative source expansion
305 307
306 308 $ cd ..
307 309 $ mkdir d
308 310 $ hg clone t d/t
309 311 updating to branch default
310 312 cloning subrepo s from $TESTTMP/gitroot
311 313 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
312 314
313 315 Don't crash if the subrepo is missing
314 316
315 317 $ hg clone t missing -q
316 318 $ cd missing
317 319 $ rm -rf s
318 320 $ hg status -S
319 321 $ hg sum | grep commit
320 322 commit: 1 subrepos
321 323 $ hg push -q
322 324 abort: subrepo s is missing
323 325 [255]
324 326 $ hg commit --subrepos -qm missing
325 327 abort: subrepo s is missing
326 328 [255]
327 329 $ hg update -C
328 330 cloning subrepo s from $TESTTMP/gitroot
329 331 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
330 332 $ hg sum | grep commit
331 333 commit: (clean)
332 334
333 335 Don't crash if the .hgsubstate entry is missing
334 336
335 337 $ hg update 1 -q
336 338 $ hg rm .hgsubstate
337 339 $ hg commit .hgsubstate -m 'no substate'
338 340 nothing changed
339 341 [1]
340 342 $ hg tag -l nosubstate
341 343 $ hg manifest
342 344 .hgsub
343 345 .hgsubstate
344 346 a
345 347
346 348 $ hg status -S
347 349 R .hgsubstate
348 350 $ hg sum | grep commit
349 351 commit: 1 removed, 1 subrepos (new branch head)
350 352
351 353 $ hg commit -m 'restore substate'
352 354 nothing changed
353 355 [1]
354 356 $ hg manifest
355 357 .hgsub
356 358 .hgsubstate
357 359 a
358 360 $ hg sum | grep commit
359 361 commit: 1 removed, 1 subrepos (new branch head)
360 362
361 363 $ hg update -qC nosubstate
362 364 $ ls s
363 365 g
364 366
365 367 issue3109: false positives in git diff-index
366 368
367 369 $ hg update -q
368 370 $ touch -t 200001010000 s/g
369 371 $ hg status --subrepos
370 372 $ touch -t 200001010000 s/g
371 373 $ hg sum | grep commit
372 374 commit: (clean)
373 375
374 376 Check hg update --clean
375 377 $ cd $TESTTMP/ta
376 378 $ echo > s/g
377 379 $ cd s
378 380 $ echo c1 > f1
379 381 $ echo c1 > f2
380 382 $ git add f1
381 383 $ cd ..
382 384 $ hg status -S
383 385 M s/g
384 386 A s/f1
385 387 $ ls s
386 388 f
387 389 f1
388 390 f2
389 391 g
390 392 $ hg update --clean
391 393 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
392 394 $ hg status -S
393 395 $ ls s
394 396 f
395 397 f1
396 398 f2
397 399 g
398 400
399 401 Sticky subrepositories, no changes
400 402 $ cd $TESTTMP/ta
401 403 $ hg id -n
402 404 7
403 405 $ cd s
404 406 $ git rev-parse HEAD
405 407 32a343883b74769118bb1d3b4b1fbf9156f4dddc
406 408 $ cd ..
407 409 $ hg update 1 > /dev/null 2>&1
408 410 $ hg id -n
409 411 1
410 412 $ cd s
411 413 $ git rev-parse HEAD
412 414 da5f5b1d8ffcf62fb8327bcd3c89a4367a6018e7
413 415 $ cd ..
414 416
415 417 Sticky subrepositorys, file changes
416 418 $ touch s/f1
417 419 $ cd s
418 420 $ git add f1
419 421 $ cd ..
420 422 $ hg id -n
421 423 1
422 424 $ cd s
423 425 $ git rev-parse HEAD
424 426 da5f5b1d8ffcf62fb8327bcd3c89a4367a6018e7
425 427 $ cd ..
426 428 $ hg update 4
427 429 subrepository sources for s differ
428 430 use (l)ocal source (da5f5b1) or (r)emote source (aa84837)?
429 431 l
430 432 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
431 433 $ hg id -n
432 434 4+
433 435 $ cd s
434 436 $ git rev-parse HEAD
435 437 da5f5b1d8ffcf62fb8327bcd3c89a4367a6018e7
436 438 $ cd ..
437 439 $ hg update --clean tip > /dev/null 2>&1
438 440
439 441 Sticky subrepository, revision updates
440 442 $ hg id -n
441 443 7
442 444 $ cd s
443 445 $ git rev-parse HEAD
444 446 32a343883b74769118bb1d3b4b1fbf9156f4dddc
445 447 $ cd ..
446 448 $ cd s
447 449 $ git checkout aa84837ccfbdfedcdcdeeedc309d73e6eb069edc
448 450 Previous HEAD position was 32a3438... fff
449 451 HEAD is now at aa84837... f
450 452 $ cd ..
451 453 $ hg update 1
452 454 subrepository sources for s differ (in checked out version)
453 455 use (l)ocal source (32a3438) or (r)emote source (da5f5b1)?
454 456 l
455 457 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
456 458 $ hg id -n
457 459 1+
458 460 $ cd s
459 461 $ git rev-parse HEAD
460 462 aa84837ccfbdfedcdcdeeedc309d73e6eb069edc
461 463 $ cd ..
462 464
463 465 Sticky subrepository, file changes and revision updates
464 466 $ touch s/f1
465 467 $ cd s
466 468 $ git add f1
467 469 $ git rev-parse HEAD
468 470 aa84837ccfbdfedcdcdeeedc309d73e6eb069edc
469 471 $ cd ..
470 472 $ hg id -n
471 473 1+
472 474 $ hg update 7
473 475 subrepository sources for s differ
474 476 use (l)ocal source (32a3438) or (r)emote source (32a3438)?
475 477 l
476 478 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
477 479 $ hg id -n
478 480 7
479 481 $ cd s
480 482 $ git rev-parse HEAD
481 483 aa84837ccfbdfedcdcdeeedc309d73e6eb069edc
482 484 $ cd ..
483 485
484 486 Sticky repository, update --clean
485 487 $ hg update --clean tip 2>/dev/null
486 488 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
487 489 $ hg id -n
488 490 7
489 491 $ cd s
490 492 $ git rev-parse HEAD
491 493 32a343883b74769118bb1d3b4b1fbf9156f4dddc
492 494 $ cd ..
493 495
494 496 Test subrepo already at intended revision:
495 497 $ cd s
496 498 $ git checkout 32a343883b74769118bb1d3b4b1fbf9156f4dddc
497 499 HEAD is now at 32a3438... fff
498 500 $ cd ..
499 501 $ hg update 1
500 502 Previous HEAD position was 32a3438... fff
501 503 HEAD is now at da5f5b1... g
502 504 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
503 505 $ hg id -n
504 506 1
505 507 $ cd s
506 508 $ git rev-parse HEAD
507 509 da5f5b1d8ffcf62fb8327bcd3c89a4367a6018e7
508 510 $ cd ..
509 511
510 512 Test forgetting files, not implemented in git subrepo, used to
511 513 traceback
514 #if no-windows
512 515 $ hg forget 'notafile*'
513 516 notafile*: No such file or directory
514 517 [1]
518 #else
519 $ hg forget 'notafile'
520 notafile: * (glob)
521 [1]
522 #endif
515 523
516 524 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now