summaryrefslogtreecommitdiff
path: root/tests/test-convert-p4
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-convert-p4')
-rwxr-xr-xtests/test-convert-p475
1 files changed, 75 insertions, 0 deletions
diff --git a/tests/test-convert-p4 b/tests/test-convert-p4
new file mode 100755
index 0000000..3ae3c72
--- /dev/null
+++ b/tests/test-convert-p4
@@ -0,0 +1,75 @@
+#!/bin/sh
+
+"$TESTDIR/hghave" p4 || exit 80
+
+echo "[extensions]" >> $HGRCPATH
+echo "convert = " >> $HGRCPATH
+
+echo % create p4 depot
+P4ROOT=`pwd`/depot; export P4ROOT
+P4AUDIT=$P4ROOT/audit; export P4AUDIT
+P4JOURNAL=$P4ROOT/journal; export P4JOURNAL
+P4LOG=$P4ROOT/log; export P4LOG
+P4PORT=localhost:16661; export P4PORT
+P4DEBUG=1; export P4DEBUG
+
+echo % start the p4 server
+[ ! -d $P4ROOT ] && mkdir $P4ROOT
+p4d -f -J off >$P4ROOT/stdout 2>$P4ROOT/stderr &
+trap "echo % stop the p4 server ; p4 admin stop" EXIT
+
+# wait for the server to initialize
+while ! p4 ; do
+ sleep 1
+done >/dev/null 2>/dev/null
+
+echo % create a client spec
+P4CLIENT=hg-p4-import; export P4CLIENT
+DEPOTPATH=//depot/test-mercurial-import/...
+p4 client -o | sed '/^View:/,$ d' >p4client
+echo View: >>p4client
+echo " $DEPOTPATH //$P4CLIENT/..." >>p4client
+p4 client -i <p4client
+
+echo % populate the depot
+echo a > a
+mkdir b
+echo c > b/c
+p4 add a b/c
+p4 submit -d initial
+
+echo % change some files
+p4 edit a
+echo aa >> a
+p4 submit -d "change a"
+
+p4 edit b/c
+echo cc >> b/c
+p4 submit -d "change b/c"
+
+echo % convert
+hg convert -s p4 $DEPOTPATH dst
+hg -R dst log --template 'rev={rev} desc="{desc}" tags="{tags}" files="{files}"\n'
+
+echo % change some files
+p4 edit a b/c
+echo aaa >> a
+echo ccc >> b/c
+p4 submit -d "change a b/c"
+
+echo % convert again
+hg convert -s p4 $DEPOTPATH dst
+hg -R dst log --template 'rev={rev} desc="{desc}" tags="{tags}" files="{files}"\n'
+
+echo % interesting names
+echo dddd > "d d"
+mkdir " e"
+echo fff >" e/ f"
+p4 add "d d" " e/ f"
+p4 submit -d "add d e f"
+
+echo % convert again
+hg convert -s p4 $DEPOTPATH dst
+hg -R dst log --template 'rev={rev} desc="{desc}" tags="{tags}" files="{files}"\n'
+
+