changeset 207:c06ac5b982a9

add a test for pushing to git
author Abderrahim Kitouni <a.kitouni@gmail.com>
date Thu, 02 Jul 2009 13:27:14 +0100
parents 5986ac6a591e
children fbdacc889143
files git_handler.py tests/test-git-push tests/test-git-push.out
diffstat 3 files changed, 145 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/git_handler.py
+++ b/git_handler.py
@@ -562,6 +562,7 @@
         try:
             self.ui.status(_("creating and sending data\n"))
             changed_refs = client.send_pack(path, changed, genpack)
+            return changed_refs
         except:
             # TODO : remove try/except or do something useful here
             raise
new file mode 100755
--- /dev/null
+++ b/tests/test-git-push
@@ -0,0 +1,73 @@
+#!/bin/sh
+
+# Fails for some reason, need to investigate
+# "$TESTDIR/hghave" git || 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)))" >> $HGRCPATH
+echo 'hgext.graphlog =' >> $HGRCPATH
+echo 'hgext.bookmarks =' >> $HGRCPATH
+
+GIT_AUTHOR_NAME='test'; export GIT_AUTHOR_NAME
+GIT_AUTHOR_EMAIL='test@example.org'; export GIT_AUTHOR_EMAIL
+GIT_AUTHOR_DATE="2007-01-01 00:00:00 +0000"; export GIT_AUTHOR_DATE
+GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"; export GIT_COMMITTER_NAME
+GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"; export GIT_COMMITTER_EMAIL
+GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"; export GIT_COMMITTER_DATE
+
+count=10
+commit()
+{
+    GIT_AUTHOR_DATE="2007-01-01 00:00:$count +0000"
+    GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"
+    git commit "$@" >/dev/null 2>/dev/null || echo "hg commit error"
+    count=`expr $count + 1`
+}
+hgcommit()
+{
+    HGDATE="2007-01-01 00:00:$count +0000"
+    hg commit -d "$HGDATE" "$@" >/dev/null 2>/dev/null || echo "hg commit error"
+    count=`expr $count + 1`
+}
+
+mkdir gitrepo
+cd gitrepo
+git init | python -c "import sys; print sys.stdin.read().replace('$(dirname $(pwd))/', '')"
+
+echo alpha > alpha
+git add alpha
+commit -m "add alpha"
+
+# dulwich does not presently support local git repos, workaround
+cd ..
+git daemon --base-path="$(pwd)"\
+ --listen=localhost\
+ --export-all\
+ --pid-file=gitdaemon.pid \
+ --detach --reuseaddr \
+ --enable=receive-pack
+
+hg clone git://localhost/gitrepo hgrepo
+
+cd hgrepo
+echo beta > beta
+hg add beta
+hgcommit -u "test" -m 'add beta'
+hg push
+
+echo gamma >> beta
+hgcommit -u "test <test@example.com> (comment)" -m 'modify beta'
+hg push
+
+hg log --graph
+
+cd ..
+hg clone git://localhost/gitrepo hgrepo2
+cd hgrepo2
+hg log --graph
+
+cd ..
+kill `cat gitdaemon.pid`
new file mode 100644
--- /dev/null
+++ b/tests/test-git-push.out
@@ -0,0 +1,71 @@
+Initialized empty Git repository in gitrepo/.git/
+
+fetching from : git://localhost/gitrepo
+importing Hg objects into Git
+Counting objects: 3, done.
+Total 3 (delta 0), reused 0 (delta 0)
+importing Git objects into Hg
+at: 0/1
+updating working directory
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+pushing to git://localhost/gitrepo
+fetching from : git://localhost/gitrepo
+importing Hg objects into Git
+at: 0/1
+importing Git objects into Hg
+pushing to : git://localhost/gitrepo
+creating and sending data
+    default::refs/heads/master => GIT:cffa0e8d
+pushing to git://localhost/gitrepo
+fetching from : git://localhost/gitrepo
+importing Hg objects into Git
+at: 0/1
+importing Git objects into Hg
+pushing to : git://localhost/gitrepo
+creating and sending data
+    default::refs/heads/master => GIT:2b9ec6a4
+@  changeset:   2:92d33c0dd6e1
+|  tag:         master
+|  tag:         default/master
+|  tag:         tip
+|  user:        test <test@example.com> (comment)
+|  date:        Mon Jan 01 00:00:12 2007 +0000
+|  summary:     modify beta
+|
+o  changeset:   1:0564f526fb0f
+|  user:        test
+|  date:        Mon Jan 01 00:00:11 2007 +0000
+|  summary:     add beta
+|
+o  changeset:   0:3442585be8a6
+   user:        test <test@example.org>
+   date:        Mon Jan 01 00:00:10 2007 +0000
+   summary:     add alpha
+
+fetching from : git://localhost/gitrepo
+importing Hg objects into Git
+Counting objects: 9, 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 9 (delta 0), reused 0 (delta 0)
+importing Git objects into Hg
+at: 0/3
+updating working directory
+2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+@  changeset:   2:92d33c0dd6e1
+|  tag:         master
+|  tag:         default/master
+|  tag:         tip
+|  user:        test <test@example.com> (comment)
+|  date:        Mon Jan 01 00:00:12 2007 +0000
+|  summary:     modify beta
+|
+o  changeset:   1:0564f526fb0f
+|  user:        test
+|  date:        Mon Jan 01 00:00:11 2007 +0000
+|  summary:     add beta
+|
+o  changeset:   0:3442585be8a6
+   user:        test <test@example.org>
+   date:        Mon Jan 01 00:00:10 2007 +0000
+   summary:     add alpha
+