Rev 441: Fix custom revision ids for per-file revision ids. in file:///home/jelmer/bzr-svn/customrevids/

Jelmer Vernooij jelmer at samba.org
Fri May 18 13:46:12 BST 2007


At file:///home/jelmer/bzr-svn/customrevids/

------------------------------------------------------------
revno: 441
revision-id: jelmer at samba.org-20070518124612-sisoj3464r5wteu1
parent: jelmer at samba.org-20070518122257-v826cvviwuo5xq8b
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: customrevids
timestamp: Fri 2007-05-18 13:46:12 +0100
message:
  Fix custom revision ids for per-file revision ids.
modified:
  fetch.py                       fetch.py-20060625004942-x2lfaib8ra707a8p-1
  fileids.py                     fileids.py-20060714013623-u5iiyqqnko11grcf-1
  tests/test_commit.py           test_commit.py-20060624213521-l5kcufywkh9mnilk-1
  tests/test_push.py             test_push.py-20070201165715-g2ievcdfqi33wqsy-1
=== modified file 'fetch.py'
--- a/fetch.py	2007-05-17 19:04:30 +0000
+++ b/fetch.py	2007-05-18 12:46:12 +0000
@@ -96,7 +96,7 @@
     def open_root(self, base_revnum, baton):
         if self.old_inventory.root is None:
             # First time the root is set
-            file_id = generate_file_id(self.revid, "")
+            file_id = generate_file_id(self.source, self.revid, "")
             self.dir_baserev[file_id] = []
         else:
             assert self.old_inventory.root.revision is not None
@@ -125,7 +125,7 @@
     def _get_new_id(self, parent_id, new_path):
         if self.id_map.has_key(new_path):
             return self.id_map[new_path]
-        return generate_file_id(self.revid, new_path)
+        return generate_file_id(self.source, self.revid, new_path)
 
     def delete_entry(self, path, revnum, parent_id, pool):
         path = path.decode("utf-8")

=== modified file 'fileids.py'
--- a/fileids.py	2007-05-17 19:04:30 +0000
+++ b/fileids.py	2007-05-18 12:46:12 +0000
@@ -22,8 +22,7 @@
 
 import sha
 
-from revids import (generate_svn_revision_id, parse_svn_revision_id, 
-                    escape_svn_path)
+from revids import escape_svn_path
 
 def generate_svn_file_id(uuid, revnum, branch, path):
     """Create a file id identifying a Subversion file.
@@ -42,12 +41,12 @@
     return ret
 
 
-def generate_file_id(revid, path):
-    (uuid, branch, revnum) = parse_svn_revision_id(revid)
-    return generate_svn_file_id(uuid, revnum, branch, path)
-
-
-def get_local_changes(paths, scheme, uuid, get_children=None):
+def generate_file_id(repos, revid, path):
+    (branch, revnum) = repos.lookup_revision_id(revid)
+    return generate_svn_file_id(repos.uuid, revnum, branch, path)
+
+
+def get_local_changes(paths, scheme, generate_revid, get_children=None):
     new_paths = {}
     names = paths.keys()
     names.sort()
@@ -62,8 +61,7 @@
                 if (crp == "" and new_p == ""):
                     data = ('M', None, None)
                 else:
-                    data = (data[0], crp, generate_svn_revision_id(
-                        uuid, data[2], cbp))
+                    data = (data[0], crp, generate_revid(data[2], cbp))
             except NotBranchError:
                 # Copied from outside of a known branch
                 # Make it look like the files were added in this revision
@@ -117,7 +115,7 @@
         :param global_changes: Dict with global changes that happened
         """
         changes = get_local_changes(global_changes, self.repos.scheme,
-                                        uuid, find_children)
+                    self.repos.generate_revision_id, find_children)
         if find_children is not None:
             def get_children(path, revid):
                 (bp, revnum) = self.repos.lookup_revision_id(revid)
@@ -126,12 +124,12 @@
         else:
             get_children = None
 
-        revid = generate_svn_revision_id(uuid, revnum, branch)
+        revid = self.repos.generate_revision_id(revnum, branch)
 
         def new_file_id(x):
             if renames.has_key(x):
                 return renames[x]
-            return generate_file_id(revid, x)
+            return generate_file_id(self.repos, revid, x)
          
         return self._apply_changes(new_file_id, changes, get_children)
 
@@ -147,7 +145,7 @@
 
         # No history -> empty map
         for (bp, paths, rev) in self.repos.follow_branch_history(branch, revnum):
-            revid = generate_svn_revision_id(uuid, rev, bp)
+            revid = self.repos.generate_revision_id(rev, bp)
             map = self.load(revid)
             if map != {}:
                 # found the nearest cached map
@@ -188,7 +186,7 @@
                 def new_file_id(x):
                     if renames.has_key(x):
                         return renames[x]
-                    return generate_file_id(revid, x)
+                    return generate_file_id(self.repos, revid, x)
                 
                 revmap = self._apply_changes(new_file_id, changes, find_children)
                 for p in changes:

=== modified file 'tests/test_commit.py'
--- a/tests/test_commit.py	2007-05-18 12:22:57 +0000
+++ b/tests/test_commit.py	2007-05-18 12:46:12 +0000
@@ -224,12 +224,10 @@
 
         repos = self.olddir.find_repository()
         inv = repos.get_inventory(repos.generate_revision_id(2, ""))
-        import pdb
-        pdb.set_trace()
         self.assertEqual(repos.generate_revision_id(2, ""),
                          inv[inv.path2id('foo/bla')].revision)
-        self.assertTrue(wt.branch.last_revision() in 
-          repos.revision_parents(repos.generate_revision_id(2, "")))
+        self.assertEqual(wt.branch.last_revision(),
+          repos.generate_revision_id(2, ""))
         self.assertEqual(wt.branch.last_revision(),
                         self.olddir.open_branch().last_revision())
         self.assertEqual("other data", 

=== modified file 'tests/test_push.py'
--- a/tests/test_push.py	2007-05-18 12:22:57 +0000
+++ b/tests/test_push.py	2007-05-18 12:46:12 +0000
@@ -87,8 +87,8 @@
         inv = repos.get_inventory(repos.generate_revision_id(2, ""))
         self.assertEqual(repos.generate_revision_id(2, ""),
                          inv[inv.path2id('foo/bla')].revision)
-        self.assertTrue(wt.branch.last_revision() in 
-          repos.revision_parents(repos.generate_revision_id(2, "")))
+        self.assertEqual(wt.branch.last_revision(),
+          repos.generate_revision_id(2, ""))
         self.assertEqual(repos.generate_revision_id(2, ""),
                         self.svndir.open_branch().last_revision())
         self.assertEqual("other data", 




More information about the bazaar-commits mailing list