##// END OF EJS Templates
convert: changed test's progress output format to ignore estimate...
Christian Delahousse -
r27002:a8a52065 default
parent child Browse files
Show More
@@ -1,730 +1,731 b''
1 1 #require git
2 2
3 3 $ echo "[core]" >> $HOME/.gitconfig
4 4 $ echo "autocrlf = false" >> $HOME/.gitconfig
5 5 $ echo "[core]" >> $HOME/.gitconfig
6 6 $ echo "autocrlf = false" >> $HOME/.gitconfig
7 7 $ echo "[extensions]" >> $HGRCPATH
8 8 $ echo "convert=" >> $HGRCPATH
9 9 $ GIT_AUTHOR_NAME='test'; export GIT_AUTHOR_NAME
10 10 $ GIT_AUTHOR_EMAIL='test@example.org'; export GIT_AUTHOR_EMAIL
11 11 $ GIT_AUTHOR_DATE="2007-01-01 00:00:00 +0000"; export GIT_AUTHOR_DATE
12 12 $ GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"; export GIT_COMMITTER_NAME
13 13 $ GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"; export GIT_COMMITTER_EMAIL
14 14 $ GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"; export GIT_COMMITTER_DATE
15 15 $ INVALIDID1=afd12345af
16 16 $ INVALIDID2=28173x36ddd1e67bf7098d541130558ef5534a86
17 17 $ VALIDID1=39b3d83f9a69a9ba4ebb111461071a0af0027357
18 18 $ VALIDID2=8dd6476bd09d9c7776355dc454dafe38efaec5da
19 19 $ count=10
20 20 $ commit()
21 21 > {
22 22 > GIT_AUTHOR_DATE="2007-01-01 00:00:$count +0000"
23 23 > GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"
24 24 > git commit "$@" >/dev/null 2>/dev/null || echo "git commit error"
25 25 > count=`expr $count + 1`
26 26 > }
27 27 $ mkdir git-repo
28 28 $ cd git-repo
29 29 $ git init-db >/dev/null 2>/dev/null
30 30 $ echo a > a
31 31 $ mkdir d
32 32 $ echo b > d/b
33 33 $ git add a d
34 34 $ commit -a -m t1
35 35
36 36 Remove the directory, then try to replace it with a file (issue754)
37 37
38 38 $ git rm -f d/b
39 39 rm 'd/b'
40 40 $ commit -m t2
41 41 $ echo d > d
42 42 $ git add d
43 43 $ commit -m t3
44 44 $ echo b >> a
45 45 $ commit -a -m t4.1
46 46 $ git checkout -b other HEAD~ >/dev/null 2>/dev/null
47 47 $ echo c > a
48 48 $ echo a >> a
49 49 $ commit -a -m t4.2
50 50 $ git checkout master >/dev/null 2>/dev/null
51 51 $ git pull --no-commit . other > /dev/null 2>/dev/null
52 52 $ commit -m 'Merge branch other'
53 53 $ cd ..
54 54 $ hg convert --config extensions.progress= --config progress.assume-tty=1 \
55 55 > --config progress.delay=0 --config progress.changedelay=0 \
56 56 > --config progress.refresh=0 --config progress.width=60 \
57 > --datesort git-repo
57 > --config progress.format='topic, bar, number' --datesort git-repo
58 58 \r (no-eol) (esc)
59 59 scanning [======> ] 1/6\r (no-eol) (esc)
60 60 scanning [=============> ] 2/6\r (no-eol) (esc)
61 61 scanning [=====================> ] 3/6\r (no-eol) (esc)
62 62 scanning [============================> ] 4/6\r (no-eol) (esc)
63 63 scanning [===================================> ] 5/6\r (no-eol) (esc)
64 64 scanning [===========================================>] 6/6\r (no-eol) (esc)
65 65 \r (no-eol) (esc)
66 66 \r (no-eol) (esc)
67 67 converting [ ] 0/6\r (no-eol) (esc)
68 68 getting files [==================> ] 1/2\r (no-eol) (esc)
69 69 getting files [======================================>] 2/2\r (no-eol) (esc)
70 70 \r (no-eol) (esc)
71 71 \r (no-eol) (esc)
72 72 converting [======> ] 1/6\r (no-eol) (esc)
73 73 getting files [======================================>] 1/1\r (no-eol) (esc)
74 74 \r (no-eol) (esc)
75 75 \r (no-eol) (esc)
76 76 converting [=============> ] 2/6\r (no-eol) (esc)
77 77 getting files [======================================>] 1/1\r (no-eol) (esc)
78 78 \r (no-eol) (esc)
79 79 \r (no-eol) (esc)
80 80 converting [====================> ] 3/6\r (no-eol) (esc)
81 81 getting files [======================================>] 1/1\r (no-eol) (esc)
82 82 \r (no-eol) (esc)
83 83 \r (no-eol) (esc)
84 84 converting [===========================> ] 4/6\r (no-eol) (esc)
85 85 getting files [======================================>] 1/1\r (no-eol) (esc)
86 86 \r (no-eol) (esc)
87 87 \r (no-eol) (esc)
88 88 converting [==================================> ] 5/6\r (no-eol) (esc)
89 89 getting files [======================================>] 1/1\r (no-eol) (esc)
90 90 \r (no-eol) (esc)
91 91 assuming destination git-repo-hg
92 92 initializing destination git-repo-hg repository
93 93 scanning source...
94 94 sorting...
95 95 converting...
96 96 5 t1
97 97 4 t2
98 98 3 t3
99 99 2 t4.1
100 100 1 t4.2
101 101 0 Merge branch other
102 102 updating bookmarks
103 103 $ hg up -q -R git-repo-hg
104 104 $ hg -R git-repo-hg tip -v
105 105 changeset: 5:c78094926be2
106 106 bookmark: master
107 107 tag: tip
108 108 parent: 3:f5f5cb45432b
109 109 parent: 4:4e174f80c67c
110 110 user: test <test@example.org>
111 111 date: Mon Jan 01 00:00:15 2007 +0000
112 112 files: a
113 113 description:
114 114 Merge branch other
115 115
116 116
117 117 $ count=10
118 118 $ mkdir git-repo2
119 119 $ cd git-repo2
120 120 $ git init-db >/dev/null 2>/dev/null
121 121 $ echo foo > foo
122 122 $ git add foo
123 123 $ commit -a -m 'add foo'
124 124 $ echo >> foo
125 125 $ commit -a -m 'change foo'
126 126 $ git checkout -b Bar HEAD~ >/dev/null 2>/dev/null
127 127 $ echo quux >> quux
128 128 $ git add quux
129 129 $ commit -a -m 'add quux'
130 130 $ echo bar > bar
131 131 $ git add bar
132 132 $ commit -a -m 'add bar'
133 133 $ git checkout -b Baz HEAD~ >/dev/null 2>/dev/null
134 134 $ echo baz > baz
135 135 $ git add baz
136 136 $ commit -a -m 'add baz'
137 137 $ git checkout master >/dev/null 2>/dev/null
138 138 $ git pull --no-commit . Bar Baz > /dev/null 2>/dev/null
139 139 $ commit -m 'Octopus merge'
140 140 $ echo bar >> bar
141 141 $ commit -a -m 'change bar'
142 142 $ git checkout -b Foo HEAD~ >/dev/null 2>/dev/null
143 143 $ echo >> foo
144 144 $ commit -a -m 'change foo'
145 145 $ git checkout master >/dev/null 2>/dev/null
146 146 $ git pull --no-commit -s ours . Foo > /dev/null 2>/dev/null
147 147 $ commit -m 'Discard change to foo'
148 148 $ cd ..
149 149 $ glog()
150 150 > {
151 151 > hg log -G --template '{rev} "{desc|firstline}" files: {files}\n' "$@"
152 152 > }
153 153 $ splitrepo()
154 154 > {
155 155 > msg="$1"
156 156 > files="$2"
157 157 > opts=$3
158 158 > echo "% $files: $msg"
159 159 > prefix=`echo "$files" | sed -e 's/ /-/g'`
160 160 > fmap="$prefix.fmap"
161 161 > repo="$prefix.repo"
162 162 > for i in $files; do
163 163 > echo "include $i" >> "$fmap"
164 164 > done
165 165 > hg -q convert $opts --filemap "$fmap" --datesort git-repo2 "$repo"
166 166 > hg up -q -R "$repo"
167 167 > glog -R "$repo"
168 168 > hg -R "$repo" manifest --debug
169 169 > }
170 170
171 171 full conversion
172 172
173 173 $ hg convert --datesort git-repo2 fullrepo \
174 174 > --config extensions.progress= --config progress.assume-tty=1 \
175 175 > --config progress.delay=0 --config progress.changedelay=0 \
176 > --config progress.refresh=0 --config progress.width=60
176 > --config progress.refresh=0 --config progress.width=60 \
177 > --config progress.format='topic, bar, number'
177 178 \r (no-eol) (esc)
178 179 scanning [===> ] 1/9\r (no-eol) (esc)
179 180 scanning [========> ] 2/9\r (no-eol) (esc)
180 181 scanning [=============> ] 3/9\r (no-eol) (esc)
181 182 scanning [==================> ] 4/9\r (no-eol) (esc)
182 183 scanning [=======================> ] 5/9\r (no-eol) (esc)
183 184 scanning [============================> ] 6/9\r (no-eol) (esc)
184 185 scanning [=================================> ] 7/9\r (no-eol) (esc)
185 186 scanning [======================================> ] 8/9\r (no-eol) (esc)
186 187 scanning [===========================================>] 9/9\r (no-eol) (esc)
187 188 \r (no-eol) (esc)
188 189 \r (no-eol) (esc)
189 190 converting [ ] 0/9\r (no-eol) (esc)
190 191 getting files [======================================>] 1/1\r (no-eol) (esc)
191 192 \r (no-eol) (esc)
192 193 \r (no-eol) (esc)
193 194 converting [===> ] 1/9\r (no-eol) (esc)
194 195 getting files [======================================>] 1/1\r (no-eol) (esc)
195 196 \r (no-eol) (esc)
196 197 \r (no-eol) (esc)
197 198 converting [========> ] 2/9\r (no-eol) (esc)
198 199 getting files [======================================>] 1/1\r (no-eol) (esc)
199 200 \r (no-eol) (esc)
200 201 \r (no-eol) (esc)
201 202 converting [=============> ] 3/9\r (no-eol) (esc)
202 203 getting files [======================================>] 1/1\r (no-eol) (esc)
203 204 \r (no-eol) (esc)
204 205 \r (no-eol) (esc)
205 206 converting [=================> ] 4/9\r (no-eol) (esc)
206 207 getting files [======================================>] 1/1\r (no-eol) (esc)
207 208 \r (no-eol) (esc)
208 209 \r (no-eol) (esc)
209 210 converting [======================> ] 5/9\r (no-eol) (esc)
210 211 getting files [===> ] 1/8\r (no-eol) (esc)
211 212 getting files [========> ] 2/8\r (no-eol) (esc)
212 213 getting files [=============> ] 3/8\r (no-eol) (esc)
213 214 getting files [==================> ] 4/8\r (no-eol) (esc)
214 215 getting files [=======================> ] 5/8\r (no-eol) (esc)
215 216 getting files [============================> ] 6/8\r (no-eol) (esc)
216 217 getting files [=================================> ] 7/8\r (no-eol) (esc)
217 218 getting files [======================================>] 8/8\r (no-eol) (esc)
218 219 \r (no-eol) (esc)
219 220 \r (no-eol) (esc)
220 221 converting [===========================> ] 6/9\r (no-eol) (esc)
221 222 getting files [======================================>] 1/1\r (no-eol) (esc)
222 223 \r (no-eol) (esc)
223 224 \r (no-eol) (esc)
224 225 converting [===============================> ] 7/9\r (no-eol) (esc)
225 226 getting files [======================================>] 1/1\r (no-eol) (esc)
226 227 \r (no-eol) (esc)
227 228 \r (no-eol) (esc)
228 229 converting [====================================> ] 8/9\r (no-eol) (esc)
229 230 getting files [==================> ] 1/2\r (no-eol) (esc)
230 231 getting files [======================================>] 2/2\r (no-eol) (esc)
231 232 \r (no-eol) (esc)
232 233 initializing destination fullrepo repository
233 234 scanning source...
234 235 sorting...
235 236 converting...
236 237 8 add foo
237 238 7 change foo
238 239 6 add quux
239 240 5 add bar
240 241 4 add baz
241 242 3 Octopus merge
242 243 2 change bar
243 244 1 change foo
244 245 0 Discard change to foo
245 246 updating bookmarks
246 247 $ hg up -q -R fullrepo
247 248 $ glog -R fullrepo
248 249 @ 9 "Discard change to foo" files: foo
249 250 |\
250 251 | o 8 "change foo" files: foo
251 252 | |
252 253 o | 7 "change bar" files: bar
253 254 |/
254 255 o 6 "(octopus merge fixup)" files:
255 256 |\
256 257 | o 5 "Octopus merge" files: baz
257 258 | |\
258 259 o | | 4 "add baz" files: baz
259 260 | | |
260 261 +---o 3 "add bar" files: bar
261 262 | |
262 263 o | 2 "add quux" files: quux
263 264 | |
264 265 | o 1 "change foo" files: foo
265 266 |/
266 267 o 0 "add foo" files: foo
267 268
268 269 $ hg -R fullrepo manifest --debug
269 270 245a3b8bc653999c2b22cdabd517ccb47aecafdf 644 bar
270 271 354ae8da6e890359ef49ade27b68bbc361f3ca88 644 baz
271 272 9277c9cc8dd4576fc01a17939b4351e5ada93466 644 foo
272 273 88dfeab657e8cf2cef3dec67b914f49791ae76b1 644 quux
273 274 $ splitrepo 'octopus merge' 'foo bar baz'
274 275 % foo bar baz: octopus merge
275 276 @ 8 "Discard change to foo" files: foo
276 277 |\
277 278 | o 7 "change foo" files: foo
278 279 | |
279 280 o | 6 "change bar" files: bar
280 281 |/
281 282 o 5 "(octopus merge fixup)" files:
282 283 |\
283 284 | o 4 "Octopus merge" files: baz
284 285 | |\
285 286 o | | 3 "add baz" files: baz
286 287 | | |
287 288 +---o 2 "add bar" files: bar
288 289 | |
289 290 | o 1 "change foo" files: foo
290 291 |/
291 292 o 0 "add foo" files: foo
292 293
293 294 245a3b8bc653999c2b22cdabd517ccb47aecafdf 644 bar
294 295 354ae8da6e890359ef49ade27b68bbc361f3ca88 644 baz
295 296 9277c9cc8dd4576fc01a17939b4351e5ada93466 644 foo
296 297 $ splitrepo 'only some parents of an octopus merge; "discard" a head' 'foo baz quux'
297 298 % foo baz quux: only some parents of an octopus merge; "discard" a head
298 299 @ 6 "Discard change to foo" files: foo
299 300 |
300 301 o 5 "change foo" files: foo
301 302 |
302 303 o 4 "Octopus merge" files:
303 304 |\
304 305 | o 3 "add baz" files: baz
305 306 | |
306 307 | o 2 "add quux" files: quux
307 308 | |
308 309 o | 1 "change foo" files: foo
309 310 |/
310 311 o 0 "add foo" files: foo
311 312
312 313 354ae8da6e890359ef49ade27b68bbc361f3ca88 644 baz
313 314 9277c9cc8dd4576fc01a17939b4351e5ada93466 644 foo
314 315 88dfeab657e8cf2cef3dec67b914f49791ae76b1 644 quux
315 316
316 317 test importing git renames and copies
317 318
318 319 $ cd git-repo2
319 320 $ git mv foo foo-renamed
320 321 since bar is not touched in this commit, this copy will not be detected
321 322 $ cp bar bar-copied
322 323 $ cp baz baz-copied
323 324 $ cp baz baz-copied2
324 325 $ cp baz ba-copy
325 326 $ echo baz2 >> baz
326 327 $ git add bar-copied baz-copied baz-copied2 ba-copy
327 328 $ commit -a -m 'rename and copy'
328 329 $ cd ..
329 330
330 331 input validation
331 332 $ hg convert --config convert.git.similarity=foo --datesort git-repo2 fullrepo
332 333 abort: convert.git.similarity is not an integer ('foo')
333 334 [255]
334 335 $ hg convert --config convert.git.similarity=-1 --datesort git-repo2 fullrepo
335 336 abort: similarity must be between 0 and 100
336 337 [255]
337 338 $ hg convert --config convert.git.similarity=101 --datesort git-repo2 fullrepo
338 339 abort: similarity must be between 0 and 100
339 340 [255]
340 341
341 342 $ hg -q convert --config convert.git.similarity=100 --datesort git-repo2 fullrepo
342 343 $ hg -R fullrepo status -C --change master
343 344 M baz
344 345 A ba-copy
345 346 baz
346 347 A bar-copied
347 348 A baz-copied
348 349 baz
349 350 A baz-copied2
350 351 baz
351 352 A foo-renamed
352 353 foo
353 354 R foo
354 355
355 356 Ensure that the modification to the copy source was preserved
356 357 (there was a bug where if the copy dest was alphabetically prior to the copy
357 358 source, the copy source took the contents of the copy dest)
358 359 $ hg cat -r tip fullrepo/baz
359 360 baz
360 361 baz2
361 362
362 363 $ cd git-repo2
363 364 $ echo bar2 >> bar
364 365 $ commit -a -m 'change bar'
365 366 $ cp bar bar-copied2
366 367 $ git add bar-copied2
367 368 $ commit -a -m 'copy with no changes'
368 369 $ cd ..
369 370
370 371 $ hg -q convert --config convert.git.similarity=100 \
371 372 > --config convert.git.findcopiesharder=1 --datesort git-repo2 fullrepo
372 373 $ hg -R fullrepo status -C --change master
373 374 A bar-copied2
374 375 bar
375 376
376 377 test binary conversion (issue1359)
377 378
378 379 $ count=19
379 380 $ mkdir git-repo3
380 381 $ cd git-repo3
381 382 $ git init-db >/dev/null 2>/dev/null
382 383 $ $PYTHON -c 'file("b", "wb").write("".join([chr(i) for i in range(256)])*16)'
383 384 $ git add b
384 385 $ commit -a -m addbinary
385 386 $ cd ..
386 387
387 388 convert binary file
388 389
389 390 $ hg convert git-repo3 git-repo3-hg
390 391 initializing destination git-repo3-hg repository
391 392 scanning source...
392 393 sorting...
393 394 converting...
394 395 0 addbinary
395 396 updating bookmarks
396 397 $ cd git-repo3-hg
397 398 $ hg up -C
398 399 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
399 400 $ $PYTHON -c 'print len(file("b", "rb").read())'
400 401 4096
401 402 $ cd ..
402 403
403 404 test author vs committer
404 405
405 406 $ mkdir git-repo4
406 407 $ cd git-repo4
407 408 $ git init-db >/dev/null 2>/dev/null
408 409 $ echo >> foo
409 410 $ git add foo
410 411 $ commit -a -m addfoo
411 412 $ echo >> foo
412 413 $ GIT_AUTHOR_NAME="nottest"
413 414 $ commit -a -m addfoo2
414 415 $ cd ..
415 416
416 417 convert author committer
417 418
418 419 $ hg convert git-repo4 git-repo4-hg
419 420 initializing destination git-repo4-hg repository
420 421 scanning source...
421 422 sorting...
422 423 converting...
423 424 1 addfoo
424 425 0 addfoo2
425 426 updating bookmarks
426 427 $ hg -R git-repo4-hg log -v
427 428 changeset: 1:d63e967f93da
428 429 bookmark: master
429 430 tag: tip
430 431 user: nottest <test@example.org>
431 432 date: Mon Jan 01 00:00:21 2007 +0000
432 433 files: foo
433 434 description:
434 435 addfoo2
435 436
436 437 committer: test <test@example.org>
437 438
438 439
439 440 changeset: 0:0735477b0224
440 441 user: test <test@example.org>
441 442 date: Mon Jan 01 00:00:20 2007 +0000
442 443 files: foo
443 444 description:
444 445 addfoo
445 446
446 447
447 448
448 449 --sourceorder should fail
449 450
450 451 $ hg convert --sourcesort git-repo4 git-repo4-sourcesort-hg
451 452 initializing destination git-repo4-sourcesort-hg repository
452 453 abort: --sourcesort is not supported by this data source
453 454 [255]
454 455
455 456 test converting certain branches
456 457
457 458 $ mkdir git-testrevs
458 459 $ cd git-testrevs
459 460 $ git init
460 461 Initialized empty Git repository in $TESTTMP/git-testrevs/.git/
461 462 $ echo a >> a ; git add a > /dev/null; git commit -m 'first' > /dev/null
462 463 $ echo a >> a ; git add a > /dev/null; git commit -m 'master commit' > /dev/null
463 464 $ git checkout -b goodbranch 'HEAD^'
464 465 Switched to a new branch 'goodbranch'
465 466 $ echo a >> b ; git add b > /dev/null; git commit -m 'good branch commit' > /dev/null
466 467 $ git checkout -b badbranch 'HEAD^'
467 468 Switched to a new branch 'badbranch'
468 469 $ echo a >> c ; git add c > /dev/null; git commit -m 'bad branch commit' > /dev/null
469 470 $ cd ..
470 471 $ hg convert git-testrevs hg-testrevs --rev master --rev goodbranch
471 472 initializing destination hg-testrevs repository
472 473 scanning source...
473 474 sorting...
474 475 converting...
475 476 2 first
476 477 1 good branch commit
477 478 0 master commit
478 479 updating bookmarks
479 480 $ cd hg-testrevs
480 481 $ hg log -G -T '{rev} {bookmarks}'
481 482 o 2 master
482 483 |
483 484 | o 1 goodbranch
484 485 |/
485 486 o 0
486 487
487 488 $ cd ..
488 489
489 490 test sub modules
490 491
491 492 $ mkdir git-repo5
492 493 $ cd git-repo5
493 494 $ git init-db >/dev/null 2>/dev/null
494 495 $ echo 'sub' >> foo
495 496 $ git add foo
496 497 $ commit -a -m 'addfoo'
497 498 $ BASE=`pwd`
498 499 $ cd ..
499 500 $ mkdir git-repo6
500 501 $ cd git-repo6
501 502 $ git init-db >/dev/null 2>/dev/null
502 503 $ git submodule add ${BASE} >/dev/null 2>/dev/null
503 504 $ commit -a -m 'addsubmodule' >/dev/null 2>/dev/null
504 505
505 506 test non-tab whitespace .gitmodules
506 507
507 508 $ cat >> .gitmodules <<EOF
508 509 > [submodule "git-repo5"]
509 510 > path = git-repo5
510 511 > url = git-repo5
511 512 > EOF
512 513 $ git commit -q -a -m "weird white space submodule"
513 514 $ cd ..
514 515 $ hg convert git-repo6 hg-repo6
515 516 initializing destination hg-repo6 repository
516 517 scanning source...
517 518 sorting...
518 519 converting...
519 520 1 addsubmodule
520 521 0 weird white space submodule
521 522 updating bookmarks
522 523
523 524 $ rm -rf hg-repo6
524 525 $ cd git-repo6
525 526 $ git reset --hard 'HEAD^' > /dev/null
526 527
527 528 test missing .gitmodules
528 529
529 530 $ git submodule add ../git-repo4 >/dev/null 2>/dev/null
530 531 $ git checkout HEAD .gitmodules
531 532 $ git rm .gitmodules
532 533 rm '.gitmodules'
533 534 $ git commit -q -m "remove .gitmodules" .gitmodules
534 535 $ git commit -q -m "missing .gitmodules"
535 536 $ cd ..
536 537 $ hg convert git-repo6 hg-repo6 --traceback 2>&1 | grep -v "fatal: Path '.gitmodules' does not exist"
537 538 initializing destination hg-repo6 repository
538 539 scanning source...
539 540 sorting...
540 541 converting...
541 542 2 addsubmodule
542 543 1 remove .gitmodules
543 544 0 missing .gitmodules
544 545 warning: cannot read submodules config file in * (glob)
545 546 updating bookmarks
546 547 $ rm -rf hg-repo6
547 548 $ cd git-repo6
548 549 $ rm -rf git-repo4
549 550 $ git reset --hard 'HEAD^^' > /dev/null
550 551 $ cd ..
551 552
552 553 test invalid splicemap1
553 554
554 555 $ cat > splicemap <<EOF
555 556 > $VALIDID1
556 557 > EOF
557 558 $ hg convert --splicemap splicemap git-repo2 git-repo2-splicemap1-hg
558 559 initializing destination git-repo2-splicemap1-hg repository
559 560 abort: syntax error in splicemap(1): child parent1[,parent2] expected
560 561 [255]
561 562
562 563 test invalid splicemap2
563 564
564 565 $ cat > splicemap <<EOF
565 566 > $VALIDID1 $VALIDID2, $VALIDID2, $VALIDID2
566 567 > EOF
567 568 $ hg convert --splicemap splicemap git-repo2 git-repo2-splicemap2-hg
568 569 initializing destination git-repo2-splicemap2-hg repository
569 570 abort: syntax error in splicemap(1): child parent1[,parent2] expected
570 571 [255]
571 572
572 573 test invalid splicemap3
573 574
574 575 $ cat > splicemap <<EOF
575 576 > $INVALIDID1 $INVALIDID2
576 577 > EOF
577 578 $ hg convert --splicemap splicemap git-repo2 git-repo2-splicemap3-hg
578 579 initializing destination git-repo2-splicemap3-hg repository
579 580 abort: splicemap entry afd12345af is not a valid revision identifier
580 581 [255]
581 582
582 583 convert sub modules
583 584 $ hg convert git-repo6 git-repo6-hg
584 585 initializing destination git-repo6-hg repository
585 586 scanning source...
586 587 sorting...
587 588 converting...
588 589 0 addsubmodule
589 590 updating bookmarks
590 591 $ hg -R git-repo6-hg log -v
591 592 changeset: 0:* (glob)
592 593 bookmark: master
593 594 tag: tip
594 595 user: nottest <test@example.org>
595 596 date: Mon Jan 01 00:00:23 2007 +0000
596 597 files: .hgsub .hgsubstate
597 598 description:
598 599 addsubmodule
599 600
600 601 committer: test <test@example.org>
601 602
602 603
603 604
604 605 $ cd git-repo6-hg
605 606 $ hg up >/dev/null 2>/dev/null
606 607 $ cat .hgsubstate
607 608 * git-repo5 (glob)
608 609 $ cd git-repo5
609 610 $ cat foo
610 611 sub
611 612
612 613 $ cd ../..
613 614
614 615 make sure rename detection doesn't break removing and adding gitmodules
615 616
616 617 $ cd git-repo6
617 618 $ git mv .gitmodules .gitmodules-renamed
618 619 $ commit -a -m 'rename .gitmodules'
619 620 $ git mv .gitmodules-renamed .gitmodules
620 621 $ commit -a -m 'rename .gitmodules back'
621 622 $ cd ..
622 623
623 624 $ hg --config convert.git.similarity=100 convert -q git-repo6 git-repo6-hg
624 625 $ hg -R git-repo6-hg log -r 'tip^' -T "{desc|firstline}\n"
625 626 rename .gitmodules
626 627 $ hg -R git-repo6-hg status -C --change 'tip^'
627 628 A .gitmodules-renamed
628 629 R .hgsub
629 630 R .hgsubstate
630 631 $ hg -R git-repo6-hg log -r tip -T "{desc|firstline}\n"
631 632 rename .gitmodules back
632 633 $ hg -R git-repo6-hg status -C --change tip
633 634 A .hgsub
634 635 A .hgsubstate
635 636 R .gitmodules-renamed
636 637
637 638 convert the revision removing '.gitmodules' itself (and related
638 639 submodules)
639 640
640 641 $ cd git-repo6
641 642 $ git rm .gitmodules
642 643 rm '.gitmodules'
643 644 $ git rm --cached git-repo5
644 645 rm 'git-repo5'
645 646 $ commit -a -m 'remove .gitmodules and submodule git-repo5'
646 647 $ cd ..
647 648
648 649 $ hg convert -q git-repo6 git-repo6-hg
649 650 $ hg -R git-repo6-hg tip -T "{desc|firstline}\n"
650 651 remove .gitmodules and submodule git-repo5
651 652 $ hg -R git-repo6-hg tip -T "{file_dels}\n"
652 653 .hgsub .hgsubstate
653 654
654 655 skip submodules in the conversion
655 656
656 657 $ hg convert -q git-repo6 no-submodules --config convert.git.skipsubmodules=True
657 658 $ hg -R no-submodules manifest --all
658 659 .gitmodules-renamed
659 660
660 661 convert using a different remote prefix
661 662 $ git init git-repo7
662 663 Initialized empty Git repository in $TESTTMP/git-repo7/.git/
663 664 $ cd git-repo7
664 665 TODO: it'd be nice to use (?) lines instead of grep -v to handle the
665 666 git output variance, but that doesn't currently work in the middle of
666 667 a block, so do this for now.
667 668 $ touch a && git add a && git commit -am "commit a" | grep -v changed
668 669 [master (root-commit) 8ae5f69] commit a
669 670 Author: nottest <test@example.org>
670 671 create mode 100644 a
671 672 $ cd ..
672 673 $ git clone git-repo7 git-repo7-client
673 674 Cloning into 'git-repo7-client'...
674 675 done.
675 676 $ hg convert --config convert.git.remoteprefix=origin git-repo7-client hg-repo7
676 677 initializing destination hg-repo7 repository
677 678 scanning source...
678 679 sorting...
679 680 converting...
680 681 0 commit a
681 682 updating bookmarks
682 683 $ hg -R hg-repo7 bookmarks
683 684 master 0:03bf38caa4c6
684 685 origin/master 0:03bf38caa4c6
685 686
686 687 Run convert when the remote branches have changed
687 688 (there was an old bug where the local convert read branches from the server)
688 689
689 690 $ cd git-repo7
690 691 $ echo a >> a
691 692 $ git commit -q -am "move master forward"
692 693 $ cd ..
693 694 $ rm -rf hg-repo7
694 695 $ hg convert --config convert.git.remoteprefix=origin git-repo7-client hg-repo7
695 696 initializing destination hg-repo7 repository
696 697 scanning source...
697 698 sorting...
698 699 converting...
699 700 0 commit a
700 701 updating bookmarks
701 702 $ hg -R hg-repo7 bookmarks
702 703 master 0:03bf38caa4c6
703 704 origin/master 0:03bf38caa4c6
704 705
705 706 damaged git repository tests:
706 707 In case the hard-coded hashes change, the following commands can be used to
707 708 list the hashes and their corresponding types in the repository:
708 709 cd git-repo4/.git/objects
709 710 find . -type f | cut -c 3- | sed 's_/__' | xargs -n 1 -t git cat-file -t
710 711 cd ../../..
711 712
712 713 damage git repository by renaming a commit object
713 714 $ COMMIT_OBJ=1c/0ce3c5886f83a1d78a7b517cdff5cf9ca17bdd
714 715 $ mv git-repo4/.git/objects/$COMMIT_OBJ git-repo4/.git/objects/$COMMIT_OBJ.tmp
715 716 $ hg convert git-repo4 git-repo4-broken-hg 2>&1 | grep 'abort:'
716 717 abort: cannot read tags from git-repo4/.git
717 718 $ mv git-repo4/.git/objects/$COMMIT_OBJ.tmp git-repo4/.git/objects/$COMMIT_OBJ
718 719 damage git repository by renaming a blob object
719 720
720 721 $ BLOB_OBJ=8b/137891791fe96927ad78e64b0aad7bded08bdc
721 722 $ mv git-repo4/.git/objects/$BLOB_OBJ git-repo4/.git/objects/$BLOB_OBJ.tmp
722 723 $ hg convert git-repo4 git-repo4-broken-hg 2>&1 | grep 'abort:'
723 724 abort: cannot read 'blob' object at 8b137891791fe96927ad78e64b0aad7bded08bdc
724 725 $ mv git-repo4/.git/objects/$BLOB_OBJ.tmp git-repo4/.git/objects/$BLOB_OBJ
725 726 damage git repository by renaming a tree object
726 727
727 728 $ TREE_OBJ=72/49f083d2a63a41cc737764a86981eb5f3e4635
728 729 $ mv git-repo4/.git/objects/$TREE_OBJ git-repo4/.git/objects/$TREE_OBJ.tmp
729 730 $ hg convert git-repo4 git-repo4-broken-hg 2>&1 | grep 'abort:'
730 731 abort: cannot read changes in 1c0ce3c5886f83a1d78a7b517cdff5cf9ca17bdd
General Comments 0
You need to be logged in to leave comments. Login now