Rev 1706: More upgrade improvements. in file:///data/jelmer/bzr-svn/trunk/

Jelmer Vernooij jelmer at samba.org
Fri Aug 29 21:46:10 BST 2008


At file:///data/jelmer/bzr-svn/trunk/

------------------------------------------------------------
revno: 1706
revision-id: jelmer at samba.org-20080829204608-znabytduhk7cr278
parent: jelmer at samba.org-20080829201140-xbe95a2wvteujiir
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: trunk
timestamp: Fri 2008-08-29 22:46:08 +0200
message:
  More upgrade improvements.
modified:
  logwalker.py                   logwalker.py-20060621215743-c13fhfnyzh1xzwh2-1
  upgrade.py                     upgrade.py-20070106192108-0rakplee2lzah4gs-1
=== modified file 'logwalker.py'
--- a/logwalker.py	2008-08-26 12:13:30 +0000
+++ b/logwalker.py	2008-08-29 20:46:08 +0000
@@ -204,6 +204,10 @@
         assert not path.startswith("/")
         self.cachedb.execute("replace into changed_path (rev, path, action, copyfrom_path, copyfrom_rev) values (?, ?, ?, ?, ?)", (rev, path, action, copyfrom_path, copyfrom_rev))
 
+    def drop_revprops(self, revnum):
+        self.cachedb.execute("update revinfo set all_revprops = 0 where rev = ?", (revnum,))
+        self.cachedb.commit()
+
     def get_revprops(self, revnum):
         """Retrieve all the cached revision properties.
 
@@ -394,8 +398,7 @@
         return self.cache.get_change(path, revnum)
 
     def revprop_list(self, revnum):
-        self.mutter("revprop list: %r", revnum)
-
+        self.mutter('revprop list: %d' % revnum)
         self.fetch_revisions(revnum)
 
         if revnum > 0:

=== modified file 'upgrade.py'
--- a/upgrade.py	2008-08-29 20:11:40 +0000
+++ b/upgrade.py	2008-08-29 20:46:08 +0000
@@ -21,7 +21,7 @@
 from bzrlib.trace import info
 
 import itertools
-from bzrlib.plugins.svn import changes, logwalker, mapping
+from bzrlib.plugins.svn import changes, logwalker, mapping, properties
 from bzrlib.plugins.svn.mapping import parse_revision_id
 from bzrlib.plugins.svn.repository import RevisionMetadata
 
@@ -237,7 +237,6 @@
                 continue
             # Find the root path of the change
             bp = changes.changes_root(paths.keys())
-            # FIXME: Check revprops for branch root
             if bp is None:
                 fileprops = {}
             else:
@@ -255,12 +254,13 @@
                 new_revprops, None)
             new_mapping.export_text_parents(old_mapping.import_text_parents(revprops, fileprops),
                 new_revprops, None)
-            # new_mapping.export_message
-            for k, v in new_revprops.items():
-                if v != revprops.get(k):
-                    repository.transport.change_rev_prop(revnum, k, v)
+            if rev.message != revprops[properties.PROP_REVISION_LOG]:
+                new_mapping.export_message(rev.message)
+            changed_revprops = dict(filter(lambda (k,v): revprops.get(k) != v, new_revprops.items()))
+            if logcache is not None:
+                logcache.drop_revprops()
+            for k, v in changed_revprops.items():
+                repository.transport.change_rev_prop(revnum, k, v)
             # Might as well update the cache while we're at it
-            if logcache is not None:
-                logcache.insert_revprops(revnum, new_revprops)
     finally:
         pb.finished()




More information about the bazaar-commits mailing list