Rev 105: Add common function for finding git commit by bzr revid. in http://people.samba.org/bzr/jelmer/bzr-git/trunk
Jelmer Vernooij
jelmer at samba.org
Sat Aug 30 18:22:06 BST 2008
At http://people.samba.org/bzr/jelmer/bzr-git/trunk
------------------------------------------------------------
revno: 105
revision-id: jelmer at samba.org-20080830172205-lcix3iotfzk2agej
parent: jelmer at samba.org-20080829155812-6v17f84xz0ey2o3f
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: trunk
timestamp: Sat 2008-08-30 19:22:05 +0200
message:
Add common function for finding git commit by bzr revid.
modified:
mapping.py ids.py-20071108230535-su8dxk529f4uk9fx-3
repository.py git_repository.py-20071108234408-ygidvy5hviixghsd-2
=== modified file 'mapping.py'
--- a/mapping.py 2008-08-29 15:58:12 +0000
+++ b/mapping.py 2008-08-30 17:22:05 +0000
@@ -16,6 +16,7 @@
"""Converters, etc for going between Bazaar and Git ids."""
+from bzrlib import errors
from bzrlib.plugins.git import foreign
class BzrGitMapping(foreign.VcsMapping):
@@ -28,7 +29,8 @@
def revision_id_bzr_to_foreign(self, bzr_rev_id):
"""Convert a Bazaar revision id to a git revision id handle."""
- assert bzr_rev_id.startswith("%s:" % self.revid_prefix)
+ if not bzr_rev_id.startswith("%s:" % self.revid_prefix):
+ raise errors.InvalidRevisionId(bzr_rev_id, self)
return bzr_rev_id[len(self.revid_prefix)+1:]
=== modified file 'repository.py'
--- a/repository.py 2008-08-29 15:58:12 +0000
+++ b/repository.py 2008-08-30 17:22:05 +0000
@@ -88,7 +88,7 @@
max_count = 1000
cms = None
while cms != []:
- cms = self._git.commits(default_mapping.revision_id_bzr_to_foreign(revision_id), max_count=max_count, skip=skip)
+ cms = self._git.commits(self.lookup_git_revid(revision_id, self), max_count=max_count, skip=skip)
skip += max_count
ret += [default_mapping.revision_id_foreign_to_bzr(cm.id) for cm in cms]
return [None] + ret
@@ -105,12 +105,18 @@
if revid == revision.NULL_REVISION:
ret[revid] = ()
else:
- commit = self._git.commit(default_mapping.revision_id_bzr_to_foreign(revid))
+ commit = self._git.commit(self.lookup_git_revid(revid, default_mapping))
ret[revid] = tuple([default_mapping.revision_id_foreign_to_bzr(p.id) for p in commit.parents])
return ret
+ def lookup_git_revid(self, bzr_revid, mapping):
+ try:
+ return mapping.revision_id_bzr_to_foreign(bzr_revid)
+ except errors.InvalidRevisionId:
+ raise errors.NoSuchRevision(bzr_revid, self)
+
def get_revision(self, revision_id):
- git_commit_id = default_mapping.revision_id_bzr_to_foreign(revision_id)
+ git_commit_id = self.lookup_git_revid(revision_id, default_mapping)
commit = self._git.commit(git_commit_id)
# print "fetched revision:", git_commit_id
revision = self._parse_rev(commit)
@@ -175,7 +181,7 @@
def __init__(self, repository, revision_id):
self._repository = repository
self.revision_id = revision_id
- git_id = default_mapping.revision_id_bzr_to_foreign(revision_id)
+ git_id = repository.lookup_git_revid(revision_id, default_mapping)
self.tree = repository._git.commit(git_id).tree
self._inventory = inventory.Inventory(revision_id=revision_id)
self._inventory.root.revision = revision_id
More information about the bazaar-commits
mailing list