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

------------------------------------------------------------
revno: 2061
revision-id: [EMAIL PROTECTED]
parent: [EMAIL PROTECTED]
committer: Jelmer Vernooij <[EMAIL PROTECTED]>
branch nick: 0.5
timestamp: Mon 2008-11-24 04:10:12 +0100
message:
  Fix iterating over all history when copies of history data have happened.
modified:
  revmeta.py                     revmeta.py-20080901215045-n8a6arqybs9ez5hl-1
=== modified file 'revmeta.py'
--- a/revmeta.py        2008-11-21 17:37:03 +0000
+++ b/revmeta.py        2008-11-24 03:10:12 +0000
@@ -718,24 +718,31 @@
             prefixes = layout.get_project_prefixes(project)
         else:
             prefixes = [""]
+        unusual_history = {}
+        metabranches_history = {}
         unusual = set()
         for (paths, revnum, revprops) in self._log.iter_changes(prefixes, 
from_revnum, to_revnum, pb=pb):
             bps = {}
             if pb:
                 pb.update("discovering revisions", revnum, from_revnum-revnum)
 
+            metabranches.update(metabranches_history.get(revnum, {}))
+            unusual.update(unusual_history.get(revnum, set()))
+
             for p in sorted(paths):
                 action = paths[p][0]
 
                 try:
                     (_, bp, ip) = layout.split_project_path(p, project)
                 except svn_errors.NotSvnBranchPath:
-                    for u in unusual:
-                        if p.startswith("%s/" % u):
-                            bps[u] = metabranches[u]
+                    pass
                 else:
                     if action != 'D' or ip != "":
                         bps[bp] = get_metabranch(bp)
+                for u in unusual:
+                    if p.startswith("%s/" % u):
+                        bps[u] = get_metabranch(u)
+
             
             # Apply renames and the like for the next round
             for new_name, old_name, old_rev in 
changes.apply_reverse_changes(metabranches.keys(), paths):
@@ -748,9 +755,9 @@
                     data = metabranches[new_name]
                     del metabranches[new_name]
                     if mapping_check_path(old_name):
-                        metabranches[old_name] = data
+                        metabranches_history.setdefault(old_rev, {})[old_name] 
= data
                         if not layout.is_branch_or_tag(old_name, project):
-                            unusual.add(old_name)
+                            unusual_history.setdefault(old_rev, 
set()).add(old_name)
 
             for bp in bps:
                 revmeta = self.get_revision(bp, revnum, paths, revprops, 
metabranch=bps[bp])


-- 
bazaar-commits mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/bazaar-commits

Reply via email to