Rev 2315: Make generate_file_id() take a foreign revid. in http://people.samba.org/bzr/jelmer/bzr-svn/0.5

Jelmer Vernooij jelmer at samba.org
Fri Jan 16 22:22:13 GMT 2009


At http://people.samba.org/bzr/jelmer/bzr-svn/0.5

------------------------------------------------------------
revno: 2315
revision-id: jelmer at samba.org-20090116222209-aechpsghe1m96mg2
parent: jelmer at samba.org-20090115233019-ch4g9mxlo9y1y230
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.5
timestamp: Fri 2009-01-16 23:22:09 +0100
message:
  Make generate_file_id() take a foreign revid.
modified:
  fetch.py                       fetch.py-20060625004942-x2lfaib8ra707a8p-1
  fileids.py                     fileids.py-20060714013623-u5iiyqqnko11grcf-1
  mapping.py                     mapping.py-20080128201303-6cp01phc0dmc0kiv-1
  mapping2.py                    mapping.py-20080904055555-lw057kjuadn0r2ma-2
  mapping3/__init__.py           __init__.py-20080502174630-9324zh25kka98vlw-1
  mapping4.py                    mapping4.py-20080827182338-y4xzpsf43vyiwcir-1
  tests/mapping3/__init__.py     __init__.py-20080831152358-oy04n53cpnh64aj6-1
  tests/mapping_implementations/test_repository.py test_repository.py-20080902013845-ity7d1ymye69sobm-2
  tests/test_fetch.py            test_fetch.py-20070624210302-luvgwjmlfysk5qeq-1
  tests/test_fileids.py          test_fileids.py-20060622131341-19gyrlgqy8yl2od5-1
  tests/test_tree.py             test_tree.py-20070103204350-pr8nupes7e5sd2wr-1
  tests/test_upgrade.py          test_upgrade.py-20070106170128-64zt3eqggg4tng1c-1
  tests/test_workingtree.py      test_workingtree.py-20060622191524-0di7bc3q1ckdbybb-1
=== modified file 'fetch.py'
--- a/fetch.py	2009-01-15 04:21:45 +0000
+++ b/fetch.py	2009-01-16 22:22:09 +0000
@@ -555,8 +555,7 @@
         if self.old_inventory.root is None:
             # First time the root is set
             old_file_id = None
-            file_id = self.mapping.generate_file_id(self.revmeta.uuid, 
-                self.revmeta.revnum, self.revmeta.branch_path, u"")
+            file_id = self.mapping.generate_file_id(self.revmeta.get_foreign_revid(), u"")
             file_parents = []
         else:
             # Just inherit file id from previous 
@@ -627,8 +626,7 @@
         ret = self._get_map_id(new_path)
         if ret is not None:
             return ret
-        return self.mapping.generate_file_id(self.revmeta.uuid, self.revmeta.revnum, 
-                                             self.revmeta.branch_path, new_path)
+        return self.mapping.generate_file_id(self.revmeta.get_foreign_revid(), new_path)
 
     def _get_text_revid(self, path):
         if self._text_revids is None:

=== modified file 'fileids.py'
--- a/fileids.py	2009-01-15 01:28:44 +0000
+++ b/fileids.py	2009-01-16 22:22:09 +0000
@@ -146,24 +146,25 @@
             get_children = None
 
         def new_file_id(x):
-            return mapping.generate_file_id(revmeta.uuid, revmeta.revnum, revmeta.branch_path, x)
+            return mapping.generate_file_id(revmeta.get_foreign_revid(), x)
          
         idmap = self.apply_changes_fn(new_file_id, changes, get_children)
         idmap.update(renames)
         return (idmap, changes)
 
-    def get_map(self, (uuid, branch, revnum), mapping):
+    def get_map(self, foreign_revid, mapping):
         """Make sure the map is up to date until revnum."""
+        (uuid, branch, revnum) = foreign_revid
         # First, find the last cached map
         if revnum == 0:
             assert branch == ""
-            return {"": (mapping.generate_file_id(uuid, 0, "", u""), 
+            return {"": (mapping.generate_file_id(foreign_revid, u""), 
               self.repos.generate_revision_id(0, "", mapping))}
 
         todo = []
         next_parent_revs = []
         if mapping.is_branch(""):
-            map = {u"": (mapping.generate_file_id(uuid, 0, "", u""), NULL_REVISION)}
+            map = {u"": (mapping.generate_file_id((uuid, "", 0), u""), NULL_REVISION)}
         else:
             map = {}
 
@@ -287,7 +288,7 @@
 
         if len(next_parent_revs) == 0:
             if mapping.is_branch(""):
-                map = {u"": (mapping.generate_file_id(uuid, 0, "", u""), NULL_REVISION)}
+                map = {u"": (mapping.generate_file_id((uuid, "", 0), u""), NULL_REVISION)}
             else:
                 map = {}
 

=== modified file 'mapping.py'
--- a/mapping.py	2009-01-15 01:28:44 +0000
+++ b/mapping.py	2009-01-16 22:22:09 +0000
@@ -368,7 +368,7 @@
         return self.is_branch(path) or self.is_tag(path)
 
     @staticmethod
-    def generate_file_id(uuid, revnum, branch, inv_path):
+    def generate_file_id((uuid, branch, revnum), inv_path):
         """Create a file id identifying a Subversion file.
 
         :param uuid: UUID of the repository

=== modified file 'mapping2.py'
--- a/mapping2.py	2009-01-15 01:28:44 +0000
+++ b/mapping2.py	2009-01-16 22:22:09 +0000
@@ -80,10 +80,10 @@
     def import_revision_fileprops(self, fileprops, rev):
         return True
 
-    def generate_file_id(self, uuid, revnum, branch, inv_path):
+    def generate_file_id(self, foreign_revid, inv_path):
         if inv_path == u"":
             return ROOT_ID
-        return "%s-%s" % (self.revision_id_foreign_to_bzr((uuid, branch, revnum)), escape_svn_path(inv_path.encode("utf-8")))
+        return "%s-%s" % (self.revision_id_foreign_to_bzr(foreign_revid), escape_svn_path(inv_path.encode("utf-8")))
 
     def import_fileid_map_fileprops(self, fileprops):
         return {}

=== modified file 'mapping3/__init__.py'
--- a/mapping3/__init__.py	2009-01-15 01:28:44 +0000
+++ b/mapping3/__init__.py	2009-01-16 22:22:09 +0000
@@ -227,7 +227,7 @@
     def __repr__(self):
         return "%s(%r)" % (self.__class__.__name__, self.scheme)
 
-    def generate_file_id(self, uuid, revnum, branch, inv_path):
+    def generate_file_id(self, (uuid, branch, revnum), inv_path):
         assert isinstance(uuid, str)
         assert isinstance(revnum, int)
         assert isinstance(branch, str)

=== modified file 'mapping4.py'
--- a/mapping4.py	2009-01-15 01:28:44 +0000
+++ b/mapping4.py	2009-01-16 22:22:09 +0000
@@ -78,7 +78,7 @@
     def revision_id_foreign_to_bzr(self, (uuid, path, revnum)):
         return "svn-v4:%s:%s:%d" % (uuid, path, revnum)
 
-    def generate_file_id(self, uuid, revnum, branch, inv_path):
+    def generate_file_id(self, (uuid, branch, revnum), inv_path):
         return "%d@%s:%s" % (revnum, uuid, mapping.escape_svn_path("%s/%s" % (branch, inv_path.encode("utf-8"))))
 
     def is_branch(self, branch_path):

=== modified file 'tests/mapping3/__init__.py'
--- a/tests/mapping3/__init__.py	2009-01-15 01:28:44 +0000
+++ b/tests/mapping3/__init__.py	2009-01-16 22:22:09 +0000
@@ -64,40 +64,40 @@
                      "svn-v3-undefined:uuid:bp%2Fdata:4"))
 
     def test_generate_file_id_root(self):
-        self.assertEqual("2 at uuid:bp:", self.mapping.generate_file_id("uuid", 2, "bp", u""))
+        self.assertEqual("2 at uuid:bp:", self.mapping.generate_file_id(("uuid", "bp", 2), u""))
 
     def test_generate_file_id_path(self):
         self.assertEqual("2 at uuid:bp:mypath", 
-                self.mapping.generate_file_id("uuid", 2, "bp", u"mypath"))
+                self.mapping.generate_file_id(("uuid", "bp", 2), u"mypath"))
 
     def test_generate_file_id_long(self):
         dir = "this/is/a" + ("/very"*40) + "/long/path/"
         self.assertEqual("2 at uuid:bp;" + sha1(dir+"filename"), 
-                self.mapping.generate_file_id("uuid", 2, "bp", dir+u"filename"))
+                self.mapping.generate_file_id(("uuid", "bp", 2), dir+u"filename"))
 
     def test_generate_file_id_long_nordic(self):
         dir = "this/is/a" + ("/very"*40) + "/long/path/"
         self.assertEqual("2 at uuid:bp;" + sha1((dir+u"filename\x2c\x8a").encode('utf-8')), 
-                self.mapping.generate_file_id("uuid", 2, "bp", dir+u"filename\x2c\x8a"))
+                self.mapping.generate_file_id(("uuid", "bp", 2), dir+u"filename\x2c\x8a"))
 
     def test_generate_file_id_special_char(self):
         self.assertEqual("2 at uuid:bp:mypath%2C%C2%8A",
-                         self.mapping.generate_file_id("uuid", 2, "bp", u"mypath\x2c\x8a"))
+                         self.mapping.generate_file_id(("uuid", "bp", 2), u"mypath\x2c\x8a"))
 
     def test_generate_file_id_spaces(self):
-        self.assertFalse(" " in self.mapping.generate_file_id("uuid", 1, "b p", u"my path"))
+        self.assertFalse(" " in self.mapping.generate_file_id(("uuid", "b p", 1), u"my path"))
 
     def test_generate_svn_file_id(self):
         self.assertEqual("2 at uuid:bp:path", 
-                self.mapping.generate_file_id("uuid", 2, "bp", u"path"))
+                self.mapping.generate_file_id(("uuid", "bp", 3), u"path"))
 
     def test_generate_svn_file_id_nordic(self):
         self.assertEqual("2 at uuid:bp:%C3%A6%C3%B8%C3%A5", 
-                self.mapping.generate_file_id("uuid", 2, "bp", u"\xe6\xf8\xe5"))
+                self.mapping.generate_file_id(("uuid", "bp", 2), u"\xe6\xf8\xe5"))
 
     def test_generate_svn_file_id_nordic_branch(self):
         self.assertEqual("2 at uuid:%C3%A6:%C3%A6%C3%B8%C3%A5", 
-                self.mapping.generate_file_id("uuid", 2, u"\xe6".encode('utf-8'), u"\xe6\xf8\xe5"))
+                self.mapping.generate_file_id(("uuid", u"\xe6".encode('utf-8'), 2), u"\xe6\xf8\xe5"))
 
 
 class RepositoryTests(SubversionTestCase):

=== modified file 'tests/mapping_implementations/test_repository.py'
--- a/tests/mapping_implementations/test_repository.py	2009-01-15 01:28:44 +0000
+++ b/tests/mapping_implementations/test_repository.py	2009-01-16 22:22:09 +0000
@@ -90,7 +90,7 @@
         repos = Repository.open(repos_url)
         mapping = repos.get_mapping()
         rm_provider = repos._revmeta_provider
-        self.assertEqual({u"": (mapping.generate_file_id(repos.uuid, 0, "", u""), mapping.revision_id_foreign_to_bzr((repos.uuid, "", 0)))}, repos.get_fileid_map(rm_provider.get_revision("", 0), mapping))
+        self.assertEqual({u"": (mapping.generate_file_id((repos.uuid, "", 0), u""), mapping.revision_id_foreign_to_bzr((repos.uuid, "", 0)))}, repos.get_fileid_map(rm_provider.get_revision("", 0), mapping))
 
     def test_add_revision(self):
         repos_url = self.make_repository("a")
@@ -1002,7 +1002,7 @@
         ch = list(b.repository.item_keys_introduced_by([b.last_revision()]))
         revid = b.last_revision()
         self.assertEquals([
-            ('file', mapping.generate_file_id(b.repository.uuid, 1, "", u"foo"), set([revid])),
+            ('file', mapping.generate_file_id((b.repository.uuid, "", 1), u"foo"), set([revid])),
             ('inventory', None, [revid]),
             ('signatures', None, set([revid])),
             ('revisions', None, [revid])], ch)

=== modified file 'tests/test_fetch.py'
--- a/tests/test_fetch.py	2009-01-15 01:28:44 +0000
+++ b/tests/test_fetch.py	2009-01-16 22:22:09 +0000
@@ -347,7 +347,7 @@
         repo.fetch(oldrepos, last_rev)
         self.assertEquals(repo.get_inventory(last_rev).root.file_id,
             oldrepos.get_mapping().generate_file_id(
-                oldrepos.uuid, 1, "branch1", u""))
+                (oldrepos.uuid, "branch1", 1), u""))
 
 
     def test_fetch_replace(self):
@@ -1491,7 +1491,7 @@
         tree = repos.revision_tree(
              repos.generate_revision_id(3, "branches/foobranch", mapping))
 
-        self.assertEqual(mapping.generate_file_id(repos.uuid, 1, "trunk", u""), tree.inventory.root.file_id)
+        self.assertEqual(mapping.generate_file_id((repos.uuid, "trunk", 1), u""), tree.inventory.root.file_id)
 
     def test_fetch_odd(self):
         repos_url = self.make_repository('d')

=== modified file 'tests/test_fileids.py'
--- a/tests/test_fileids.py	2009-01-15 01:28:44 +0000
+++ b/tests/test_fileids.py	2009-01-16 22:22:09 +0000
@@ -183,7 +183,7 @@
 
 class TestFileMapping(TestCase):
     def setUp(self):
-        self.generate_file_id = lambda uuid, revnum, bp, ip: "%d@%s:%s:%s" % (revnum, uuid, bp, ip)
+        self.generate_file_id = lambda (uuid, bp, revnum), ip: "%d@%s:%s:%s" % (revnum, uuid, bp, ip)
 
     def apply_mappings(self, mappings, find_children=None, renames={}):
         map = {}
@@ -194,7 +194,7 @@
             def new_file_id(x):
                 if renames.has_key(r) and renames[r].has_key(x):
                     return renames[r][x]
-                return self.generate_file_id("uuid", revnum, branchpath, x)
+                return self.generate_file_id(("uuid", branchpath, revnum), x)
             revmap = simple_apply_changes(new_file_id, mappings[r], find_children)
             map.update(dict([(x, (revmap[x], r)) for x in revmap]))
         return map
@@ -276,7 +276,7 @@
         self.repos.set_layout(RootLayout())
         self.mapping = self.repos.get_mapping()
         rm_provider = self.repos._revmeta_provider
-        self.assertEqual({"": (self.mapping.generate_file_id(self.repos.uuid, 0, "", u""), self.repos.generate_revision_id(0, "", self.mapping))}, 
+        self.assertEqual({"": (self.mapping.generate_file_id((self.repos.uuid, "", 0), u""), self.repos.generate_revision_id(0, "", self.mapping))}, 
                          self.repos.get_fileid_map(rm_provider.get_revision("", 0), self.mapping))
 
     def test_empty_trunk(self):
@@ -287,7 +287,7 @@
         dc.close()
 
         rm_provider = self.repos._revmeta_provider
-        self.assertEqual({"": (self.mapping.generate_file_id(self.repos.uuid, 1, "trunk", u""), self.repos.generate_revision_id(1, "trunk", self.mapping))}, 
+        self.assertEqual({"": (self.mapping.generate_file_id((self.repos.uuid, "trunk", 1), u""), self.repos.generate_revision_id(1, "trunk", self.mapping))}, 
                 self.repos.get_fileid_map(rm_provider.get_revision("trunk", 1), self.mapping))
 
     def test_change_parent(self):
@@ -305,9 +305,9 @@
         rm_provider = self.repos._revmeta_provider
 
         self.assertEqual({
-            "": (self.mapping.generate_file_id(self.repos.uuid, 1, "trunk", u""), 
+            "": (self.mapping.generate_file_id((self.repos.uuid, "trunk", 1), u""), 
                  self.repos.generate_revision_id(1, "trunk", self.mapping)), 
-            "file": (self.mapping.generate_file_id(self.repos.uuid, 2, "trunk", u"file"), 
+            "file": (self.mapping.generate_file_id((self.repos.uuid, "trunk", 2), u"file"), 
                      self.repos.generate_revision_id(2, "trunk", self.mapping))}, 
             self.repos.get_fileid_map(rm_provider.get_revision("trunk", 2), self.mapping))
 
@@ -329,9 +329,9 @@
         rm_provider = self.repos._revmeta_provider
 
         self.assertEqual({
-            "": (self.mapping.generate_file_id(self.repos.uuid, 1, "trunk", u""), 
+            "": (self.mapping.generate_file_id((self.repos.uuid, "trunk", 1), u""), 
                  self.repos.generate_revision_id(1, "trunk", self.mapping)), 
-            "file": (self.mapping.generate_file_id(self.repos.uuid, 2, "trunk", u"file"), 
+            "file": (self.mapping.generate_file_id((self.repos.uuid, "trunk", 2), u"file"), 
                      self.repos.generate_revision_id(3, "trunk", self.mapping))}, 
             self.repos.get_fileid_map(rm_provider.get_revision("trunk", 3), self.mapping))
 
@@ -356,11 +356,11 @@
 
         rm_provider = self.repos._revmeta_provider
         self.assertEqual({
-            "": (self.mapping.generate_file_id(self.repos.uuid, 1, "trunk", u""), 
+            "": (self.mapping.generate_file_id((self.repos.uuid, "trunk", 1), u""), 
                  self.repos.generate_revision_id(1, "trunk", self.mapping)), 
-            "bar": (self.mapping.generate_file_id(self.repos.uuid, 2, "trunk", u"bar"), 
+            "bar": (self.mapping.generate_file_id((self.repos.uuid, "trunk", 2), u"bar"), 
                     self.repos.generate_revision_id(2, "trunk", self.mapping)), 
-            "file": (self.mapping.generate_file_id(self.repos.uuid, 2, "trunk", u"file"), 
+            "file": (self.mapping.generate_file_id((self.repos.uuid, "trunk", 2), u"file"), 
                      self.repos.generate_revision_id(3, "trunk", self.mapping))}, 
             self.repos.get_fileid_map(rm_provider.get_revision("trunk", 3), self.mapping))
 
@@ -385,11 +385,11 @@
         rm_provider = self.repos._revmeta_provider
 
         self.assertEqual({
-            "": (self.mapping.generate_file_id(self.repos.uuid, 1, "trunk", u""), 
+            "": (self.mapping.generate_file_id((self.repos.uuid, "trunk", 1), u""), 
                  self.repos.generate_revision_id(1, "trunk", self.mapping)), 
-            "bar": (self.mapping.generate_file_id(self.repos.uuid, 3, "trunk", u"bar"), 
+            "bar": (self.mapping.generate_file_id((self.repos.uuid, "trunk", 3), u"bar"), 
                     self.repos.generate_revision_id(3, "trunk", self.mapping)), 
-            "file": (self.mapping.generate_file_id(self.repos.uuid, 2, "trunk", u"file"), 
+            "file": (self.mapping.generate_file_id((self.repos.uuid, "trunk", 2), u"file"), 
                      self.repos.generate_revision_id(2, "trunk", self.mapping))}, self.repos.get_fileid_map(rm_provider.get_revision("trunk", 3), self.mapping))
 
     def test_copy_nested_modified(self):
@@ -415,15 +415,15 @@
         rm_provider = self.repos._revmeta_provider
 
         self.assertEqual({
-          "": (self.mapping.generate_file_id(self.repos.uuid, 1, "trunk", u""), 
+          "": (self.mapping.generate_file_id((self.repos.uuid, "trunk", 1), u""), 
             self.repos.generate_revision_id(1, "trunk", self.mapping)), 
-          "dir": (self.mapping.generate_file_id(self.repos.uuid, 2, "trunk", u"dir"), 
+          "dir": (self.mapping.generate_file_id((self.repos.uuid, "trunk", 2), u"dir"), 
                 self.repos.generate_revision_id(2, "trunk", self.mapping)),
-          "dir/file": (self.mapping.generate_file_id(self.repos.uuid, 2, "trunk", u"dir/file"), 
+          "dir/file": (self.mapping.generate_file_id((self.repos.uuid, "trunk", 2), u"dir/file"), 
               self.repos.generate_revision_id(2, "trunk", self.mapping)),
-          "bar": (self.mapping.generate_file_id(self.repos.uuid, 3, "trunk", u"bar"), 
+          "bar": (self.mapping.generate_file_id((self.repos.uuid, "trunk", 3), u"bar"), 
               self.repos.generate_revision_id(3, "trunk", self.mapping)),
-          "bar/file": (self.mapping.generate_file_id(self.repos.uuid, 3, "trunk", u"bar/file"), 
+          "bar/file": (self.mapping.generate_file_id((self.repos.uuid, "trunk", 3), u"bar/file"), 
               self.repos.generate_revision_id(3, "trunk", self.mapping))},
             self.repos.get_fileid_map(rm_provider.get_revision("trunk", 3), self.mapping))
 

=== modified file 'tests/test_tree.py'
--- a/tests/test_tree.py	2009-01-15 01:28:44 +0000
+++ b/tests/test_tree.py	2009-01-16 22:22:09 +0000
@@ -184,7 +184,7 @@
                 mapping.revision_id_foreign_to_bzr((repos.uuid, "", 1)), 
                 None, repos_url)
         self.assertEqual(TreeReference(
-            mapping.generate_file_id(repos.uuid, 0, "", u""),
+            mapping.generate_file_id((repos.uuid, "", 0), u""),
              'bla', inv.path2id('blie'), 
              revision=mapping.revision_id_foreign_to_bzr((repos.uuid, "", 1))), 
              inv[inv.path2id('blie/bla')])
@@ -199,7 +199,7 @@
             repos_url)
 
         self.assertEqual(TreeReference(
-            mapping.generate_file_id(repos.uuid, 0, "", u""),
+            mapping.generate_file_id((repos.uuid, "", 0), u""),
              'bla', 'blabloe', 
              revision=mapping.revision_id_foreign_to_bzr((repos.uuid, "", 1))), 
              inv[inv.path2id('bla')])
@@ -211,7 +211,7 @@
         mapping = repos.get_mapping()
         inventory_add_external(inv, 'blabloe', 'bla', 
             mapping.revision_id_foreign_to_bzr((repos.uuid, "", 1)), 0, repos_url)
-        expected_ie = TreeReference(mapping.generate_file_id(repos.uuid, 0, "", u""),
+        expected_ie = TreeReference(mapping.generate_file_id((repos.uuid, "", 0), u""),
             'bla', 'blabloe', 
             revision=mapping.revision_id_foreign_to_bzr((repos.uuid, "", 1)),
             reference_revision=NULL_REVISION)

=== modified file 'tests/test_upgrade.py'
--- a/tests/test_upgrade.py	2009-01-15 01:28:44 +0000
+++ b/tests/test_upgrade.py	2009-01-16 22:22:09 +0000
@@ -143,7 +143,7 @@
         upgrade_repository(newrepos, oldrepos, new_mapping=mapping, mapping_registry=mapping_registry, allow_changes=True)
         tree = newrepos.revision_tree("customrev%s-upgrade" % mapping.upgrade_suffix)
         self.assertEqual("specificid", tree.inventory.path2id("a"))
-        self.assertEqual(mapping.generate_file_id(oldrepos.uuid, 1, "", u"a"), 
+        self.assertEqual(mapping.generate_file_id((oldrepos.uuid, "", 1), u"a"), 
                          tree.inventory.path2id("b"))
 
     @skip_no_rebase

=== modified file 'tests/test_workingtree.py'
--- a/tests/test_workingtree.py	2009-01-15 01:28:44 +0000
+++ b/tests/test_workingtree.py	2009-01-16 22:22:09 +0000
@@ -317,7 +317,7 @@
         self.assertEqual(wt.branch.generate_revision_id(0), 
                          wt.basis_tree().inventory.revision_id)
         inv = Inventory()
-        root_id = wt.branch.repository.get_mapping().generate_file_id(wt.branch.repository.uuid, 0, "", u"")
+        root_id = wt.branch.repository.get_mapping().generate_file_id((wt.branch.repository.uuid, "", 0), u"")
         inv.revision_id = wt.branch.generate_revision_id(0)
         inv.add_path('', 'directory', root_id).revision = inv.revision_id
                               




More information about the bazaar-commits mailing list