Rev 97: use mapping object. in http://people.samba.org/bzr/jelmer/bzr-git/trunk

Jelmer Vernooij jelmer at samba.org
Sat Aug 23 14:53:50 BST 2008


At http://people.samba.org/bzr/jelmer/bzr-git/trunk

------------------------------------------------------------
revno: 97
revision-id: jelmer at samba.org-20080823135348-37p81972kdzjdvrn
parent: jelmer at samba.org-20080823131804-beqfmh0nh77hc6x2
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: trunk
timestamp: Sat 2008-08-23 15:53:48 +0200
message:
  use mapping object.
renamed:
  ids.py => mapping.py ids.py-20071108230535-su8dxk529f4uk9fx-3
modified:
  branch.py                      git_branch.py-20071108230535-su8dxk529f4uk9fx-2
  repository.py                  git_repository.py-20071108234408-ygidvy5hviixghsd-2
  tests/test_branch.py           test_git_branch.py-20071108234408-ygidvy5hviixghsd-3
  tests/test_ids.py              test_ids.py-20070202180809-x7e2o6nhz30onckb-1
  tests/test_repository.py       test_git_repository.-20071108234408-ygidvy5hviixghsd-5
  mapping.py                     ids.py-20071108230535-su8dxk529f4uk9fx-3
=== modified file 'branch.py'
--- a/branch.py	2008-08-23 13:18:04 +0000
+++ b/branch.py	2008-08-23 13:53:48 +0000
@@ -24,7 +24,7 @@
     )
 from bzrlib.decorators import needs_read_lock
 
-from bzrlib.plugins.git import ids
+from bzrlib.plugins.git.mapping import default_mapping
 
 class GitTagDict(tag.BasicTags):
 
@@ -35,7 +35,7 @@
     def get_tag_dict(self):
         ret = {}
         for tag in self.repository._git.tags:
-            ret[tag.name] = ids.convert_revision_id_git_to_bzr(tag.commit.id)
+            ret[tag.name] = default_mapping.convert_revision_id_git_to_bzr(tag.commit.id)
         return ret
 
     def set_tag(self, name, revid):
@@ -84,7 +84,7 @@
         # perhaps should escape this ?
         if self.head is None:
             return revision.NULL_REVISION
-        return ids.convert_revision_id_git_to_bzr(self.head)
+        return default_mapping.convert_revision_id_git_to_bzr(self.head)
 
     def _make_tags(self):
         return GitTagDict(self)
@@ -109,7 +109,7 @@
             skip += max_count
             for cm in cms:
                 if cm.id == nextid:
-                    ret.append(ids.convert_revision_id_git_to_bzr(cm.id))
+                    ret.append(default_mapping.convert_revision_id_git_to_bzr(cm.id))
                     if cm.parents == []:
                         nextid = None
                     else:

=== renamed file 'ids.py' => 'mapping.py'
--- a/ids.py	2007-12-30 04:33:51 +0000
+++ b/mapping.py	2008-08-23 13:53:48 +0000
@@ -16,16 +16,23 @@
 
 """Converters, etc for going between Bazaar and Git ids."""
 
-NAMESPACE = 'git-experimental'
-_revision_id_prefix = NAMESPACE + '-r:'
-
-
-def convert_revision_id_git_to_bzr(git_rev_id):
-    """Convert a git revision id handle to a Bazaar revision id."""
-    return _revision_id_prefix + git_rev_id
-
-
-def convert_revision_id_bzr_to_git(bzr_rev_id):
-    """Convert a Bazaar revision id to a git revision id handle."""
-    assert bzr_rev_id.startswith(_revision_id_prefix)
-    return bzr_rev_id[len(_revision_id_prefix):]
+class BzrGitMapping(object):
+    """Class that maps between Git and Bazaar semantics."""
+    experimental = False
+    namespace = None
+
+    def convert_revision_id_git_to_bzr(self, git_rev_id):
+        """Convert a git revision id handle to a Bazaar revision id."""
+        return "%s:%s" % (self.namespace, git_rev_id)
+
+    def convert_revision_id_bzr_to_git(self, bzr_rev_id):
+        """Convert a Bazaar revision id to a git revision id handle."""
+        assert bzr_rev_id.startswith("%s:" % self.namespace)
+        return bzr_rev_id[len(self.namespace)+1:]
+
+
+class BzrGitMappingExperimental(BzrGitMapping):
+    namespace = 'git-experimental'
+
+
+default_mapping = BzrGitMappingExperimental()

=== modified file 'repository.py'
--- a/repository.py	2008-08-23 13:12:10 +0000
+++ b/repository.py	2008-08-23 13:53:48 +0000
@@ -35,9 +35,9 @@
 from bzrlib.transport import get_transport
 
 from bzrlib.plugins.git import (
-    ids,
     versionedfiles
     )
+from bzrlib.plugins.git.mapping import default_mapping
 
 
 class GitRepository(repository.Repository):
@@ -66,7 +66,7 @@
         while cms != []:
             cms = self._git.commits("--all", max_count=max_count, skip=skip)
             skip += max_count
-            ret.update([ids.convert_revision_id_git_to_bzr(cm.id) for cm in cms])
+            ret.update([default_mapping.convert_revision_id_git_to_bzr(cm.id) for cm in cms])
         return ret
 
     def is_shared(self):
@@ -88,9 +88,9 @@
             max_count = 1000
             cms = None
             while cms != []:
-                cms = self._git.commits(ids.convert_revision_id_bzr_to_git(revision_id), max_count=max_count, skip=skip)
+                cms = self._git.commits(default_mapping.convert_revision_id_bzr_to_git(revision_id), max_count=max_count, skip=skip)
                 skip += max_count
-                ret += [ids.convert_revision_id_git_to_bzr(cm.id) for cm in cms]
+                ret += [default_mapping.convert_revision_id_git_to_bzr(cm.id) for cm in cms]
         return [None] + ret
 
     def get_signature_text(self, revision_id):
@@ -105,12 +105,12 @@
             if revid == revision.NULL_REVISION:
                 ret[revid] = ()
             else:
-                commit = self._git.commit(ids.convert_revision_id_bzr_to_git(revid))
-                ret[revid] = tuple([ids.convert_revision_id_git_to_bzr(p.id) for p in commit.parents])
+                commit = self._git.commit(default_mapping.convert_revision_id_bzr_to_git(revid))
+                ret[revid] = tuple([default_mapping.convert_revision_id_git_to_bzr(p.id) for p in commit.parents])
         return ret
 
     def get_revision(self, revision_id):
-        git_commit_id = ids.convert_revision_id_bzr_to_git(revision_id)
+        git_commit_id = default_mapping.convert_revision_id_bzr_to_git(revision_id)
         commit = self._git.commit(git_commit_id)
         # print "fetched revision:", git_commit_id
         revision = self._parse_rev(commit)
@@ -133,8 +133,8 @@
 
         :return: a `bzrlib.revision.Revision` object.
         """
-        rev = revision.Revision(ids.convert_revision_id_git_to_bzr(commit.id))
-        rev.parent_ids = tuple([ids.convert_revision_id_git_to_bzr(p.id) for p in commit.parents])
+        rev = revision.Revision(default_mapping.convert_revision_id_git_to_bzr(commit.id))
+        rev.parent_ids = tuple([default_mapping.convert_revision_id_git_to_bzr(p.id) for p in commit.parents])
         rev.inventory_sha1 = ""
         rev.message = commit.message.decode("utf-8", "replace")
         rev.committer = str(commit.committer)
@@ -175,7 +175,7 @@
     def __init__(self, repository, revision_id):
         self._repository = repository
         self.revision_id = revision_id
-        git_id = ids.convert_revision_id_bzr_to_git(revision_id)
+        git_id = default_mapping.convert_revision_id_bzr_to_git(revision_id)
         self.tree = repository._git.commit(git_id).tree
         self._inventory = inventory.Inventory(revision_id=revision_id)
         self._inventory.root.revision = revision_id

=== modified file 'tests/test_branch.py'
--- a/tests/test_branch.py	2008-08-23 13:12:10 +0000
+++ b/tests/test_branch.py	2008-08-23 13:53:48 +0000
@@ -21,11 +21,11 @@
 from bzrlib import revision
 from bzrlib.branch import Branch
 
-from bzrlib.plugins.git import tests
 from bzrlib.plugins.git import (
     branch,
-    ids,
+    tests,
     )
+from bzrlib.plugins.git.mapping import default_mapping
 
 
 class TestGitBranch(tests.TestCaseInTempDir):
@@ -57,7 +57,7 @@
         head = tests.run_git('rev-parse', 'HEAD').strip()
 
         thebranch = Branch.open('.')
-        self.assertEqual(ids.convert_revision_id_git_to_bzr(head),
+        self.assertEqual(default_mapping.convert_revision_id_git_to_bzr(head),
                          thebranch.last_revision())
 
     def test_revision_history(self):
@@ -69,7 +69,7 @@
         revb = tests.run_git('rev-parse', 'HEAD').strip()
 
         thebranch = Branch.open('.')
-        self.assertEqual([ids.convert_revision_id_git_to_bzr(r) for r in (reva, revb)],
+        self.assertEqual([default_mapping.convert_revision_id_git_to_bzr(r) for r in (reva, revb)],
                          thebranch.revision_history())
 
     def test_tags(self):
@@ -81,7 +81,7 @@
         newid = open('.git/refs/tags/foo').read().rstrip()
 
         thebranch = Branch.open('.')
-        self.assertEquals({"foo": ids.convert_revision_id_git_to_bzr(newid)},
+        self.assertEquals({"foo": default_mapping.convert_revision_id_git_to_bzr(newid)},
                           thebranch.tags.get_tag_dict())
         
 

=== modified file 'tests/test_ids.py'
--- a/tests/test_ids.py	2008-07-03 17:09:00 +0000
+++ b/tests/test_ids.py	2008-08-23 13:53:48 +0000
@@ -15,19 +15,19 @@
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
 from bzrlib.plugins.git import tests
-from bzrlib.plugins.git import ids
+from bzrlib.plugins.git.mapping import default_mapping
 
 
 class TestRevidConversion(tests.TestCase):
 
     def test_simple_git_to_bzr_revision_id(self):
-        self.assertEqual("git-experimental-r:"
+        self.assertEqual("git-experimental:"
                          "c6a4d8f1fa4ac650748e647c4b1b368f589a7356",
-                         ids.convert_revision_id_git_to_bzr(
+                         default_mapping.convert_revision_id_git_to_bzr(
                             "c6a4d8f1fa4ac650748e647c4b1b368f589a7356"))
 
     def test_simple_bzr_to_git_revision_id(self):
         self.assertEqual("c6a4d8f1fa4ac650748e647c4b1b368f589a7356",
-                         ids.convert_revision_id_bzr_to_git(
-                            "git-experimental-r:"
+                         default_mapping.convert_revision_id_bzr_to_git(
+                            "git-experimental:"
                             "c6a4d8f1fa4ac650748e647c4b1b368f589a7356"))

=== modified file 'tests/test_repository.py'
--- a/tests/test_repository.py	2008-08-23 13:12:10 +0000
+++ b/tests/test_repository.py	2008-08-23 13:53:48 +0000
@@ -25,12 +25,12 @@
     )
 from bzrlib.repository import Repository
 
-from bzrlib.plugins.git import tests
 from bzrlib.plugins.git import (
     dir,
     repository,
-    ids,
+    tests,
     )
+from bzrlib.plugins.git.mapping import default_mapping
 
 
 class TestGitRepositoryFeatures(tests.TestCaseInTempDir):
@@ -62,7 +62,7 @@
         commit_id = mapping[commit_handle]
 
         # Get the corresponding Revision object.
-        revid = ids.convert_revision_id_git_to_bzr(commit_id)
+        revid = default_mapping.convert_revision_id_git_to_bzr(commit_id)
         repo = Repository.open('.')
         rev = repo.get_revision(revid)
         self.assertIsInstance(rev, revision.Revision)
@@ -82,7 +82,7 @@
 
     def test_revision_tree(self):
         commit_id = self.simple_commit()
-        revid = ids.convert_revision_id_git_to_bzr(commit_id)
+        revid = default_mapping.convert_revision_id_git_to_bzr(commit_id)
         repo = Repository.open('.')
         tree = repo.revision_tree(revid)
         self.assertEquals(tree.get_revision_id(), revid)
@@ -95,7 +95,7 @@
         commit_id = self.simple_commit()
 
         # Get the corresponding Inventory object.
-        revid = ids.convert_revision_id_git_to_bzr(commit_id)
+        revid = default_mapping.convert_revision_id_git_to_bzr(commit_id)
         repo = Repository.open('.')
         inv = repo.get_inventory(revid)
         self.assertIsInstance(inv, inventory.Inventory)
@@ -105,7 +105,7 @@
         self.assertEqualDiff(
             printed_inv,
             "('', False, InventoryDirectory('TREE_ROOT', u'', parent_id=None,"
-            " revision='git-experimental-r:69c39cfa65962f3cf16b9b3eb08a15954e9d8590'))\n"
+            " revision='git-experimental:69c39cfa65962f3cf16b9b3eb08a15954e9d8590'))\n"
             "(u'data', False, InventoryFile('data', u'data',"
             " parent_id='TREE_ROOT',"
             " sha1='aa785adca3fcdfe1884ae840e13c6d294a2414e8', len=5))\n"
@@ -113,9 +113,9 @@
             " parent_id='TREE_ROOT',"
             " sha1='040f06fd774092478d450774f5ba30c5da78acc8', len=7))\n"
             "(u'link', False, InventoryLink('link', u'link',"
-            " parent_id='TREE_ROOT', revision='git-experimental-r:69c39cfa65962f3cf16b9b3eb08a15954e9d8590'))\n"
+            " parent_id='TREE_ROOT', revision='git-experimental:69c39cfa65962f3cf16b9b3eb08a15954e9d8590'))\n"
             "(u'subdir', False, InventoryDirectory('subdir', u'subdir',"
-            " parent_id='TREE_ROOT', revision='git-experimental-r:69c39cfa65962f3cf16b9b3eb08a15954e9d8590'))\n"
+            " parent_id='TREE_ROOT', revision='git-experimental:69c39cfa65962f3cf16b9b3eb08a15954e9d8590'))\n"
             "(u'subdir/subfile', False, InventoryFile('subdir/subfile',"
             " u'subfile', parent_id='subdir',"
             " sha1='67b75c3e49f31fcadddbf9df6a1d8be8c3e44290', len=12))")




More information about the bazaar-commits mailing list