# HG changeset patch # User Abderrahim Kitouni # Date 1246537634 -3600 # Node ID c06ac5b982a909c7a6f96145a9053146d8a47173 # Parent 5986ac6a591e5c677099637e7714567223f45575 add a test for pushing to git diff -r 5986ac6a591e -r c06ac5b982a9 git_handler.py --- a/git_handler.py Wed Jul 01 21:31:35 2009 +0100 +++ b/git_handler.py Thu Jul 02 13:27:14 2009 +0100 @@ -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 diff -r 5986ac6a591e -r c06ac5b982a9 tests/test-git-push --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-git-push Thu Jul 02 13:27:14 2009 +0100 @@ -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 (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` diff -r 5986ac6a591e -r c06ac5b982a9 tests/test-git-push.out --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-git-push.out Thu Jul 02 13:27:14 2009 +0100 @@ -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 (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 + 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 (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 + date: Mon Jan 01 00:00:10 2007 +0000 + summary: add alpha +