# HG changeset patch # User Augie Fackler # Date 1386957279 18000 # Node ID 0a514e303a06fcaaa6305166051814b7f9dd4af9 # Parent f6cd1f0e0e8596d6d9aff1a75814b2f1649b94ee overlay: add kludge to make sure we only ever give hexshas to dulwich diff --git a/hggit/overlay.py b/hggit/overlay.py --- a/hggit/overlay.py +++ b/hggit/overlay.py @@ -10,6 +10,11 @@ from mercurial.node import bin, hex, nullid from mercurial import localrepo +def _maybehex(n): + if len(n) == 20: + return hex(n) + return n + class overlaymanifest(object): def __init__(self, repo, sha): self.repo = repo @@ -103,7 +108,7 @@ return self.fileid def data(self): - blob = self.repo.handler.git.get_object(self.fileid) + blob = self.repo.handler.git.get_object(_maybehex(self.fileid)) return blob.data class overlaychangectx(context.changectx): @@ -111,7 +116,7 @@ self.repo = repo if not isinstance(sha, basestring): sha = sha.hex() - self.commit = repo.handler.git.get_object(sha) + self.commit = repo.handler.git.get_object(_maybehex(sha)) self._overlay = getattr(repo, 'gitoverlay', repo) self._rev = self._overlay.rev(bin(self.commit.id)) @@ -185,7 +190,7 @@ if not gitrev: # we've reached a revision we have return self.base.parents(n) - commit = self.repo.handler.git.get_object(n) + commit = self.repo.handler.git.get_object(_maybehex(n)) def gitorhg(n): hn = self.repo.handler.map_hg_get(hex(n))