changeset 276:8aff8c9d04d7

Merge with abderrahim.
author Augie Fackler <durin42@gmail.com>
date Sat, 26 Dec 2009 13:31:24 -0600
parents c2d6b1093e7e (current diff) c49a01f91f5d (diff)
children b2926066f053
files hggit/git_handler.py tests/test-merge tests/test-merge.out
diffstat 5 files changed, 24 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Fri Dec 25 08:56:20 2009 +0100
+++ b/.hgtags	Sat Dec 26 13:31:24 2009 -0600
@@ -1,1 +1,2 @@
 505d7cdca19838bfb270193e0709154a2dad5c19 0.1.0
+77d6c9eb02fb96abb6a933170a912e94e3141f22 0.2.0
--- a/hggit/git_handler.py	Fri Dec 25 08:56:20 2009 +0100
+++ b/hggit/git_handler.py	Sat Dec 26 13:31:24 2009 -0600
@@ -1,4 +1,4 @@
-import os, sys, math, urllib, re
+import os, math, urllib, re
 import toposort
 
 from dulwich.errors import HangupException
@@ -12,11 +12,6 @@
 from mercurial.node import hex, bin, nullid
 from mercurial import context, util as hgutil
 
-try:
-    from mercurial.error import RepoError
-except ImportError:
-    from mercurial.repo import RepoError
-
 
 class GitHandler(object):
 
@@ -539,7 +534,7 @@
             del new_refs['capabilities^{}']
             if not self.local_heads():
                 tip = hex(self.repo.lookup('tip'))
-                bookmarks.bookmark(self.ui, self.repo, 'master', tip)
+                bookmarks.bookmark(self.ui, self.repo, 'master', tip, force=True)
                 bookmarks.setcurrent(self.repo, 'master')
                 new_refs['refs/heads/master'] = self.map_git_get(tip)
 
@@ -594,9 +589,10 @@
             return want
         f, commit = self.git.object_store.add_pack()
         try:
-            return client.fetch_pack(path, determine_wants, graphwalker, f.write, self.ui.status)
-        except HangupException:
-            raise hgutil.Abort("the remote end hung up unexpectedly")
+            try:
+                return client.fetch_pack(path, determine_wants, graphwalker, f.write, self.ui.status)
+            except HangupException:
+                raise hgutil.Abort("the remote end hung up unexpectedly")
         finally:
             commit()
 
@@ -618,7 +614,10 @@
 
     def local_heads(self):
         try:
-            bms = bookmarks.parse(self.repo)
+            if getattr(bookmarks, 'parse', None):
+                bms = bookmarks.parse(self.repo)
+            else:
+                bms = self.repo._bookmarks
             return dict([(bm, hex(bms[bm])) for bm in bms])
         except AttributeError: #pragma: no cover
             return {}
@@ -655,7 +654,11 @@
 
     def update_hg_bookmarks(self, refs):
         try:
-            bms = bookmarks.parse(self.repo)
+            oldbm = getattr(bookmarks, 'parse', None)
+            if oldbm:
+                bms = bookmarks.parse(self.repo)
+            else:
+                bms = self.repo._bookmarks
             heads = dict([(ref[11:],refs[ref]) for ref in refs
                           if ref.startswith('refs/heads/')])
 
@@ -674,7 +677,11 @@
                         # fast forward
                         bms[head] = hgsha
             if heads:
-                bookmarks.write(self.repo, bms)
+                if oldbm:
+                    bookmarks.write(self.repo, bms)
+                else:
+                    self.repo._bookmarks = bms
+                    bookmarks.write(self.repo)
 
         except AttributeError:
             self.ui.warn(_('creating bookmarks failed, do you have'
--- a/setup.py	Fri Dec 25 08:56:20 2009 +0100
+++ b/setup.py	Sat Dec 26 13:31:24 2009 -0600
@@ -5,7 +5,7 @@
 
 setup(
     name='hg-git',
-    version='0.1.0',
+    version='0.2.0',
     author='Scott Chacon',
     maintainer='Augie Fackler',
     maintainer_email='durin42@gmail.com',
--- a/tests/test-merge	Fri Dec 25 08:56:20 2009 +0100
+++ b/tests/test-merge	Sat Dec 26 13:31:24 2009 -0600
@@ -73,6 +73,7 @@
 
 cd ..
 cd gitrepo2
+echo % git log in repo pushed from hg
 git log master | sed 's/\.\.\.//g'
 git log beta | sed 's/\.\.\.//g'
 
--- a/tests/test-merge.out	Fri Dec 25 08:56:20 2009 +0100
+++ b/tests/test-merge.out	Sat Dec 26 13:31:24 2009 -0600
@@ -21,6 +21,7 @@
 importing Hg objects into Git
 at: 0/4
 creating and sending data
+% git log in repo pushed from hg
 commit 5806851511aaf3bfe813ae3a86c5027165fa9b96
 Merge: e5023f9 9497a4e
 Author: test <test@example.org>