Rev 2154: Use prefix when svn-importing part of a repository. in http://people.samba.org/bzr/jelmer/bzr-svn/0.5
Jelmer Vernooij
jelmer at samba.org
Thu Dec 4 16:07:01 GMT 2008
At http://people.samba.org/bzr/jelmer/bzr-svn/0.5
------------------------------------------------------------
revno: 2154
revision-id: jelmer at samba.org-20081204160659-o61onpqbeqbmcr89
parent: jelmer at samba.org-20081204154703-2y3q3lv34l8pz42u
committer: Jelmer Vernooij <jelmer at samba.org>
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)
More information about the bazaar-commits
mailing list