Rev 2067: Add a bit more flexibility for checking unusual branch paths. in http://people.samba.org/bzr/jelmer/bzr-svn/0.5

Jelmer Vernooij jelmer at samba.org
Mon Nov 24 22:24:39 GMT 2008


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

------------------------------------------------------------
revno: 2067
revision-id: jelmer at samba.org-20081124222416-7za35il8sx2nj1ix
parent: jelmer at samba.org-20081124203008-lv1y11f34ppn8ye6
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.5
timestamp: Mon 2008-11-24 23:24:16 +0100
message:
  Add a bit more flexibility for checking unusual branch paths.
modified:
  convert.py                     svn2bzr.py-20051018015439-cb4563bff29e632d
  fetch.py                       fetch.py-20060625004942-x2lfaib8ra707a8p-1
  repository.py                  repository.py-20060306123302-1f8c5069b3fe0265
  revmeta.py                     revmeta.py-20080901215045-n8a6arqybs9ez5hl-1
  upgrade.py                     upgrade.py-20070106192108-0rakplee2lzah4gs-1
=== modified file 'convert.py'
--- a/convert.py	2008-11-24 18:40:19 +0000
+++ b/convert.py	2008-11-24 22:24:16 +0000
@@ -206,14 +206,14 @@
         existing_branches = {}
         pb = ui.ui_factory.nested_progress_bar()
         try:
-            for revmeta in source_repos._revmeta_provider.iter_all_changes(layout, mapping,
+            for revmeta in source_repos._revmeta_provider.iter_all_changes(layout, mapping.is_branch_or_tag,
                                                                    to_revnum, from_revnum,
                                                                    project=project):
                 pb.update("determining revisions to fetch", to_revnum-revmeta.revnum, to_revnum)
                 try:
                     if revmeta.is_hidden(mapping):
                         continue
-                    mapping = revmeta.get_appropriate_mapping(mapping)
+                    # FIXME: mapping = revmeta.get_appropriate_mapping(mapping)
                     if target_repos is not None and (target_repos_is_empty or not target_repos.has_revision(revmeta.get_revision_id(mapping))):
                         revmetas.append((revmeta, mapping))
                     if not revmeta.branch_path in existing_branches and layout.is_branch(revmeta.branch_path, project=project):

=== modified file 'fetch.py'
--- a/fetch.py	2008-11-24 18:40:19 +0000
+++ b/fetch.py	2008-11-24 22:24:16 +0000
@@ -679,8 +679,8 @@
         """
         needed = []
         from_revnum = self.source.get_latest_revnum()
-        for revmeta in self.source._revmeta_provider.iter_all_changes(self.source.get_layout(), mapping=mapping, from_revnum=from_revnum, pb=pb):
-            mapping = revmeta.get_appropriate_mapping(mapping)
+        for revmeta in self.source._revmeta_provider.iter_all_changes(self.source.get_layout(), check_unusual_path=mapping.is_branch_or_tag, from_revnum=from_revnum, pb=pb):
+            #FIXME: mapping = revmeta.get_appropriate_mapping(mapping)
             if pb:
                 pb.update("determining revisions to fetch", 
                           from_revnum-revmeta.revnum, from_revnum)

=== modified file 'repository.py'
--- a/repository.py	2008-11-21 16:13:14 +0000
+++ b/repository.py	2008-11-24 22:24:16 +0000
@@ -400,7 +400,7 @@
             mapping = self.get_mapping()
         if layout is None:
             layout = self.get_layout()
-        for revmeta in self._revmeta_provider.iter_all_changes(layout, mapping, self.get_latest_revnum()):
+        for revmeta in self._revmeta_provider.iter_all_changes(layout, mapping.is_branch_or_tag, self.get_latest_revnum()):
             if revmeta.is_hidden(mapping):
                 continue
             yield revmeta.get_revision_id(mapping)

=== modified file 'revmeta.py'
--- a/revmeta.py	2008-11-24 20:30:08 +0000
+++ b/revmeta.py	2008-11-24 22:24:16 +0000
@@ -568,7 +568,8 @@
 
     def append(self, revmeta):
         """Append a revision metadata object to this branch."""
-        assert len(self._revs) == 0 or self._revs[-1].revnum > revmeta.revnum
+        assert len(self._revs) == 0 or self._revs[-1].revnum > revmeta.revnum,\
+                "%r > %r" % (self._revs[-1].revnum, revmeta.revnum)
         self._revs.append(revmeta)
         self._revnums.insert(0, revmeta.revnum)
 
@@ -690,7 +691,7 @@
                 break
             yield ret
 
-    def iter_all_changes(self, layout, mapping, from_revnum, to_revnum=0, 
+    def iter_all_changes(self, layout, check_unusual_path, from_revnum, to_revnum=0, 
                          project=None, pb=None):
         """Iterate over all RevisionMetadata objects in a repository.
 
@@ -698,11 +699,9 @@
         :param mapping: Mapping to use
         """
         assert from_revnum >= to_revnum
+        if check_unusual_path is None:
+            check_unusual_path = lambda x: True
         metabranches = {}
-        if mapping is None:
-            mapping_check_path = lambda x: True
-        else:
-            mapping_check_path = mapping.is_branch_or_tag
         # Layout decides which ones to pick up
         # Mapping decides which ones to keep
         def get_metabranch(bp):
@@ -750,7 +749,7 @@
                 else:
                     data = get_metabranch(new_name)
                     del metabranches[new_name]
-                    if mapping_check_path(old_name):
+                    if check_unusual_path(old_name):
                         metabranches_history.setdefault(old_rev, {})[old_name] = data
                         if not layout.is_branch_or_tag(old_name, project):
                             unusual_history.setdefault(old_rev, set()).add(old_name)
@@ -763,4 +762,5 @@
         # Make sure commit 0 is processed
         if to_revnum == 0 and layout.is_branch_or_tag("", project):
             bps[""] = get_metabranch("")
-            yield self.get_revision("", 0, {"": ('A', None, -1)}, {}, metabranch=bps[""])
+            revmeta = self.get_revision("", 0, {"": ('A', None, -1)}, {}, metabranch=bps[""])
+            yield revmeta

=== modified file 'upgrade.py'
--- a/upgrade.py	2008-11-21 14:59:07 +0000
+++ b/upgrade.py	2008-11-24 22:24:16 +0000
@@ -17,6 +17,8 @@
 
 from bzrlib import ui
 
+from itertools import ifilter
+
 
 def set_revprops(repository, new_mapping, from_revnum=0, to_revnum=None):
     """Set bzr-svn revision properties for existing bzr-svn revisions.
@@ -65,7 +67,7 @@
             new_mapping.export_text_revisions(old_mapping.import_text_revisions(revprops, fileprops), new_revprops, None)
             if rev.message != mapping.parse_svn_log(revprops.get(properties.PROP_REVISION_LOG)):
                 new_mapping.export_message(rev.message, new_revprops, None)
-            changed_revprops = dict(filter(lambda (k,v): k not in revprops or revprops[k] != v, new_revprops.iteritems()))
+            changed_revprops = dict(ifilter(lambda (k,v): k not in revprops or revprops[k] != v, new_revprops.iteritems()))
             if logcache is not None:
                 logcache.drop_revprops(revnum)
             for k, v in changed_revprops.iteritems():




More information about the bazaar-commits mailing list