changeset 268:6fded8e42858

git_handler: update for slight API change in bookmarks This should continue being backwards compatible through at least hg 1.3, perhaps further.
author Augie Fackler <durin42@gmail.com>
date Sat, 26 Dec 2009 12:22:06 -0600
parents 7814c26758a2
children 77d6c9eb02fb
files hggit/git_handler.py tests/test-merge tests/test-merge.out
diffstat 3 files changed, 17 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/hggit/git_handler.py
+++ b/hggit/git_handler.py
@@ -539,7 +539,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)
 
@@ -619,7 +619,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 {}
@@ -656,7 +659,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/')])
 
@@ -675,7 +682,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/tests/test-merge
+++ b/tests/test-merge
@@ -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
+++ b/tests/test-merge.out
@@ -22,6 +22,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>