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