summaryrefslogtreecommitdiff
path: root/tests/test-convert-svn-sink.t
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-convert-svn-sink.t')
-rw-r--r--tests/test-convert-svn-sink.t428
1 files changed, 272 insertions, 156 deletions
diff --git a/tests/test-convert-svn-sink.t b/tests/test-convert-svn-sink.t
index ab39f7f..7aa8ebb 100644
--- a/tests/test-convert-svn-sink.t
+++ b/tests/test-convert-svn-sink.t
@@ -1,16 +1,24 @@
- $ "$TESTDIR/hghave" svn13 || exit 80
+ $ "$TESTDIR/hghave" svn no-outer-repo || exit 80
+
+ $ fixpath()
+ > {
+ > tr '\\' /
+ > }
$ svnupanddisplay()
> {
> (
> cd $1;
- > svn up -q;
- > svn st -v | sed 's/ */ /g' | sort
+ > svn up;
+ > svn st -v | fixpath | sed 's/ */ /g'
> limit=''
> if [ $2 -gt 0 ]; then
> limit="--limit=$2"
> fi
- > svn log --xml -v $limit | python "$TESTDIR/svnxml.py"
+ > svn log --xml -v $limit \
+ > | fixpath \
+ > | sed 's,<date>.*,<date/>,' \
+ > | grep -v 'kind="'
> )
> }
@@ -27,16 +35,18 @@ Add
$ echo a > a/a
$ mkdir -p a/d1/d2
$ echo b > a/d1/d2/b
+ $ ln -s a/missing a/link
$ hg --cwd a ci -d '0 0' -A -m 'add a file'
adding a
adding d1/d2/b
+ adding link
Modify
$ "$TESTDIR/svn-safe-append.py" a a/a
$ hg --cwd a ci -d '1 0' -m 'modify a file'
$ hg --cwd a tip -q
- 1:e0e2b8a9156b
+ 1:8231f652da37
$ hg convert -d svn a
assuming destination a-hg
@@ -48,38 +58,64 @@ Modify
1 add a file
0 modify a file
$ svnupanddisplay a-hg-wc 2
- 2 1 test d1
- 2 1 test d1/d2 (glob)
- 2 1 test d1/d2/b (glob)
+ At revision 2.
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
+ 2 1 test d1
+ 2 1 test d1/d2
+ 2 1 test d1/d2/b
+ 2 1 test link
+ <?xml version="1.0"?>
+ <log>
+ <logentry
+ revision="2">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="M">/a</path>
+ </paths>
+ <msg>modify a file</msg>
+ </logentry>
+ <logentry
+ revision="1">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="A">/a</path>
+ <path
+ action="A">/d1</path>
+ <path
+ action="A">/d1/d2</path>
+ <path
+ action="A">/d1/d2/b</path>
+ <path
+ action="A">/link</path>
+ </paths>
+ <msg>add a file</msg>
+ </logentry>
+ </log>
$ ls a a-hg-wc
a:
a
d1
+ link
a-hg-wc:
a
d1
+ link
$ cmp a/a a-hg-wc/a
Rename
$ hg --cwd a mv a b
+ $ hg --cwd a mv link newlink
+
$ hg --cwd a ci -d '2 0' -m 'rename a file'
$ hg --cwd a tip -q
- 2:eb5169441d43
+ 2:a67e26ccec09
$ hg convert -d svn a
assuming destination a-hg
@@ -89,24 +125,46 @@ Rename
converting...
0 rename a file
$ svnupanddisplay a-hg-wc 1
- 3 1 test d1
- 3 1 test d1/d2 (glob)
- 3 1 test d1/d2/b (glob)
+ At revision 3.
3 3 test .
3 3 test b
- revision: 3
- author: test
- msg: rename a file
- D /a
- A /b (from /a@2)
+ 3 1 test d1
+ 3 1 test d1/d2
+ 3 1 test d1/d2/b
+ 3 3 test newlink
+ <?xml version="1.0"?>
+ <log>
+ <logentry
+ revision="3">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="D">/a</path>
+ <path
+ copyfrom-path="/a"
+ copyfrom-rev="2"
+ action="A">/b</path>
+ <path
+ copyfrom-path="/link"
+ copyfrom-rev="2"
+ action="A">/newlink</path>
+ <path
+ action="D">/link</path>
+ </paths>
+ <msg>rename a file</msg>
+ </logentry>
+ </log>
$ ls a a-hg-wc
a:
b
d1
+ newlink
a-hg-wc:
b
d1
+ newlink
Copy
@@ -114,7 +172,7 @@ Copy
$ hg --cwd a ci -d '3 0' -m 'copy a file'
$ hg --cwd a tip -q
- 3:60effef6ab48
+ 3:0cf087b9ab02
$ hg convert -d svn a
assuming destination a-hg
@@ -124,34 +182,48 @@ Copy
converting...
0 copy a file
$ svnupanddisplay a-hg-wc 1
- 4 1 test d1
- 4 1 test d1/d2 (glob)
- 4 1 test d1/d2/b (glob)
- 4 3 test b
+ At revision 4.
4 4 test .
+ 4 3 test b
4 4 test c
- revision: 4
- author: test
- msg: copy a file
- A /c (from /b@3)
+ 4 1 test d1
+ 4 1 test d1/d2
+ 4 1 test d1/d2/b
+ 4 3 test newlink
+ <?xml version="1.0"?>
+ <log>
+ <logentry
+ revision="4">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ copyfrom-path="/b"
+ copyfrom-rev="3"
+ action="A">/c</path>
+ </paths>
+ <msg>copy a file</msg>
+ </logentry>
+ </log>
$ ls a a-hg-wc
a:
b
c
d1
+ newlink
a-hg-wc:
b
c
d1
+ newlink
$ hg --cwd a rm b
-
-Remove
-
+ $ echo % remove
+ % remove
$ hg --cwd a ci -d '4 0' -m 'remove a file'
$ hg --cwd a tip -q
- 4:87bbe3013fb6
+ 4:07b2e34a5b17
$ hg convert -d svn a
assuming destination a-hg
@@ -161,39 +233,43 @@ Remove
converting...
0 remove a file
$ svnupanddisplay a-hg-wc 1
- 5 1 test d1
- 5 1 test d1/d2 (glob)
- 5 1 test d1/d2/b (glob)
- 5 4 test c
+ At revision 5.
5 5 test .
- revision: 5
- author: test
- msg: remove a file
- D /b
+ 5 4 test c
+ 5 1 test d1
+ 5 1 test d1/d2
+ 5 1 test d1/d2/b
+ 5 3 test newlink
+ <?xml version="1.0"?>
+ <log>
+ <logentry
+ revision="5">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="D">/b</path>
+ </paths>
+ <msg>remove a file</msg>
+ </logentry>
+ </log>
$ ls a a-hg-wc
a:
c
d1
+ newlink
a-hg-wc:
c
d1
+ newlink
-Executable
+Exectutable
-#if execbit
$ chmod +x a/c
-#else
- $ echo fake >> a/c
-#endif
$ hg --cwd a ci -d '5 0' -m 'make a file executable'
-#if execbit
- $ hg --cwd a tip -q
- 5:ff42e473c340
-#else
$ hg --cwd a tip -q
- 5:817a700c8cf1
-#endif
+ 5:31093672760b
$ hg convert -d svn a
assuming destination a-hg
@@ -203,65 +279,36 @@ Executable
converting...
0 make a file executable
$ svnupanddisplay a-hg-wc 1
- 6 1 test d1
- 6 1 test d1/d2 (glob)
- 6 1 test d1/d2/b (glob)
+ At revision 6.
6 6 test .
6 6 test c
- revision: 6
- author: test
- msg: make a file executable
- M /c
-#if execbit
+ 6 1 test d1
+ 6 1 test d1/d2
+ 6 1 test d1/d2/b
+ 6 3 test newlink
+ <?xml version="1.0"?>
+ <log>
+ <logentry
+ revision="6">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="M">/c</path>
+ </paths>
+ <msg>make a file executable</msg>
+ </logentry>
+ </log>
$ test -x a-hg-wc/c
-#endif
-
-#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'
- $ hg convert -d svn a
- assuming destination a-hg
- initializing svn working copy 'a-hg-wc'
- scanning source...
- sorting...
- converting...
- 1 add symlink
- 0 move symlink
- $ svnupanddisplay a-hg-wc 1
- 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)
-
-#endif
-
- $ rm -rf a a-hg a-hg-wc
-
Executable in new directory
+ $ rm -rf a a-hg a-hg-wc
$ hg init a
$ mkdir a/d1
$ echo a > a/d1/a
-#if execbit
$ chmod +x a/d1/a
-#else
- $ echo fake >> a/d1/a
-#endif
$ hg --cwd a ci -d '0 0' -A -m 'add executable file in new directory'
adding d1/a
@@ -274,17 +321,26 @@ Executable in new directory
converting...
0 add executable file in new directory
$ svnupanddisplay a-hg-wc 1
+ At revision 1.
1 1 test .
1 1 test d1
- 1 1 test d1/a (glob)
- revision: 1
- author: test
- msg: add executable file in new directory
- A /d1
- A /d1/a
-#if execbit
+ 1 1 test d1/a
+ <?xml version="1.0"?>
+ <log>
+ <logentry
+ revision="1">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="A">/d1</path>
+ <path
+ action="A">/d1/a</path>
+ </paths>
+ <msg>add executable file in new directory</msg>
+ </logentry>
+ </log>
$ test -x a-hg-wc/d1/a
-#endif
Copy to new directory
@@ -300,16 +356,29 @@ Copy to new directory
converting...
0 copy file to new directory
$ svnupanddisplay a-hg-wc 1
- 2 1 test d1
- 2 1 test d1/a (glob)
+ At revision 2.
2 2 test .
+ 2 1 test d1
+ 2 1 test d1/a
2 2 test d2
- 2 2 test d2/a (glob)
- revision: 2
- author: test
- msg: copy file to new directory
- A /d2
- A /d2/a (from /d1/a@1)
+ 2 2 test d2/a
+ <?xml version="1.0"?>
+ <log>
+ <logentry
+ revision="2">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="A">/d2</path>
+ <path
+ copyfrom-path="/d1/a"
+ copyfrom-rev="1"
+ action="A">/d2/a</path>
+ </paths>
+ <msg>copy file to new directory</msg>
+ </logentry>
+ </log>
Branchy history
@@ -347,12 +416,12 @@ Branchy history
$ hg --cwd b merge
merging b
warning: conflicts during merge.
- merging b incomplete! (edit conflicts, then use 'hg resolve --mark')
+ merging b failed!
2 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
[1]
$ hg --cwd b revert -r 2 b
- $ hg --cwd b resolve -m b
+ $ hg resolve -m b
$ hg --cwd b ci -d '5 0' -m 'merge'
Expect 4 changes
@@ -372,31 +441,62 @@ Expect 4 changes
0 merge
$ svnupanddisplay b-hg-wc 0
- 4 2 test left-1
+ At revision 4.
+ 4 4 test .
4 3 test b
+ 4 2 test left-1
4 3 test left-2
- 4 4 test .
4 4 test right-1
4 4 test right-2
- 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
+ <?xml version="1.0"?>
+ <log>
+ <logentry
+ revision="4">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="A">/right-1</path>
+ <path
+ action="A">/right-2</path>
+ </paths>
+ <msg>merge</msg>
+ </logentry>
+ <logentry
+ revision="3">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="M">/b</path>
+ <path
+ action="A">/left-2</path>
+ </paths>
+ <msg>left-2</msg>
+ </logentry>
+ <logentry
+ revision="2">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="M">/b</path>
+ <path
+ action="A">/left-1</path>
+ </paths>
+ <msg>left-1</msg>
+ </logentry>
+ <logentry
+ revision="1">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="A">/b</path>
+ </paths>
+ <msg>base</msg>
+ </logentry>
+ </log>
Tags are not supported, but must not break conversion
@@ -418,15 +518,31 @@ Tags are not supported, but must not break conversion
0 Tagged as v1.0
writing Subversion tags is not yet implemented
$ svnupanddisplay a-hg-wc 2
- 2 1 test a
+ At revision 2.
2 2 test .
+ 2 1 test a
2 2 test .hgtags
- revision: 2
- author: test
- msg: Tagged as v1.0
- A /.hgtags
- revision: 1
- author: test
- msg: Add file a
- A /a
+ <?xml version="1.0"?>
+ <log>
+ <logentry
+ revision="2">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="A">/.hgtags</path>
+ </paths>
+ <msg>Tagged as v1.0</msg>
+ </logentry>
+ <logentry
+ revision="1">
+ <author>test</author>
+ <date/>
+ <paths>
+ <path
+ action="A">/a</path>
+ </paths>
+ <msg>Add file a</msg>
+ </logentry>
+ </log>
$ rm -rf a a-hg a-hg-wc