tests/test-convert-svn-move.t
changeset 12370 f98010f57a5e
parent 11135 73a4ed3bfef8
child 12377 a5b77eb0409b
--- /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 <<EOF
+  > [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 <<EOF
+  > [extensions]
+  > progress = 
+  > [progress]
+  > assume-tty = 1
+  > delay = 0
+  > refresh = 0
+  > EOF
+  $ cat > filtercr.py <<EOF
+  > 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