##// END OF EJS Templates
convert: handle empty intial commits while converting to svn...
convert: handle empty intial commits while converting to svn Svn commit generation code skips empty commits, returning the parent. Skipping the root commit must return None instead. Added test to check skipping of empty commits.

File last commit:

r41765:2c13e91e default
r41765:2c13e91e default
Show More
test-convert-svn-sink.t
511 lines | 9.3 KiB | text/troff | Tads3Lexer
/ tests / test-convert-svn-sink.t
Matt Mackall
tests: replace exit 80 with #require
r22046 #require svn13
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370
$ svnupanddisplay()
> {
> (
> cd $1;
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
r16512 > svn up -q;
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 > svn st -v | sed 's/ */ /g' | sort
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 > limit=''
> if [ $2 -gt 0 ]; then
> limit="--limit=$2"
> fi
Matt Harbison
tests: quote PYTHON usage...
r39743 > svn log --xml -v $limit | "$PYTHON" "$TESTDIR/svnxml.py"
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 > )
> }
Martin Geisler
tests: don't overwrite HGRCPATH...
r13519 $ cat >> $HGRCPATH <<EOF
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 > [extensions]
Mads Kiilerich
check-code: fix check for trailing whitespace on continued lines too...
r17347 > convert =
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
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
tests: drop explicit $TESTDIR from executables...
r25472 $ svn-safe-append.py a a/a
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ hg --cwd a ci -d '1 0' -m 'modify a file'
$ hg --cwd a tip -q
Mads Kiilerich
tests: remove 'hghave symlink' from test-convert-svn-sink.t...
r16909 1:e0e2b8a9156b
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
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
tests: remove (glob) annotations that were only for '\' matches...
r35394 2 1 test d1/d2
2 1 test d1/d2/b
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
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
tests: unify test-convert-svn-*
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
tests: remove 'hghave symlink' from test-convert-svn-sink.t...
r16909 2:eb5169441d43
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
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
tests: remove (glob) annotations that were only for '\' matches...
r35394 3 1 test d1/d2
3 1 test d1/d2/b
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
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
tests: unify test-convert-svn-*
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
tests: remove 'hghave symlink' from test-convert-svn-sink.t...
r16909 3:60effef6ab48
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
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
tests: remove (glob) annotations that were only for '\' matches...
r35394 4 1 test d1/d2
4 1 test d1/d2/b
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
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
tests: unify test-convert-svn-*
r12370 $ ls a a-hg-wc
a:
b
c
d1
a-hg-wc:
b
c
d1
$ hg --cwd a rm b
Mads Kiilerich
tests: cleanup of echo statements left over from test conversion
r15243
Remove
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ hg --cwd a ci -d '4 0' -m 'remove a file'
$ hg --cwd a tip -q
Mads Kiilerich
tests: remove 'hghave symlink' from test-convert-svn-sink.t...
r16909 4:87bbe3013fb6
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
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
tests: remove (glob) annotations that were only for '\' matches...
r35394 5 1 test d1/d2
5 1 test d1/d2/b
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
r16512 5 4 test c
5 5 test .
revision: 5
author: test
msg: remove a file
D /b
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ ls a a-hg-wc
a:
c
d1
a-hg-wc:
c
d1
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 Executable
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #if execbit
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ chmod +x a/c
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #else
$ echo fake >> a/c
#endif
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ hg --cwd a ci -d '5 0' -m 'make a file executable'
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #if execbit
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ hg --cwd a tip -q
Mads Kiilerich
tests: remove 'hghave symlink' from test-convert-svn-sink.t...
r16909 5:ff42e473c340
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #else
$ hg --cwd a tip -q
Mads Kiilerich
tests: remove 'hghave symlink' from test-convert-svn-sink.t...
r16909 5:817a700c8cf1
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #endif
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
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
tests: remove (glob) annotations that were only for '\' matches...
r35394 6 1 test d1/d2
6 1 test d1/d2/b
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
r16512 6 6 test .
6 6 test c
revision: 6
author: test
msg: make a file executable
M /c
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #if execbit
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ test -x a-hg-wc/c
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #endif
Mads Kiilerich
tests: remove 'hghave symlink' from test-convert-svn-sink.t...
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
test-convert-svn-sink: properly isolate symlink section...
r23098 $ hg convert -d svn a a-svnlink
initializing svn repository 'a-svnlink'
initializing svn working copy 'a-svnlink-wc'
Mads Kiilerich
tests: remove 'hghave symlink' from test-convert-svn-sink.t...
r16909 scanning source...
sorting...
converting...
Matt Mackall
test-convert-svn-sink: properly isolate symlink section...
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
tests: remove 'hghave symlink' from test-convert-svn-sink.t...
r16909 1 add symlink
0 move symlink
Matt Mackall
test-convert-svn-sink: properly isolate symlink section...
r23098 $ svnupanddisplay a-svnlink-wc 1
Mads Kiilerich
tests: remove 'hghave symlink' from test-convert-svn-sink.t...
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
test-convert-svn-sink: properly isolate symlink section...
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
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/a/.hg/strip-backup/bd4f7b7a7067-ed505e42-backup.hg
Matt Mackall
test-convert-svn-sink: properly isolate symlink section...
r23098
Mads Kiilerich
tests: remove 'hghave symlink' from test-convert-svn-sink.t...
r16909 #endif
Mads Kiilerich
convert: introduce --full for converting all files...
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
test-convert-svn-sink: properly isolate symlink section...
r23098 7 7 test .
7 7 test d
7 7 test f
revision: 7
Mads Kiilerich
convert: introduce --full for converting all files...
r22300 author: test
msg: f
D /c
A /d
D /d1
A /f
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 $ rm -rf a a-hg a-hg-wc
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370
Mads Kiilerich
tests: remove 'hghave symlink' from test-convert-svn-sink.t...
r16909
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 Executable in new directory
$ hg init a
$ mkdir a/d1
$ echo a > a/d1/a
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #if execbit
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ chmod +x a/d1/a
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #else
$ echo fake >> a/d1/a
#endif
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
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
tests: remove (glob) annotations that were only for '\' matches...
r35394 1 1 test d1/a
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
r16512 revision: 1
author: test
msg: add executable file in new directory
A /d1
A /d1/a
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #if execbit
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ test -x a-hg-wc/d1/a
Mads Kiilerich
tests: convert some 'hghave execbit' to #if...
r16899 #endif
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
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
tests: remove (glob) annotations that were only for '\' matches...
r35394 2 1 test d1/a
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
r16512 2 2 test .
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 2 2 test d2
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 2 2 test d2/a
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
r16512 revision: 2
author: test
msg: copy file to new directory
A /d2
A /d2/a (from /d1/a@1)
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370
Branchy history
$ hg init b
$ echo base > b/b
$ hg --cwd b ci -d '0 0' -Ambase
adding b
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ svn-safe-append.py left-1 b/b
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ echo left-1 > b/left-1
$ hg --cwd b ci -d '1 0' -Amleft-1
adding left-1
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ svn-safe-append.py left-2 b/b
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
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
tests: drop explicit $TESTDIR from executables...
r25472 $ svn-safe-append.py right-1 b/b
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 $ echo right-1 > b/right-1
$ hg --cwd b ci -d '3 0' -Amright-1
adding right-1
created new head
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ svn-safe-append.py right-2 b/b
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
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
simplemerge: move conflict warning message to filemerge...
r26614 warning: conflicts while merging b! (edit, then use 'hg resolve --mark')
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 2 files updated, 0 files merged, 0 files removed, 1 files unresolved
Pulkit Goyal
merge: add `--abort` flag which can abort the merge...
r35722 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 [1]
$ hg --cwd b revert -r 2 b
Mads Kiilerich
tests: convert some 'hghave no-outer-repo' to #if...
r17014 $ hg --cwd b resolve -m b
Pierre-Yves David
resolve: add parenthesis around "no more unresolved files" message...
r21947 (no more unresolved files)
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
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
test-convert-svn-sink: add helper to smooth svn xml output...
r16512 4 2 test left-1
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 4 3 test b
4 3 test left-2
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
r16512 4 4 test .
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 4 4 test right-1
4 4 test right-2
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
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
tests: unify test-convert-svn-*
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
test-convert-svn-sink: add helper to smooth svn xml output...
r16512 2 1 test a
Dan Villiom Podlaski Christiansen
tests: unify test-convert-svn-*
r12370 2 2 test .
2 2 test .hgtags
Patrick Mezard
test-convert-svn-sink: add helper to smooth svn xml output...
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
tests: unify test-convert-svn-*
r12370 $ rm -rf a a-hg a-hg-wc
Nikita Slyusarev
convert: handle empty intial commits while converting to svn...
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