changeset 404:88779d8fe401

New test for round-trip fidelity of a merge of converged files. Currently fails.
author Christian Walther <cwalther@gmx.ch>
date Sun, 22 May 2011 20:12:42 +0200
parents 82e4206551e3
children 070f1cfdb80f
files tests/test-convergedmerge tests/test-convergedmerge.out
diffstat 2 files changed, 108 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
new file mode 100755
--- /dev/null
+++ b/tests/test-convergedmerge
@@ -0,0 +1,63 @@
+#!/bin/sh
+
+# Fails for some reason, need to investigate
+# "$TESTDIR/hghave" git || exit 80
+
+# bail if the user does not have dulwich
+python -c 'import dulwich, dulwich.repo' || exit 80
+
+# bail early if the user is already running git-daemon
+echo hi | nc localhost 9418 2>/dev/null && exit 80
+
+echo "[extensions]" >> $HGRCPATH
+echo "hggit=$(echo $(dirname $(dirname $0)))/hggit" >> $HGRCPATH
+echo 'hgext.graphlog =' >> $HGRCPATH
+echo 'hgext.bookmarks =' >> $HGRCPATH
+
+hg init hgrepo1
+cd hgrepo1
+echo A > afile
+hg add afile 
+hg ci -m "origin"
+
+echo B > afile
+hg ci -m "A->B"
+
+echo C > afile
+hg ci -m "B->C"
+
+hg up -r0
+echo C > afile
+hg ci -m "A->C"
+
+hg merge -r2
+hg ci -m "merge"
+
+hg log --graph --style compact | sed 's/\[.*\]//g'
+
+cd ..
+
+mkdir gitrepo
+cd gitrepo
+git init --bare | python -c "import sys; print sys.stdin.read().replace('$(dirname $(pwd))/', '')"
+
+# dulwich does not presently support local git repos, workaround
+cd ..
+git daemon --base-path="$(pwd)"\
+ --listen=localhost\
+ --export-all\
+ --pid-file="$DAEMON_PIDS" \
+ --detach --reuseaddr \
+ --enable=receive-pack
+
+cd hgrepo1
+hg bookmark -r4 master
+hg push -r master git://localhost/gitrepo
+cd ..
+
+hg clone git://localhost/gitrepo hgrepo2 | grep -v '^updating'
+cd hgrepo2
+echo % expect the same revision ids as above
+hg log --graph --style compact | sed 's/\[.*\]//g'
+
+cd ..
new file mode 100644
--- /dev/null
+++ b/tests/test-convergedmerge.out
@@ -0,0 +1,45 @@
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+created new head
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+(branch merge, don't forget to commit)
+@    4:3,2   eaa21d002113   1970-01-01 00:00 +0000   test
+|\     merge
+| |
+| o  3:0   ea82b67264a1   1970-01-01 00:00 +0000   test
+| |    A->C
+| |
+o |  2   0dbe4ac1a758   1970-01-01 00:00 +0000   test
+| |    B->C
+| |
+o |  1   7205e83b5a3f   1970-01-01 00:00 +0000   test
+|/     A->B
+|
+o  0   5d1a6b64f9d0   1970-01-01 00:00 +0000   test
+     origin
+
+Initialized empty Git repository in gitrepo/
+
+pushing to git://localhost/gitrepo
+exporting hg objects to git
+creating and sending data
+Counting objects: 11, done.
+Compressing objects:  20% (1/5)   
Compressing objects:  40% (2/5)   
Compressing objects:  60% (3/5)   
Compressing objects:  80% (4/5)   
Compressing objects: 100% (5/5)   
Compressing objects: 100% (5/5), done.
+Total 11 (delta 0), reused 0 (delta 0)
+importing git objects into hg
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+% expect the same revision ids as above
+@    4:1,3   eaa21d002113   1970-01-01 00:00 +0000   test
+|\     merge
+| |
+| o  3   0dbe4ac1a758   1970-01-01 00:00 +0000   test
+| |    B->C
+| |
+| o  2:0   7205e83b5a3f   1970-01-01 00:00 +0000   test
+| |    A->B
+| |
+o |  1   ea82b67264a1   1970-01-01 00:00 +0000   test
+|/     A->C
+|
+o  0   5d1a6b64f9d0   1970-01-01 00:00 +0000   test
+     origin
+