test-convert-svn-sink.t
550 lines
| 10.0 KiB
| text/troff
|
Tads3Lexer
/ tests / test-convert-svn-sink.t
Matt Mackall
|
r22046 | #require svn13 | ||
Dan Villiom Podlaski Christiansen
|
r12370 | |||
$ svnupanddisplay() | ||||
> { | ||||
> ( | ||||
> cd $1; | ||||
Patrick Mezard
|
r16512 | > svn up -q; | ||
Mads Kiilerich
|
r17033 | > svn st -v | sed 's/ */ /g' | sort | ||
Dan Villiom Podlaski Christiansen
|
r12370 | > limit='' | ||
> if [ $2 -gt 0 ]; then | ||||
> limit="--limit=$2" | ||||
> fi | ||||
Matt Harbison
|
r39743 | > svn log --xml -v $limit | "$PYTHON" "$TESTDIR/svnxml.py" | ||
Dan Villiom Podlaski Christiansen
|
r12370 | > ) | ||
> } | ||||
Martin Geisler
|
r13519 | $ cat >> $HGRCPATH <<EOF | ||
Dan Villiom Podlaski Christiansen
|
r12370 | > [extensions] | ||
Mads Kiilerich
|
r17347 | > convert = | ||
Dan Villiom Podlaski Christiansen
|
r12370 | > EOF | ||
$ hg init a | ||||
Add | ||||
$ echo a > a/a | ||||
$ mkdir -p a/d1/d2 | ||||
$ echo b > a/d1/d2/b | ||||
$ hg --cwd a ci -d '0 0' -A -m 'add a file' | ||||
adding a | ||||
adding d1/d2/b | ||||
Modify | ||||
Matt Mackall
|
r25472 | $ svn-safe-append.py a a/a | ||
Dan Villiom Podlaski Christiansen
|
r12370 | $ hg --cwd a ci -d '1 0' -m 'modify a file' | ||
$ hg --cwd a tip -q | ||||
Mads Kiilerich
|
r16909 | 1:e0e2b8a9156b | ||
Dan Villiom Podlaski Christiansen
|
r12370 | |||
$ hg convert -d svn a | ||||
assuming destination a-hg | ||||
initializing svn repository 'a-hg' | ||||
initializing svn working copy 'a-hg-wc' | ||||
scanning source... | ||||
sorting... | ||||
converting... | ||||
1 add a file | ||||
0 modify a file | ||||
$ svnupanddisplay a-hg-wc 2 | ||||
2 1 test d1 | ||||
Matt Harbison
|
r35394 | 2 1 test d1/d2 | ||
2 1 test d1/d2/b | ||||
Patrick Mezard
|
r16512 | 2 2 test . | ||
2 2 test a | ||||
revision: 2 | ||||
author: test | ||||
msg: modify a file | ||||
M /a | ||||
revision: 1 | ||||
author: test | ||||
msg: add a file | ||||
A /a | ||||
A /d1 | ||||
A /d1/d2 | ||||
A /d1/d2/b | ||||
Dan Villiom Podlaski Christiansen
|
r12370 | $ ls a a-hg-wc | ||
a: | ||||
a | ||||
d1 | ||||
a-hg-wc: | ||||
a | ||||
d1 | ||||
$ cmp a/a a-hg-wc/a | ||||
Rename | ||||
$ hg --cwd a mv a b | ||||
$ hg --cwd a ci -d '2 0' -m 'rename a file' | ||||
$ hg --cwd a tip -q | ||||
Mads Kiilerich
|
r16909 | 2:eb5169441d43 | ||
Dan Villiom Podlaski Christiansen
|
r12370 | |||
$ hg convert -d svn a | ||||
assuming destination a-hg | ||||
initializing svn working copy 'a-hg-wc' | ||||
scanning source... | ||||
sorting... | ||||
converting... | ||||
0 rename a file | ||||
$ svnupanddisplay a-hg-wc 1 | ||||
3 1 test d1 | ||||
Matt Harbison
|
r35394 | 3 1 test d1/d2 | ||
3 1 test d1/d2/b | ||||
Patrick Mezard
|
r16512 | 3 3 test . | ||
3 3 test b | ||||
revision: 3 | ||||
author: test | ||||
msg: rename a file | ||||
D /a | ||||
A /b (from /a@2) | ||||
Dan Villiom Podlaski Christiansen
|
r12370 | $ ls a a-hg-wc | ||
a: | ||||
b | ||||
d1 | ||||
a-hg-wc: | ||||
b | ||||
d1 | ||||
Copy | ||||
$ hg --cwd a cp b c | ||||
$ hg --cwd a ci -d '3 0' -m 'copy a file' | ||||
$ hg --cwd a tip -q | ||||
Mads Kiilerich
|
r16909 | 3:60effef6ab48 | ||
Dan Villiom Podlaski Christiansen
|
r12370 | |||
$ hg convert -d svn a | ||||
assuming destination a-hg | ||||
initializing svn working copy 'a-hg-wc' | ||||
scanning source... | ||||
sorting... | ||||
converting... | ||||
0 copy a file | ||||
$ svnupanddisplay a-hg-wc 1 | ||||
4 1 test d1 | ||||
Matt Harbison
|
r35394 | 4 1 test d1/d2 | ||
4 1 test d1/d2/b | ||||
Patrick Mezard
|
r16512 | 4 3 test b | ||
4 4 test . | ||||
4 4 test c | ||||
revision: 4 | ||||
author: test | ||||
msg: copy a file | ||||
A /c (from /b@3) | ||||
Dan Villiom Podlaski Christiansen
|
r12370 | $ ls a a-hg-wc | ||
a: | ||||
b | ||||
c | ||||
d1 | ||||
a-hg-wc: | ||||
b | ||||
c | ||||
d1 | ||||
$ hg --cwd a rm b | ||||
Mads Kiilerich
|
r15243 | |||
Remove | ||||
Dan Villiom Podlaski Christiansen
|
r12370 | $ hg --cwd a ci -d '4 0' -m 'remove a file' | ||
$ hg --cwd a tip -q | ||||
Mads Kiilerich
|
r16909 | 4:87bbe3013fb6 | ||
Dan Villiom Podlaski Christiansen
|
r12370 | |||
$ hg convert -d svn a | ||||
assuming destination a-hg | ||||
initializing svn working copy 'a-hg-wc' | ||||
scanning source... | ||||
sorting... | ||||
converting... | ||||
0 remove a file | ||||
$ svnupanddisplay a-hg-wc 1 | ||||
5 1 test d1 | ||||
Matt Harbison
|
r35394 | 5 1 test d1/d2 | ||
5 1 test d1/d2/b | ||||
Patrick Mezard
|
r16512 | 5 4 test c | ||
5 5 test . | ||||
revision: 5 | ||||
author: test | ||||
msg: remove a file | ||||
D /b | ||||
Dan Villiom Podlaski Christiansen
|
r12370 | $ ls a a-hg-wc | ||
a: | ||||
c | ||||
d1 | ||||
a-hg-wc: | ||||
c | ||||
d1 | ||||
Mads Kiilerich
|
r16899 | Executable | ||
Dan Villiom Podlaski Christiansen
|
r12370 | |||
Mads Kiilerich
|
r16899 | #if execbit | ||
Dan Villiom Podlaski Christiansen
|
r12370 | $ chmod +x a/c | ||
Mads Kiilerich
|
r16899 | #else | ||
$ echo fake >> a/c | ||||
#endif | ||||
Dan Villiom Podlaski Christiansen
|
r12370 | $ hg --cwd a ci -d '5 0' -m 'make a file executable' | ||
Mads Kiilerich
|
r16899 | #if execbit | ||
Dan Villiom Podlaski Christiansen
|
r12370 | $ hg --cwd a tip -q | ||
Mads Kiilerich
|
r16909 | 5:ff42e473c340 | ||
Mads Kiilerich
|
r16899 | #else | ||
$ hg --cwd a tip -q | ||||
Mads Kiilerich
|
r16909 | 5:817a700c8cf1 | ||
Mads Kiilerich
|
r16899 | #endif | ||
Dan Villiom Podlaski Christiansen
|
r12370 | |||
$ hg convert -d svn a | ||||
assuming destination a-hg | ||||
initializing svn working copy 'a-hg-wc' | ||||
scanning source... | ||||
sorting... | ||||
converting... | ||||
0 make a file executable | ||||
$ svnupanddisplay a-hg-wc 1 | ||||
6 1 test d1 | ||||
Matt Harbison
|
r35394 | 6 1 test d1/d2 | ||
6 1 test d1/d2/b | ||||
Patrick Mezard
|
r16512 | 6 6 test . | ||
6 6 test c | ||||
revision: 6 | ||||
author: test | ||||
msg: make a file executable | ||||
M /c | ||||
Mads Kiilerich
|
r16899 | #if execbit | ||
Dan Villiom Podlaski Christiansen
|
r12370 | $ test -x a-hg-wc/c | ||
Mads Kiilerich
|
r16899 | #endif | ||
Mads Kiilerich
|
r16909 | |||
#if symlink | ||||
Symlinks | ||||
$ ln -s a/missing a/link | ||||
$ hg --cwd a commit -Am 'add symlink' | ||||
adding link | ||||
$ hg --cwd a mv link newlink | ||||
$ hg --cwd a commit -m 'move symlink' | ||||
Matt Mackall
|
r23098 | $ hg convert -d svn a a-svnlink | ||
initializing svn repository 'a-svnlink' | ||||
initializing svn working copy 'a-svnlink-wc' | ||||
Mads Kiilerich
|
r16909 | scanning source... | ||
sorting... | ||||
converting... | ||||
Matt Mackall
|
r23098 | 7 add a file | ||
6 modify a file | ||||
5 rename a file | ||||
4 copy a file | ||||
3 remove a file | ||||
2 make a file executable | ||||
Mads Kiilerich
|
r16909 | 1 add symlink | ||
0 move symlink | ||||
Matt Mackall
|
r23098 | $ svnupanddisplay a-svnlink-wc 1 | ||
Mads Kiilerich
|
r16909 | 8 1 test d1 | ||
8 1 test d1/d2 | ||||
8 1 test d1/d2/b | ||||
8 6 test c | ||||
8 8 test . | ||||
8 8 test newlink | ||||
revision: 8 | ||||
author: test | ||||
msg: move symlink | ||||
D /link | ||||
A /newlink (from /link@7) | ||||
Matt Mackall
|
r23098 | Make sure our changes don't affect the rest of the test cases | ||
$ hg --cwd a up 5 | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
$ hg --cwd a --config extensions.strip= strip -r 6 | ||||
Matt Harbison
|
r35394 | saved backup bundle to $TESTTMP/a/.hg/strip-backup/bd4f7b7a7067-ed505e42-backup.hg | ||
Matt Mackall
|
r23098 | |||
Mads Kiilerich
|
r16909 | #endif | ||
Mads Kiilerich
|
r22300 | Convert with --full adds and removes files that didn't change | ||
$ touch a/f | ||||
$ hg -R a ci -Aqmf | ||||
$ echo "rename c d" > filemap | ||||
$ hg convert -d svn a --filemap filemap --full | ||||
assuming destination a-hg | ||||
initializing svn working copy 'a-hg-wc' | ||||
scanning source... | ||||
sorting... | ||||
converting... | ||||
0 f | ||||
$ svnupanddisplay a-hg-wc 1 | ||||
Matt Mackall
|
r23098 | 7 7 test . | ||
7 7 test d | ||||
7 7 test f | ||||
revision: 7 | ||||
Mads Kiilerich
|
r22300 | author: test | ||
msg: f | ||||
D /c | ||||
A /d | ||||
D /d1 | ||||
A /f | ||||
Mads Kiilerich
|
r16899 | $ rm -rf a a-hg a-hg-wc | ||
Dan Villiom Podlaski Christiansen
|
r12370 | |||
Mads Kiilerich
|
r16909 | |||
Dan Villiom Podlaski Christiansen
|
r12370 | Executable in new directory | ||
$ hg init a | ||||
$ mkdir a/d1 | ||||
$ echo a > a/d1/a | ||||
Mads Kiilerich
|
r16899 | #if execbit | ||
Dan Villiom Podlaski Christiansen
|
r12370 | $ chmod +x a/d1/a | ||
Mads Kiilerich
|
r16899 | #else | ||
$ echo fake >> a/d1/a | ||||
#endif | ||||
Dan Villiom Podlaski Christiansen
|
r12370 | $ hg --cwd a ci -d '0 0' -A -m 'add executable file in new directory' | ||
adding d1/a | ||||
$ hg convert -d svn a | ||||
assuming destination a-hg | ||||
initializing svn repository 'a-hg' | ||||
initializing svn working copy 'a-hg-wc' | ||||
scanning source... | ||||
sorting... | ||||
converting... | ||||
0 add executable file in new directory | ||||
$ svnupanddisplay a-hg-wc 1 | ||||
1 1 test . | ||||
1 1 test d1 | ||||
Matt Harbison
|
r35394 | 1 1 test d1/a | ||
Patrick Mezard
|
r16512 | revision: 1 | ||
author: test | ||||
msg: add executable file in new directory | ||||
A /d1 | ||||
A /d1/a | ||||
Mads Kiilerich
|
r16899 | #if execbit | ||
Dan Villiom Podlaski Christiansen
|
r12370 | $ test -x a-hg-wc/d1/a | ||
Mads Kiilerich
|
r16899 | #endif | ||
Dan Villiom Podlaski Christiansen
|
r12370 | |||
Copy to new directory | ||||
$ mkdir a/d2 | ||||
$ hg --cwd a cp d1/a d2/a | ||||
$ hg --cwd a ci -d '1 0' -A -m 'copy file to new directory' | ||||
$ hg convert -d svn a | ||||
assuming destination a-hg | ||||
initializing svn working copy 'a-hg-wc' | ||||
scanning source... | ||||
sorting... | ||||
converting... | ||||
0 copy file to new directory | ||||
$ svnupanddisplay a-hg-wc 1 | ||||
2 1 test d1 | ||||
Matt Harbison
|
r35394 | 2 1 test d1/a | ||
Patrick Mezard
|
r16512 | 2 2 test . | ||
Dan Villiom Podlaski Christiansen
|
r12370 | 2 2 test d2 | ||
Matt Harbison
|
r35394 | 2 2 test d2/a | ||
Patrick Mezard
|
r16512 | revision: 2 | ||
author: test | ||||
msg: copy file to new directory | ||||
A /d2 | ||||
A /d2/a (from /d1/a@1) | ||||
Dan Villiom Podlaski Christiansen
|
r12370 | |||
Branchy history | ||||
$ hg init b | ||||
$ echo base > b/b | ||||
$ hg --cwd b ci -d '0 0' -Ambase | ||||
adding b | ||||
Matt Mackall
|
r25472 | $ svn-safe-append.py left-1 b/b | ||
Dan Villiom Podlaski Christiansen
|
r12370 | $ echo left-1 > b/left-1 | ||
$ hg --cwd b ci -d '1 0' -Amleft-1 | ||||
adding left-1 | ||||
Matt Mackall
|
r25472 | $ svn-safe-append.py left-2 b/b | ||
Dan Villiom Podlaski Christiansen
|
r12370 | $ echo left-2 > b/left-2 | ||
$ hg --cwd b ci -d '2 0' -Amleft-2 | ||||
adding left-2 | ||||
$ hg --cwd b up 0 | ||||
1 files updated, 0 files merged, 2 files removed, 0 files unresolved | ||||
Matt Mackall
|
r25472 | $ svn-safe-append.py right-1 b/b | ||
Dan Villiom Podlaski Christiansen
|
r12370 | $ echo right-1 > b/right-1 | ||
$ hg --cwd b ci -d '3 0' -Amright-1 | ||||
adding right-1 | ||||
created new head | ||||
Matt Mackall
|
r25472 | $ svn-safe-append.py right-2 b/b | ||
Dan Villiom Podlaski Christiansen
|
r12370 | $ echo right-2 > b/right-2 | ||
$ hg --cwd b ci -d '4 0' -Amright-2 | ||||
adding right-2 | ||||
$ hg --cwd b up -C 2 | ||||
3 files updated, 0 files merged, 2 files removed, 0 files unresolved | ||||
$ hg --cwd b merge | ||||
merging b | ||||
Siddharth Agarwal
|
r26614 | warning: conflicts while merging b! (edit, then use 'hg resolve --mark') | ||
Dan Villiom Podlaski Christiansen
|
r12370 | 2 files updated, 0 files merged, 0 files removed, 1 files unresolved | ||
Pulkit Goyal
|
r35722 | use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon | ||
Dan Villiom Podlaski Christiansen
|
r12370 | [1] | ||
$ hg --cwd b revert -r 2 b | ||||
Mads Kiilerich
|
r17014 | $ hg --cwd b resolve -m b | ||
Pierre-Yves David
|
r21947 | (no more unresolved files) | ||
Dan Villiom Podlaski Christiansen
|
r12370 | $ hg --cwd b ci -d '5 0' -m 'merge' | ||
Expect 4 changes | ||||
$ hg convert -d svn b | ||||
assuming destination b-hg | ||||
initializing svn repository 'b-hg' | ||||
initializing svn working copy 'b-hg-wc' | ||||
scanning source... | ||||
sorting... | ||||
converting... | ||||
5 base | ||||
4 left-1 | ||||
3 left-2 | ||||
2 right-1 | ||||
1 right-2 | ||||
0 merge | ||||
$ svnupanddisplay b-hg-wc 0 | ||||
Patrick Mezard
|
r16512 | 4 2 test left-1 | ||
Dan Villiom Podlaski Christiansen
|
r12370 | 4 3 test b | ||
4 3 test left-2 | ||||
Patrick Mezard
|
r16512 | 4 4 test . | ||
Dan Villiom Podlaski Christiansen
|
r12370 | 4 4 test right-1 | ||
4 4 test right-2 | ||||
Patrick Mezard
|
r16512 | revision: 4 | ||
author: test | ||||
msg: merge | ||||
A /right-1 | ||||
A /right-2 | ||||
revision: 3 | ||||
author: test | ||||
msg: left-2 | ||||
M /b | ||||
A /left-2 | ||||
revision: 2 | ||||
author: test | ||||
msg: left-1 | ||||
M /b | ||||
A /left-1 | ||||
revision: 1 | ||||
author: test | ||||
msg: base | ||||
A /b | ||||
Dan Villiom Podlaski Christiansen
|
r12370 | |||
Tags are not supported, but must not break conversion | ||||
$ rm -rf a a-hg a-hg-wc | ||||
$ hg init a | ||||
$ echo a > a/a | ||||
$ hg --cwd a ci -d '0 0' -A -m 'Add file a' | ||||
adding a | ||||
$ hg --cwd a tag -d '1 0' -m 'Tagged as v1.0' v1.0 | ||||
$ hg convert -d svn a | ||||
assuming destination a-hg | ||||
initializing svn repository 'a-hg' | ||||
initializing svn working copy 'a-hg-wc' | ||||
scanning source... | ||||
sorting... | ||||
converting... | ||||
1 Add file a | ||||
0 Tagged as v1.0 | ||||
writing Subversion tags is not yet implemented | ||||
$ svnupanddisplay a-hg-wc 2 | ||||
Patrick Mezard
|
r16512 | 2 1 test a | ||
Dan Villiom Podlaski Christiansen
|
r12370 | 2 2 test . | ||
2 2 test .hgtags | ||||
Patrick Mezard
|
r16512 | revision: 2 | ||
author: test | ||||
msg: Tagged as v1.0 | ||||
A /.hgtags | ||||
revision: 1 | ||||
author: test | ||||
msg: Add file a | ||||
A /a | ||||
Dan Villiom Podlaski Christiansen
|
r12370 | $ rm -rf a a-hg a-hg-wc | ||
Nikita Slyusarev
|
r41765 | |||
Nikita Slyusarev
|
r41766 | #if execbit | ||
Executable bit removal | ||||
$ hg init a | ||||
$ echo a > a/exec | ||||
$ chmod +x a/exec | ||||
$ hg --cwd a ci -d '1 0' -A -m 'create executable' | ||||
adding exec | ||||
$ chmod -x a/exec | ||||
$ hg --cwd a ci -d '2 0' -A -m 'remove executable bit' | ||||
$ hg convert -d svn a | ||||
assuming destination a-hg | ||||
initializing svn repository 'a-hg' | ||||
initializing svn working copy 'a-hg-wc' | ||||
scanning source... | ||||
sorting... | ||||
converting... | ||||
1 create executable | ||||
0 remove executable bit | ||||
$ svnupanddisplay a-hg-wc 0 | ||||
2 2 test . | ||||
2 2 test exec | ||||
revision: 2 | ||||
author: test | ||||
msg: remove executable bit | ||||
M /exec | ||||
revision: 1 | ||||
author: test | ||||
msg: create executable | ||||
A /exec | ||||
$ test ! -x a-hg-wc/exec | ||||
$ rm -rf a a-hg a-hg-wc | ||||
#endif | ||||
Nikita Slyusarev
|
r41765 | Skipping empty commits | ||
$ hg init a | ||||
$ hg --cwd a --config ui.allowemptycommit=True ci -d '1 0' -m 'Initial empty commit' | ||||
$ echo a > a/a | ||||
$ hg --cwd a ci -d '0 0' -A -m 'Some change' | ||||
adding a | ||||
$ hg --cwd a --config ui.allowemptycommit=True ci -d '2 0' -m 'Empty commit 1' | ||||
$ hg --cwd a --config ui.allowemptycommit=True ci -d '3 0' -m 'Empty commit 2' | ||||
$ echo b > a/b | ||||
$ hg --cwd a ci -d '0 0' -A -m 'Another change' | ||||
adding b | ||||
$ hg convert -d svn a | ||||
assuming destination a-hg | ||||
initializing svn repository 'a-hg' | ||||
initializing svn working copy 'a-hg-wc' | ||||
scanning source... | ||||
sorting... | ||||
converting... | ||||
4 Initial empty commit | ||||
3 Some change | ||||
2 Empty commit 1 | ||||
1 Empty commit 2 | ||||
0 Another change | ||||
$ svnupanddisplay a-hg-wc 0 | ||||
2 1 test a | ||||
2 2 test . | ||||
2 2 test b | ||||
revision: 2 | ||||
author: test | ||||
msg: Another change | ||||
A /b | ||||
revision: 1 | ||||
author: test | ||||
msg: Some change | ||||
A /a | ||||
$ rm -rf a a-hg a-hg-wc | ||||