# HG changeset patch # User Augie Fackler # Date 1261855884 21600 # Node ID 8aff8c9d04d7a422009efd1dc1fee8f2ed31aa8b # Parent c2d6b1093e7e5e8eff42d41ed94845ec03d8d256# Parent c49a01f91f5d6b7470422cf362abb0bb3411c45b Merge with abderrahim. diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -1,1 +1,2 @@ 505d7cdca19838bfb270193e0709154a2dad5c19 0.1.0 +77d6c9eb02fb96abb6a933170a912e94e3141f22 0.2.0 diff --git a/hggit/git_handler.py b/hggit/git_handler.py --- a/hggit/git_handler.py +++ b/hggit/git_handler.py @@ -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' diff --git a/setup.py b/setup.py --- a/setup.py +++ b/setup.py @@ -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', diff --git a/tests/test-merge b/tests/test-merge --- 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' diff --git a/tests/test-merge.out b/tests/test-merge.out --- a/tests/test-merge.out +++ b/tests/test-merge.out @@ -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