Mercurial > hg > hg-git
changeset 288:efe9e6a9235f
fix gimport and add test for using to work on hg repos from git (issue 73)
author | Abderrahim Kitouni <a.kitouni@gmail.com> |
---|---|
date | Fri, 26 Feb 2010 19:27:32 +0100 |
parents | e08a22250fa9 |
children | 0f7db04b8191 |
files | hggit/git_handler.py tests/test-git-workflow tests/test-git-workflow.out |
diffstat | 3 files changed, 116 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/hggit/git_handler.py +++ b/hggit/git_handler.py @@ -352,7 +352,7 @@ # get a list of all the head shas seenheads = set() if refs is None: - refs = self.git.refs + refs = self.git.refs.as_dict() if refs: for sha in refs.itervalues(): # refs contains all the refs in the server, not just the ones
new file mode 100755 --- /dev/null +++ b/tests/test-git-workflow @@ -0,0 +1,67 @@ +#!/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 + +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 "git 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 hgrepo +cd hgrepo +hg init + +echo alpha > alpha +hg add alpha +hgcommit -m "add alpha" +hg glog --debug + +cd .. + +echo % configure for use from git +hg clone hgrepo gitrepo +cd gitrepo +hg book master +hg up null +echo "[git]" >> .hg/hgrc +echo "intree = True" >> .hg/hgrc +hg gexport + +echo % do some work +git checkout master +echo beta > beta +git add beta +commit -m 'add beta' + +echo % get things back to hg +hg gimport +hg glog --debug
new file mode 100644 --- /dev/null +++ b/tests/test-git-workflow.out @@ -0,0 +1,48 @@ +@ changeset: 0:0221c246a56712c6aa64e5ee382244d8a471b1e2 + tag: tip + parent: -1:0000000000000000000000000000000000000000 + parent: -1:0000000000000000000000000000000000000000 + manifest: 0:8b8a0e87dfd7a0706c0524afa8ba67e20544cbf0 + user: test + date: Mon Jan 01 00:00:10 2007 +0000 + files+: alpha + extra: branch=default + description: + add alpha + + +% configure for use from git +updating to branch default +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +0 files updated, 0 files merged, 1 files removed, 0 files unresolved +importing Hg objects into Git +% do some work +Already on "master" +% get things back to hg +importing Git objects into Hg +o changeset: 1:7108ae7bd184226a29b8203619a8253d314643bf +| tag: master +| tag: tip +| parent: 0:0221c246a56712c6aa64e5ee382244d8a471b1e2 +| parent: -1:0000000000000000000000000000000000000000 +| manifest: 1:f0bd6fbafbaebe4bb59c35108428f6fce152431d +| user: test <test@example.org> +| date: Mon Jan 01 00:00:11 2007 +0000 +| files+: beta +| extra: branch=default +| description: +| add beta +| +| +o changeset: 0:0221c246a56712c6aa64e5ee382244d8a471b1e2 + parent: -1:0000000000000000000000000000000000000000 + parent: -1:0000000000000000000000000000000000000000 + manifest: 0:8b8a0e87dfd7a0706c0524afa8ba67e20544cbf0 + user: test + date: Mon Jan 01 00:00:10 2007 +0000 + files+: alpha + extra: branch=default + description: + add alpha + +