Rev 1705: Fix bugs, optimize revprop upgrades. in file:///data/jelmer/bzr-svn/trunk/

Jelmer Vernooij jelmer at samba.org
Fri Aug 29 21:11:42 BST 2008


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

------------------------------------------------------------
revno: 1705
revision-id: jelmer at samba.org-20080829201140-xbe95a2wvteujiir
parent: jelmer at samba.org-20080829200311-vz7f7enoxqc2kxvl
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: trunk
timestamp: Fri 2008-08-29 22:11:40 +0200
message:
  Fix bugs, optimize revprop upgrades.
modified:
  commit.py                      commit.py-20060607190346-qvq128wgfubhhgm2-1
  mapping.py                     mapping.py-20080128201303-6cp01phc0dmc0kiv-1
  upgrade.py                     upgrade.py-20070106192108-0rakplee2lzah4gs-1
=== modified file 'commit.py'
--- a/commit.py	2008-08-29 20:03:11 +0000
+++ b/commit.py	2008-08-29 20:11:40 +0000
@@ -26,7 +26,6 @@
 from bzrlib.trace import mutter, warning
 
 from cStringIO import StringIO
-from copy import copy
 
 from bzrlib.plugins.svn import core, properties
 from bzrlib.plugins.svn.core import SubversionException
@@ -188,24 +187,25 @@
         self.visit_dirs = set()
         self.modified_files = {}
         if self.base_revid == NULL_REVISION:
-            base_branch_props = {}
+            self._base_branch_props = {}
         else:
-            base_branch_props = lazy_dict({}, self.repository.branchprop_list.get_properties, self.base_path, self.base_revnum)
+            self._base_branch_props = lazy_dict({}, self.repository.branchprop_list.get_properties, self.base_path, self.base_revnum)
         self.supports_custom_revprops = self.repository.transport.has_capability("commit-revprops")
         if self.supports_custom_revprops:
             self._svn_revprops = {}
         else:
-            self._svnprops = copy(base_branch_props)
+            self._svn_revprops = None
+        self._svnprops = dict(self._base_branch_props.items())
         self.base_mapping.export_revision(
             self.branch.get_branch_path(), timestamp, timezone, committer, revprops, 
             revision_id, self.base_revno+1, merges, self._svn_revprops, self._svnprops)
 
         if len(merges) > 0:
-            new_svk_merges = update_svk_features(base_branch_props.get(SVN_PROP_SVK_MERGE, ""), merges)
+            new_svk_merges = update_svk_features(self._base_branch_props.get(SVN_PROP_SVK_MERGE, ""), merges)
             if new_svk_merges is not None:
                 self._svnprops[SVN_PROP_SVK_MERGE] = new_svk_merges
 
-            new_mergeinfo = update_mergeinfo(self.repository, graph, base_branch_props.get(properties.PROP_MERGEINFO, ""), self.base_revid, merges)
+            new_mergeinfo = update_mergeinfo(self.repository, graph, self._base_branch_props.get(properties.PROP_MERGEINFO, ""), self.base_revid, merges)
             if new_mergeinfo is not None:
                 self._svnprops[properties.PROP_MERGEINFO] = new_mergeinfo
 
@@ -530,6 +530,8 @@
                 # Set all the revprops
                 if self.push_metadata:
                     for prop, value in self._svnprops.items():
+                        if value == self._base_branch_props.get(prop):
+                            continue
                         if not properties.is_valid_property_name(prop):
                             warning("Setting property %r with invalid characters in name", prop)
                         assert isinstance(value, str)

=== modified file 'mapping.py'
--- a/mapping.py	2008-08-29 20:03:11 +0000
+++ b/mapping.py	2008-08-29 20:11:40 +0000
@@ -550,7 +550,6 @@
     def export_revision(self, branch_root, timestamp, timezone, committer, revprops, revision_id, revno, merges, svn_revprops, svn_fileprops):
 
         # Keep track of what Subversion properties to set later on
-        svn_fileprops = {}
         svn_fileprops[SVN_PROP_BZR_REVISION_INFO] = generate_revision_metadata(
             timestamp, timezone, committer, revprops)
 
@@ -710,7 +709,7 @@
     if SVN_REVPROP_BZR_MAPPING_VERSION in revprops:
         try:
             cls = mapping_registry.get(revprops[SVN_REVPROP_BZR_MAPPING_VERSION])
-            ret = BzrSvnMapping.from_revprops(revprops)
+            ret = cls.from_revprops(revprops)
         except KeyError:
             pass
         except NotImplementedError:

=== modified file 'upgrade.py'
--- a/upgrade.py	2008-08-29 20:03:11 +0000
+++ b/upgrade.py	2008-08-29 20:11:40 +0000
@@ -232,6 +232,9 @@
     logcache = getattr(repository._log, "cache", None)
     try:
         for (paths, revnum, revprops) in repository._log.iter_changes(None, to_revnum, from_revnum, pb=pb):
+            if revnum == 0:
+                # Never a bzr-svn revision
+                continue
             # Find the root path of the change
             bp = changes.changes_root(paths.keys())
             # FIXME: Check revprops for branch root




More information about the bazaar-commits mailing list