diff -r 6f0d9d79111f -r f98010f57a5e tests/test-convert-svn-move.t --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-convert-svn-move.t Tue Sep 21 18:40:33 2010 +0200 @@ -0,0 +1,202 @@ + + $ "$TESTDIR/hghave" svn svn-bindings || exit 80 + + $ fixpath() + > { + > tr '\\' / + > } + $ cat > $HGRCPATH < [extensions] + > convert = + > graphlog = + > EOF + + $ svnadmin create svn-repo + $ svnadmin load -q svn-repo < "$TESTDIR/svn/move.svndump" + $ svnpath=`pwd | fixpath` + +SVN wants all paths to start with a slash. Unfortunately, +Windows ones don't. Handle that. + + $ expr "$svnpath" : "\/" > /dev/null + > if [ $? -ne 0 ]; then + > svnpath="/$svnpath" + > fi + > svnurl="file://$svnpath/svn-repo" + +Convert trunk and branches + + $ hg convert --datesort "$svnurl"/subproject A-hg + initializing destination A-hg repository + scanning source... + sorting... + converting... + 13 createtrunk + 12 moved1 + 11 moved1 + 10 moved2 + 9 changeb and rm d2 + 8 changeb and rm d2 + 7 moved1again + 6 moved1again + 5 copyfilefrompast + 4 copydirfrompast + 3 add d3 + 2 copy dir and remove subdir + 1 add d4old + 0 rename d4old into d4new + + $ cd A-hg + $ hg glog --template '{rev} {desc|firstline} files: {files}\n' + o 13 rename d4old into d4new files: d4new/g d4old/g + | + o 12 add d4old files: d4old/g + | + o 11 copy dir and remove subdir files: d3/d31/e d4/d31/e d4/f + | + o 10 add d3 files: d3/d31/e d3/f + | + o 9 copydirfrompast files: d2/d + | + o 8 copyfilefrompast files: d + | + o 7 moved1again files: d1/b d1/c + | + | o 6 moved1again files: + | | + o | 5 changeb and rm d2 files: d1/b d2/d + | | + | o 4 changeb and rm d2 files: b + | | + o | 3 moved2 files: d2/d + | | + o | 2 moved1 files: d1/b d1/c + | | + | o 1 moved1 files: b c + | + o 0 createtrunk files: + + +Check move copy records + + $ hg st --rev 12:13 --copies + A d4new/g + d4old/g + R d4old/g + +Check branches + + $ hg branches + default 13:.* + d1 6:.* + $ cd .. + + $ mkdir test-replace + $ cd test-replace + $ svnadmin create svn-repo + $ svnadmin load -q svn-repo < "$TESTDIR/svn/replace.svndump" + +Convert files being replaced by directories + + $ hg convert svn-repo hg-repo + initializing destination hg-repo repository + scanning source... + sorting... + converting... + 3 initial + 2 clobber symlink + 1 clobber1 + 0 clobber2 + + $ cd hg-repo + +Manifest before + + $ hg -v manifest -r 1 + 644 a + 644 d/b + 644 @ dlink + 644 @ dlink2 + 644 dlink3 + +Manifest after clobber1 + + $ hg -v manifest -r 2 + 644 a/b + 644 d/b + 644 dlink/b + 644 @ dlink2 + 644 dlink3 + +Manifest after clobber2 + + $ hg -v manifest -r 3 + 644 a/b + 644 d/b + 644 dlink/b + 644 @ dlink2 + 644 @ dlink3 + +Try updating + + $ hg up -qC default + $ cd .. + +Test convert progress bar' + + $ cat >> $HGRCPATH < [extensions] + > progress = + > [progress] + > assume-tty = 1 + > delay = 0 + > refresh = 0 + > EOF + $ cat > filtercr.py < import sys, re + > for line in sys.stdin: + > line = re.sub(r'\r+[^\n]', lambda m: '\n' + m.group()[-1:], line) + > sys.stdout.write(line) + > EOF + + $ hg convert svn-repo hg-progress 2>&1 | python filtercr.py + + scanning [ <=> ] 1 + scanning [ <=> ] 2 + scanning [ <=> ] 3 + scanning [ <=> ] 4 + + converting [ ] 0/4 + getting files [==========> ] 1/5 + getting files [======================> ] 2/5 + getting files [==================================> ] 3/5 + getting files [==============================================> ] 4/5 + getting files [==========================================================>] 5/5 + + converting [==============> ] 1/4 + scanning paths [ ] 0/1 + + getting files [==========================================================>] 1/1 + + converting [==============================> ] 2/4 + scanning paths [ ] 0/2 + scanning paths [============================> ] 1/2 + + getting files [=============> ] 1/4 + getting files [============================> ] 2/4 + getting files [===========================================> ] 3/4 + getting files [==========================================================>] 4/4 + + converting [=============================================> ] 3/4 + scanning paths [ ] 0/1 + + getting files [==========================================================>] 1/1 + + initializing destination hg-progress repository + scanning source... + sorting... + converting... + 3 initial + 2 clobber symlink + 1 clobber1 + 0 clobber2