Rev 1741: Fix knit corruption because text revisions weren't stored correctly. in http://people.samba.org/bzr/jelmer/bzr-svn/trunk

Jelmer Vernooij jelmer at samba.org
Sat Nov 8 21:11:36 GMT 2008


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

------------------------------------------------------------
revno: 1741
revision-id: jelmer at samba.org-20081108211128-azi6ujhluh03qe7w
parent: jelmer at samba.org-20081108205443-bljnvkxv54uoin8z
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Sat 2008-11-08 22:11:28 +0100
message:
  Fix knit corruption because text revisions weren't stored correctly.
modified:
  NEWS                           news-20061231030336-h9fhq245ie0de8bs-1
  versionedfiles.py              versionedfiles.py-20080626134117-j8g0ntz1pj228iox-1
=== modified file 'NEWS'
--- a/NEWS	2008-11-08 18:11:39 +0000
+++ b/NEWS	2008-11-08 21:11:28 +0000
@@ -8,6 +8,8 @@
 
    * Support copying from files with spaces in their names over http. (#268304)
 
+   * Fix knit corruption because text revisions weren't stored properly. (#277043)
+
 bzr-svn 0.4.14	2008-11-03
 
   BUG FIXES

=== modified file 'versionedfiles.py'
--- a/versionedfiles.py	2008-10-10 16:39:28 +0000
+++ b/versionedfiles.py	2008-11-08 21:11:28 +0000
@@ -71,6 +71,27 @@
                         sha1=osutils.sha_strings(lines),
                         text=''.join(lines))
 
+    def _get_parent(self, fileid, revid):
+        (branch_path, revnum, mapping) = self.repository.lookup_revision_id(revid)
+        fileidmap = self.repository.get_fileid_map(revnum, branch_path, mapping)
+        path = None
+        for k, (v_fileid, v_revid) in fileidmap.items():
+            if v_fileid == fileid:
+                path = k
+        if path is None:
+            return
+
+        svn_fileprops = self.repository.branchprop_list.get_changed_properties(branch_path, revnum)
+        svn_revprops = self.repository._log.revprop_list(revnum)
+        text_parents = mapping.import_text_parents(svn_revprops, svn_fileprops)
+        if path in text_parents:
+            return text_parents[path]
+
+        # Not explicitly record - so find the last place where this file was modified
+        # and report that.
+
+        return 
+
     def get_parent_map(self, keys):
         invs = {}
 




More information about the bazaar-commits mailing list