diff options
Diffstat (limited to 'tests/test-convert-svn-sink.t')
-rw-r--r-- | tests/test-convert-svn-sink.t | 428 |
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 |