Rev 1028: Merge 0.4. in file:///data/jelmer/bzr-svn/pyrex/
Jelmer Vernooij
jelmer at samba.org
Fri Mar 21 19:03:36 GMT 2008
At file:///data/jelmer/bzr-svn/pyrex/
------------------------------------------------------------
revno: 1028
revision-id: jelmer at samba.org-20080321190335-mqy0tnds0r65b8h0
parent: jelmer at samba.org-20080321190236-st4f4dm7uh4nmedg
parent: jelmer at samba.org-20080321185710-2t0sfckz99oygfr8
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: pyrex
timestamp: Fri 2008-03-21 20:03:35 +0100
message:
Merge 0.4.
modified:
NEWS news-20061231030336-h9fhq245ie0de8bs-1
__init__.py __init__.py-20051008155114-eae558e6cf149e1d
commit.py commit.py-20060607190346-qvq128wgfubhhgm2-1
fileids.py fileids.py-20060714013623-u5iiyqqnko11grcf-1
repository.py repository.py-20060306123302-1f8c5069b3fe0265
tests/test_fileids.py test_fileids.py-20060622131341-19gyrlgqy8yl2od5-1
tests/test_repos.py test_repos.py-20060508151940-ddc49a59257ca712
tree.py tree.py-20060624222557-dudlwqcmkf22lt2s-1
workingtree.py workingtree.py-20060306120941-b083cb0fdd4a69de
------------------------------------------------------------
revno: 950.1.15
revision-id: jelmer at samba.org-20080321185710-2t0sfckz99oygfr8
parent: jelmer at samba.org-20080321183614-t84oj8ncv2qssjwm
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Fri 2008-03-21 19:57:10 +0100
message:
Change get_revision_graph() to behave the same way as the bzrlib implementation.
modified:
repository.py repository.py-20060306123302-1f8c5069b3fe0265
tests/test_repos.py test_repos.py-20060508151940-ddc49a59257ca712
------------------------------------------------------------
revno: 950.1.14
revision-id: jelmer at samba.org-20080321183614-t84oj8ncv2qssjwm
parent: jelmer at samba.org-20080321172256-mpww0zst86b0lp2i
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Fri 2008-03-21 19:36:14 +0100
message:
Split caching layer out of file id map code.
modified:
fileids.py fileids.py-20060714013623-u5iiyqqnko11grcf-1
repository.py repository.py-20060306123302-1f8c5069b3fe0265
tests/test_fileids.py test_fileids.py-20060622131341-19gyrlgqy8yl2od5-1
------------------------------------------------------------
revno: 950.1.13
revision-id: jelmer at samba.org-20080321172256-mpww0zst86b0lp2i
parent: jelmer at samba.org-20080321171421-hn9kb2ykx44spe7n
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Fri 2008-03-21 18:22:56 +0100
message:
use full branch property list functions rather than doing single property queries.
modified:
commit.py commit.py-20060607190346-qvq128wgfubhhgm2-1
tree.py tree.py-20060624222557-dudlwqcmkf22lt2s-1
workingtree.py workingtree.py-20060306120941-b083cb0fdd4a69de
------------------------------------------------------------
revno: 950.1.12
revision-id: jelmer at samba.org-20080321171421-hn9kb2ykx44spe7n
parent: jelmer at samba.org-20080321163739-g4ud3ipvuxdnbnil
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Fri 2008-03-21 18:14:21 +0100
message:
Fix get_revision_graph() tests.
modified:
repository.py repository.py-20060306123302-1f8c5069b3fe0265
tests/test_repos.py test_repos.py-20060508151940-ddc49a59257ca712
------------------------------------------------------------
revno: 950.1.11
revision-id: jelmer at samba.org-20080321163739-g4ud3ipvuxdnbnil
parent: jelmer at samba.org-20080321160952-ld57yla8mx7sgpc1
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Fri 2008-03-21 17:37:39 +0100
message:
--prefix is now determined from the specified url in svn-import.
modified:
NEWS news-20061231030336-h9fhq245ie0de8bs-1
__init__.py __init__.py-20051008155114-eae558e6cf149e1d
------------------------------------------------------------
revno: 950.1.10
revision-id: jelmer at samba.org-20080321160952-ld57yla8mx7sgpc1
parent: jelmer at samba.org-20080321150137-mk2q5ehxvyf1wo2c
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Fri 2008-03-21 17:09:52 +0100
message:
Change get_ancestry() to use get_graph().
modified:
repository.py repository.py-20060306123302-1f8c5069b3fe0265
tests/test_repos.py test_repos.py-20060508151940-ddc49a59257ca712
=== modified file 'NEWS'
--- a/NEWS 2008-03-21 15:49:19 +0000
+++ b/NEWS 2008-03-21 19:03:35 +0000
@@ -14,6 +14,8 @@
* Use caching revision graph.
+ * --prefix is now determined from the specified url in svn-import. (#160335)
+
BUGS
* Fix compatibility with bzr 1.3.
@@ -22,6 +24,8 @@
* Properly warn when trying to open a working copy with a newer version.
+ * More correct implementation of Repository.get_ancestry().
+
INTERNALS
* Allow multiple mappings to be available at the same time.
=== modified file '__init__.py'
--- a/__init__.py 2008-03-18 21:52:58 +0000
+++ b/__init__.py 2008-03-21 19:03:35 +0000
@@ -157,8 +157,10 @@
@display_command
def run(self, from_location, to_location=None, trees=False,
standalone=False, scheme=None, all=False, prefix=None):
- from bzrlib.errors import BzrCommandError, NoRepositoryPresent
+ from bzrlib.branch import Branch
from bzrlib.bzrdir import BzrDir
+ from bzrlib.errors import BzrCommandError, NoRepositoryPresent, NotBranchError
+ from bzrlib import urlutils
from convert import convert_repository
from repository import SvnRepository
import os
@@ -184,8 +186,20 @@
try:
from_repos = from_dir.open_repository()
except NoRepositoryPresent, e:
- raise BzrCommandError("No Repository found at %s. "
- "For individual branches, use 'bzr branch'." % from_location)
+ try:
+ Branch.open(from_location)
+ raise BzrCommandError("No Repository found at %s. "
+ "For individual branches, use 'bzr branch'." % from_location)
+ except NotBranchError:
+ if prefix is not None:
+ raise BzrCommandError("Path inside repository specified and --prefix specified")
+ from_repos = from_dir.find_repository()
+ prefix = urlutils.relative_url(from_repos.base, from_location)
+ self.outf.write("Importing branches below %s\n" %
+ urlutils.unescape_for_display(prefix, self.outf.encoding))
+
+ if prefix is not None:
+ prefix = prefix.strip("/") + "/"
if not isinstance(from_repos, SvnRepository):
raise BzrCommandError(
=== modified file 'commit.py'
--- a/commit.py 2008-03-21 12:44:58 +0000
+++ b/commit.py 2008-03-21 19:03:35 +0000
@@ -146,14 +146,14 @@
self.modified_files = {}
self.modified_dirs = set()
- def get_branch_file_property(name, default):
- if self.base_revid is None:
- return default
- return self.repository.branchprop_list.get_property(self.base_path, self.base_revnum, name, default)
- (self._svn_revprops, self._svnprops) = self.base_mapping.export_revision(self.branch.get_branch_path(), timestamp, timezone, committer, revprops, revision_id, self.base_revno+1, merges, get_branch_file_property)
+ if self.base_revid is None:
+ base_branch_props = {}
+ else:
+ base_branch_props = self.repository.branchprop_list.get_properties(self.base_path, self.base_revnum)
+ (self._svn_revprops, self._svnprops) = self.base_mapping.export_revision(self.branch.get_branch_path(), timestamp, timezone, committer, revprops, revision_id, self.base_revno+1, merges, base_branch_props)
if len(merges) > 0:
- old_svk_features = parse_svk_features(get_branch_file_property(SVN_PROP_SVK_MERGE, ""))
+ old_svk_features = parse_svk_features(base_branch_props.get(SVN_PROP_SVK_MERGE, ""))
svk_features = set(old_svk_features)
# SVK compatibility
=== modified file 'fileids.py'
--- a/fileids.py 2008-02-03 14:52:23 +0000
+++ b/fileids.py 2008-03-21 18:36:14 +0000
@@ -55,6 +55,29 @@
FILEIDMAP_VERSION = 1
+def simple_apply_changes(new_file_id, changes, find_children=None):
+ """Simple function that can apply file id changes.
+
+ Does not track renames. """
+ map = {}
+ for p in sorted(changes.keys()):
+ data = changes[p]
+
+ if data[0] in ('A', 'R'):
+ inv_p = p.decode("utf-8")
+ map[inv_p] = new_file_id(inv_p)
+
+ if data[1] is not None:
+ mutter('%r copied from %r:%s' % (inv_p, data[1], data[2]))
+ if find_children is not None:
+ for c in find_children(data[1], data[2]):
+ inv_c = c.decode("utf-8")
+ path = c.replace(data[1].decode("utf-8"), inv_p+"/", 1).replace(u"//", u"/")
+ map[path] = new_file_id(path)
+ mutter('added mapping %r -> %r' % (path, map[path]))
+
+ return map
+
class FileIdMap:
"""File id store.
@@ -62,25 +85,9 @@
revnum -> branch -> path -> fileid
"""
- def __init__(self, repos, cache_transport):
+ def __init__(self, apply_changes_fn, repos):
+ self.apply_changes_fn = apply_changes_fn
self.repos = repos
- self.idmap_knit = KnitVersionedFile("fileidmap-v%d" % FILEIDMAP_VERSION, cache_transport, create=True)
-
- def save(self, revid, parent_revids, _map):
- mutter('saving file id map for %r' % revid)
-
- self.idmap_knit.add_lines_with_ghosts(revid, parent_revids,
- ["%s\t%s\t%s\n" % (urllib.quote(filename), urllib.quote(_map[filename][0]),
- urllib.quote(_map[filename][1])) for filename in sorted(_map.keys())])
-
- def load(self, revid):
- map = {}
- for line in self.idmap_knit.get_lines(revid):
- (filename, id, create_revid) = line.rstrip("\n").split("\t", 3)
- map[urllib.unquote(filename)] = (urllib.unquote(id), urllib.unquote(create_revid))
- assert isinstance(map[urllib.unquote(filename)][0], str)
-
- return map
def apply_changes(self, uuid, revnum, branch, global_changes,
renames, mapping, find_children=None):
@@ -104,11 +111,55 @@
get_children = None
def new_file_id(x):
- return mapping.generate_file_id(self.repos.uuid, revnum, branch, x)
+ return mapping.generate_file_id(uuid, revnum, branch, x)
- idmap = self._apply_changes(new_file_id, changes, get_children)
+ idmap = self.apply_changes_fn(new_file_id, changes, get_children)
idmap.update(renames)
- return idmap
+ return (idmap, changes)
+
+ def get_map(self, uuid, revnum, branch, renames_cb, mapping):
+ raise NotImplementedError(self.get_map)
+
+ def update_map(self, map, revid, idmap, changes):
+ for p in changes:
+ if changes[p][0] == 'M' and not idmap.has_key(p):
+ idmap[p] = map[p][0]
+
+ map.update(dict([(x, (str(idmap[x]), revid)) for x in idmap]))
+
+ # Mark all parent paths as changed
+ for p in idmap:
+ parts = p.split("/")
+ for j in range(1, len(parts)+1):
+ parent = "/".join(parts[0:len(parts)-j])
+ assert map.has_key(parent), "Parent item %s of %s doesn't exist in map" % (parent, p)
+ if map[parent][1] == revid:
+ break
+ map[parent] = map[parent][0], revid
+
+
+class CachingFileIdMap:
+ """A file id map that uses a cache."""
+ def __init__(self, cache_transport, actual):
+ self.idmap_knit = KnitVersionedFile("fileidmap-v%d" % FILEIDMAP_VERSION, cache_transport, create=True)
+ self.actual = actual
+ self.apply_changes = actual.apply_changes
+
+ def save(self, revid, parent_revids, _map):
+ mutter('saving file id map for %r' % revid)
+
+ self.idmap_knit.add_lines_with_ghosts(revid, parent_revids,
+ ["%s\t%s\t%s\n" % (urllib.quote(filename), urllib.quote(_map[filename][0]),
+ urllib.quote(_map[filename][1])) for filename in sorted(_map.keys())])
+
+ def load(self, revid):
+ map = {}
+ for line in self.idmap_knit.get_lines(revid):
+ (filename, id, create_revid) = line.rstrip("\n").split("\t", 3)
+ map[urllib.unquote(filename)] = (urllib.unquote(id), urllib.unquote(create_revid))
+ assert isinstance(map[urllib.unquote(filename)][0], str)
+
+ return map
def get_map(self, uuid, revnum, branch, renames_cb, mapping):
"""Make sure the map is up to date until revnum."""
@@ -117,8 +168,8 @@
next_parent_revs = []
if revnum == 0:
assert branch == ""
- return {"": (mapping.generate_file_id(uuid, revnum, branch, u""),
- self.repos.generate_revision_id(revnum, branch, mapping))}
+ return {"": (mapping.generate_file_id(uuid, 0, "", u""),
+ self.repos.generate_revision_id(0, "", mapping))}
quickrevidmap = {}
@@ -154,41 +205,17 @@
def log_find_children(path, revnum):
expensive = True
return self.repos._log.find_children(path, revnum)
- changes = get_local_changes(global_changes, mapping,
- self.repos.generate_revision_id,
- log_find_children)
+
+ (revnum, branch) = quickrevidmap[revid]
+ (idmap, changes) = self.actual.apply_changes(self.repos.uuid, revnum, branch,
+ global_changes, renames_cb(revid), mapping,
+ log_find_children)
pb.update('generating file id map', i, len(todo))
- def find_children(path, revid):
- (revnum, bp) = quickrevidmap[revid]
- for p in log_find_children(bp+"/"+path, revnum):
- yield mapping.unprefix(bp, p)
-
parent_revs = next_parent_revs
- def new_file_id(x):
- (revnum, branch) = quickrevidmap[revid]
- return mapping.generate_file_id(self.repos.uuid, revnum, branch, x)
-
- revmap = self._apply_changes(new_file_id, changes, find_children)
- revmap.update(renames_cb(revid))
-
- for p in changes:
- if changes[p][0] == 'M' and not revmap.has_key(p):
- revmap[p] = map[p][0]
-
- map.update(dict([(x, (str(revmap[x]), revid)) for x in revmap]))
-
- # Mark all parent paths as changed
- for p in revmap:
- parts = p.split("/")
- for j in range(1, len(parts)+1):
- parent = "/".join(parts[0:len(parts)-j])
- assert map.has_key(parent), "Parent item %s of %s doesn't exist in map" % (parent, p)
- if map[parent][1] == revid:
- break
- map[parent] = map[parent][0], revid
-
+ self.actual.update_map(map, revid, idmap, changes)
+
saved = False
if i % 500 == 0 or expensive:
self.save(revid, parent_revs, map)
@@ -202,24 +229,10 @@
return map
-class SimpleFileIdMap(FileIdMap):
- @staticmethod
- def _apply_changes(new_file_id, changes, find_children=None):
- map = {}
- for p in sorted(changes.keys()):
- data = changes[p]
-
- if data[0] in ('A', 'R'):
- inv_p = p.decode("utf-8")
- map[inv_p] = new_file_id(inv_p)
-
- if data[1] is not None:
- mutter('%r copied from %r:%s' % (inv_p, data[1], data[2]))
- if find_children is not None:
- for c in find_children(data[1], data[2]):
- inv_c = c.decode("utf-8")
- path = c.replace(data[1].decode("utf-8"), inv_p+"/", 1).replace(u"//", u"/")
- map[path] = new_file_id(path)
- mutter('added mapping %r -> %r' % (path, map[path]))
-
- return map
+class SimpleFileIdMap(CachingFileIdMap):
+ def __init__(self, repos, cache_transport):
+ CachingFileIdMap.__init__(self, cache_transport, FileIdMap(simple_apply_changes, repos))
+ self.repos = repos
+
+
+
=== modified file 'repository.py'
--- a/repository.py 2008-03-21 15:49:19 +0000
+++ b/repository.py 2008-03-21 19:03:35 +0000
@@ -294,7 +294,7 @@
def transform_fileid_map(self, uuid, revnum, branch, changes, renames,
mapping):
return self.fileid_map.apply_changes(uuid, revnum, branch, changes,
- renames, mapping)
+ renames, mapping)[0]
def all_revision_ids(self, mapping=None):
if mapping is None:
@@ -321,26 +321,13 @@
def get_ancestry(self, revision_id, topo_sorted=True):
"""See Repository.get_ancestry().
-
- Note: only the first bit is topologically ordered!
"""
- if revision_id is None:
- return [None]
-
- (path, revnum, mapping) = self.lookup_revision_id(revision_id)
-
- ancestry = [revision_id]
-
- svn_revprops = lazy_dict(lambda: self.transport.revprop_list(revnum))
- svn_fileprops = lazy_dict(lambda: self.branchprop_list.get_properties(path, revnum))
- ancestry.extend(mapping.get_rhs_ancestors(path, svn_revprops, svn_fileprops))
-
- if revnum > 0:
- for (branch, rev) in self.follow_branch(path, revnum - 1, mapping):
- ancestry.append(
- self.generate_revision_id(rev, branch, mapping))
-
- ancestry.append(None)
+ ancestry = []
+ graph = self.get_graph()
+ for rev, parents in graph.iter_ancestry([revision_id]):
+ if rev == NULL_REVISION:
+ rev = None
+ ancestry.append(rev)
ancestry.reverse()
return ancestry
@@ -836,7 +823,15 @@
ret = {}
for (revid, parents) in graph.iter_ancestry(revision_ids):
- ret[revid] = parents
+ if revid == NULL_REVISION:
+ continue
+ if (NULL_REVISION,) == parents:
+ ret[revid] = ()
+ else:
+ ret[revid] = parents
+
+ if revision_id is not None and revision_id != NULL_REVISION and ret[revision_id] is None:
+ raise NoSuchRevision(self, revision_id)
return ret
=== modified file 'tests/test_fileids.py'
--- a/tests/test_fileids.py 2008-02-04 13:29:23 +0000
+++ b/tests/test_fileids.py 2008-03-21 18:36:14 +0000
@@ -21,7 +21,7 @@
from bzrlib.trace import mutter
from bzrlib.tests import TestCase
-from fileids import SimpleFileIdMap
+from fileids import SimpleFileIdMap, simple_apply_changes
from mapping import BzrSvnMappingv3FileProps
from scheme import TrunkBranchingScheme, NoBranchingScheme
from tests import TestCaseWithSubversionRepository
@@ -175,7 +175,7 @@
if renames.has_key(r) and renames[r].has_key(x):
return renames[r][x]
return self.mapping.generate_file_id("uuid", revnum, branchpath, x)
- revmap = SimpleFileIdMap._apply_changes(new_file_id, mappings[r], find_children)
+ revmap = simple_apply_changes(new_file_id, mappings[r], find_children)
map.update(dict([(x, (revmap[x],r)) for x in revmap]))
return map
=== modified file 'tests/test_repos.py'
--- a/tests/test_repos.py 2008-03-16 04:31:39 +0000
+++ b/tests/test_repos.py 2008-03-21 19:03:35 +0000
@@ -650,7 +650,7 @@
self.assertEqual([None, repository.generate_revision_id(0, "", mapping)],
repository.get_ancestry(
repository.generate_revision_id(0, "", mapping)))
- self.assertEqual([None], repository.get_ancestry(None))
+ self.assertEqual([None], repository.get_ancestry(NULL_REVISION))
def test_get_revision_graph_empty(self):
repos_url = self.make_client('d', 'dc')
@@ -668,14 +668,14 @@
repos_url = self.make_client('d', 'dc')
repository = Repository.open(repos_url)
mapping = repository.get_mapping()
- self.assertEqual({repository.generate_revision_id(0, "", mapping): []},
+ self.assertEqual({repository.generate_revision_id(0, "", mapping): ()},
repository.get_revision_graph())
def test_get_revision_graph_zero(self):
repos_url = self.make_client('d', 'dc')
repository = Repository.open(repos_url)
mapping = repository.get_mapping()
- self.assertEqual({repository.generate_revision_id(0, "", mapping): []},
+ self.assertEqual({repository.generate_revision_id(0, "", mapping): ()},
repository.get_revision_graph(
repository.generate_revision_id(0, "", mapping)))
@@ -690,9 +690,9 @@
repository = Repository.open(repos_url)
repository.set_branching_scheme(TrunkBranchingScheme())
mapping = repository.get_mapping()
- self.assertEqual({repository.generate_revision_id(1, "trunk", mapping): [],
- repository.generate_revision_id(2, "trunk", mapping): [repository.generate_revision_id(1, "trunk", mapping)],
- repository.generate_revision_id(1, "branches/foo", mapping): []
+ self.assertEqual({repository.generate_revision_id(1, "trunk", mapping): (),
+ repository.generate_revision_id(2, "trunk", mapping): (repository.generate_revision_id(1, "trunk", mapping),),
+ repository.generate_revision_id(1, "branches/foo", mapping): ()
}, repository.get_revision_graph())
def test_get_revision_graph(self):
@@ -711,29 +711,29 @@
repository = Repository.open("svn+%s" % repos_url)
mapping = repository.get_mapping()
self.assertEqual({
- repository.generate_revision_id(0, "", mapping): [],
- repository.generate_revision_id(3, "", mapping): [
- repository.generate_revision_id(2, "", mapping)],
- repository.generate_revision_id(2, "", mapping): [
- repository.generate_revision_id(1, "", mapping)],
- repository.generate_revision_id(1, "", mapping): [
- repository.generate_revision_id(0, "", mapping)]},
+ repository.generate_revision_id(0, "", mapping): (),
+ repository.generate_revision_id(3, "", mapping): (
+ repository.generate_revision_id(2, "", mapping),),
+ repository.generate_revision_id(2, "", mapping): (
+ repository.generate_revision_id(1, "", mapping),),
+ repository.generate_revision_id(1, "", mapping): (
+ repository.generate_revision_id(0, "", mapping),)},
repository.get_revision_graph(
repository.generate_revision_id(3, "", mapping)))
self.assertEqual({
- repository.generate_revision_id(0, "", mapping): [],
- repository.generate_revision_id(2, "", mapping): [
- repository.generate_revision_id(1, "", mapping)],
- repository.generate_revision_id(1, "", mapping): [
- repository.generate_revision_id(0, "", mapping)
- ]},
+ repository.generate_revision_id(0, "", mapping): (),
+ repository.generate_revision_id(2, "", mapping): (
+ repository.generate_revision_id(1, "", mapping),),
+ repository.generate_revision_id(1, "", mapping): (
+ repository.generate_revision_id(0, "", mapping),
+ )},
repository.get_revision_graph(
repository.generate_revision_id(2, "", mapping)))
self.assertEqual({
- repository.generate_revision_id(0, "", mapping): [],
- repository.generate_revision_id(1, "", mapping): [
- repository.generate_revision_id(0, "", mapping)
- ]},
+ repository.generate_revision_id(0, "", mapping): (),
+ repository.generate_revision_id(1, "", mapping): (
+ repository.generate_revision_id(0, "", mapping),
+ )},
repository.get_revision_graph(
repository.generate_revision_id(1, "", mapping)))
@@ -779,9 +779,9 @@
repository.get_ancestry(
repository.generate_revision_id(1, "", mapping)))
self.assertEqual([None,
- repository.generate_revision_id(0, "", mapping),
+ repository.generate_revision_id(0, "", mapping), "a-parent",
repository.generate_revision_id(1, "", mapping),
- "a-parent", repository.generate_revision_id(2, "", mapping)],
+ repository.generate_revision_id(2, "", mapping)],
repository.get_ancestry(
repository.generate_revision_id(2, "", mapping)))
=== modified file 'tree.py'
--- a/tree.py 2008-03-18 23:27:43 +0000
+++ b/tree.py 2008-03-21 19:03:35 +0000
@@ -43,7 +43,6 @@
as value. revnum is the revision number and is
set to None if not applicable.
"""
- # TODO: Use svn.wc.parse_externals_description3 instead ?
ret = {}
for l in val.splitlines():
if l == "" or l[0] == "#":
=== modified file 'workingtree.py'
--- a/workingtree.py 2008-03-21 13:01:35 +0000
+++ b/workingtree.py 2008-03-21 19:03:35 +0000
@@ -608,10 +608,12 @@
if adm is None:
subwc.close()
+ def _get_base_branch_props(self):
+ return self.branch.repository.branchprop_list.get_properties(
+ self.branch.get_branch_path(self.base_revnum), self.base_revnum)
+
def _get_new_file_ids(self, adm):
- committed = self.branch.repository.branchprop_list.get_property(
- self.branch.get_branch_path(self.base_revnum), self.base_revnum,
- SVN_PROP_BZR_FILEIDS, "")
+ committed = self._get_base_branch_props().get(SVN_PROP_BZR_FILEIDS, "")
existing = adm.prop_get(SVN_PROP_BZR_FILEIDS, self.basedir)
if existing is None or committed == existing:
return {}
@@ -619,20 +621,13 @@
existing.splitlines()))
def _get_bzr_revids(self):
- return self.branch.repository.branchprop_list.get_property(
- self.branch.get_branch_path(self.base_revnum),
- self.base_revnum,
- SVN_PROP_BZR_REVISION_ID+str(self.branch.mapping.scheme), "")
+ return self._get_base_branch_props().get(SVN_PROP_BZR_REVISION_ID+str(self.branch.mapping.scheme), "")
def _get_bzr_merges(self):
- return self.branch.repository.branchprop_list.get_property(
- self.branch.get_branch_path(self.base_revnum),
- self.base_revnum, SVN_PROP_BZR_ANCESTRY+str(self.branch.mapping.scheme), "")
+ return self._get_base_branch_props().get(SVN_PROP_BZR_ANCESTRY+str(self.branch.mapping.scheme), "")
def _get_svk_merges(self):
- return self.branch.repository.branchprop_list.get_property(
- self.branch.get_branch_path(self.base_revnum),
- self.base_revnum, SVN_PROP_SVK_MERGE, "")
+ return self._get_base_branch_props().get(SVN_PROP_SVK_MERGE, "")
def set_pending_merges(self, merges):
"""See MutableTree.set_pending_merges()."""
More information about the bazaar-commits
mailing list