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

------------------------------------------------------------
revno: 2154
revision-id: [EMAIL PROTECTED]
parent: [EMAIL PROTECTED]
committer: Jelmer Vernooij <[EMAIL PROTECTED]>
branch nick: 0.5
timestamp: Thu 2008-12-04 17:06:59 +0100
message:
  Use prefix when svn-importing part of a repository.
modified:
  __init__.py                    __init__.py-20051008155114-eae558e6cf149e1d
  convert.py                     svn2bzr.py-20051018015439-cb4563bff29e632d
  revmeta.py                     revmeta.py-20080901215045-n8a6arqybs9ez5hl-1
=== modified file '__init__.py'
--- a/__init__.py       2008-12-04 15:07:45 +0000
+++ b/__init__.py       2008-12-04 16:06:59 +0000
@@ -277,7 +277,7 @@
                                not standalone, trees, all, 
                                filter_branch=filter_branch,
                                keep=keep, incremental=incremental,
-                               to_revnum=to_revnum)
+                               to_revnum=to_revnum, prefix=prefix)
 
             if tmp_repos is not None:
                 osutils.rmtree(tmp_repos)

=== modified file 'convert.py'
--- a/convert.py        2008-12-03 01:16:27 +0000
+++ b/convert.py        2008-12-04 16:06:59 +0000
@@ -137,7 +137,7 @@
 def convert_repository(source_repos, output_url, layout=None,
                        create_shared_repo=True, working_trees=False, all=False,
                        format=None, filter_branch=None, keep=False, 
-                       incremental=False, to_revnum=None):
+                       incremental=False, to_revnum=None, prefix=None):
     """Convert a Subversion repository and its' branches to a 
     Bazaar repository.
 
@@ -212,7 +212,7 @@
         mapping = source_repos.get_mapping()
         existing_branches = {}
         deleted = set()
-        it = source_repos._revmeta_provider.iter_all_changes(layout, 
mapping.is_branch_or_tag, to_revnum, from_revnum, project=project)
+        it = source_repos._revmeta_provider.iter_all_changes(layout, 
mapping.is_branch_or_tag, to_revnum, from_revnum, project=project, 
prefix=prefix)
         if create_shared_repo:
             revfinder = FetchRevisionFinder(source_repos, target_repos, 
target_repos_is_empty)
             (it, it_rev) = tee(it)

=== modified file 'revmeta.py'
--- a/revmeta.py        2008-12-03 04:28:32 +0000
+++ b/revmeta.py        2008-12-04 16:06:59 +0000
@@ -840,6 +840,14 @@
             yield rev
 
 
+def restrict_prefixes(prefixes, prefix):
+    for p in prefixes:
+        if prefix == "" or p == prefix or p.startswith(prefix+"/"):
+            yield p
+        elif prefix.startswith(p+"/") or p == "":
+            yield prefix
+
+
 class RevisionMetadataProvider(object):
     """A RevisionMetadata provider."""
 
@@ -977,7 +985,7 @@
         return filter_revisions(self.iter_all_changes(layout, 
check_unusual_path, from_revnum, to_revnum, project, pb))
 
     def iter_all_changes(self, layout, check_unusual_path, from_revnum, 
-                         to_revnum=0, project=None, pb=None):
+                         to_revnum=0, project=None, prefix=None, pb=None):
         """Iterate over all RevisionMetadata objects and branch removals 
         in a repository.
 
@@ -993,6 +1001,9 @@
             prefixes = layout.get_project_prefixes(project)
         else:
             prefixes = [""]
+
+        if prefix is not None:
+            prefixes = list(restrict_prefixes(prefixes, prefix))
         
         browser = RevisionMetadataBrowser(prefixes, from_revnum, to_revnum, 
                                           layout, self, project, pb=pb)


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

Reply via email to