Rev 1235: Remove memory Pool usage in bzr-svn. in http://people.samba.org/bzr/jelmer/bzr-svn/0.4/
Jelmer Vernooij
jelmer at samba.org
Tue Jun 17 21:55:24 BST 2008
At http://people.samba.org/bzr/jelmer/bzr-svn/0.4/
------------------------------------------------------------
revno: 1235
revision-id: jelmer at samba.org-20080617205523-hqus05shap15g9yc
parent: jelmer at samba.org-20080617202354-kjwsfvx2j486yrep
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Tue 2008-06-17 22:55:23 +0200
message:
Remove memory Pool usage in bzr-svn.
modified:
commit.py commit.py-20060607190346-qvq128wgfubhhgm2-1
fetch.py fetch.py-20060625004942-x2lfaib8ra707a8p-1
logwalker.py logwalker.py-20060621215743-c13fhfnyzh1xzwh2-1
ra.py ra.py-20080615005305-t5221niknu8rm6bt-1
transport.py transport.py-20060406231150-b3472d06b3a0818d
tree.py tree.py-20060624222557-dudlwqcmkf22lt2s-1
workingtree.py workingtree.py-20060306120941-b083cb0fdd4a69de
=== modified file 'commit.py'
--- a/commit.py 2008-06-15 02:48:51 +0000
+++ b/commit.py 2008-06-17 20:55:23 +0000
@@ -26,8 +26,6 @@
from cStringIO import StringIO
-from svn.core import Pool
-
from bzrlib.plugins.svn import core, properties
from bzrlib.plugins.svn.core import SubversionException, time_to_cstring
from bzrlib.plugins.svn.errors import ChangesRootLHSHistory, MissingPrefix, RevpropChangeFailed, ERR_FS_TXN_OUT_OF_DATE, ERR_REPOS_DISABLED_FEATURE
@@ -108,7 +106,6 @@
super(SvnCommitBuilder, self).__init__(repository, parents,
config, timestamp, timezone, committer, revprops, revision_id)
self.branch = branch
- self.pool = Pool()
# Gather information about revision on top of which the commit is
# happening
@@ -196,8 +193,8 @@
:param baton: Baton under which the file is known to the editor.
"""
assert baton is not None
- (txdelta, txbaton) = self.editor.apply_textdelta(baton, None, self.pool)
- digest = txdelta_send_stream(StringIO(contents), txdelta, txbaton, self.pool)
+ (txdelta, txbaton) = self.editor.apply_textdelta(baton, None)
+ digest = txdelta_send_stream(StringIO(contents), txdelta, txbaton)
if 'validate' in debug.debug_flags:
from fetch import md5_strings
assert digest == md5_strings(contents)
@@ -227,7 +224,7 @@
self.mutter('removing %r(%r)', (child_name, child_ie.file_id))
self.editor.delete_entry(
urlutils.join(self.branch.get_branch_path(), path, child_name),
- self.base_revnum, baton, self.pool)
+ self.base_revnum, baton)
# Loop over file children of file_id in self.new_inventory
for child_name in self.new_inventory[file_id].children:
@@ -244,7 +241,7 @@
if not child_ie.file_id in self.old_inv:
self.mutter('adding %s %r', child_ie.kind, new_child_path)
child_baton = self.editor.add_file(
- full_new_child_path, baton, None, -1, self.pool)
+ full_new_child_path, baton, None, -1)
# copy if they existed at different location
@@ -256,14 +253,14 @@
child_baton = self.editor.add_file(
full_new_child_path, baton,
urlutils.join(self.repository.transport.svn_url, self.base_path, self.old_inv.id2path(child_ie.file_id)),
- self.base_revnum, self.pool)
+ self.base_revnum)
# open if they existed at the same location
elif child_ie.revision is None:
self.mutter('open %s %r', child_ie.kind, new_child_path)
child_baton = self.editor.open_file(
- full_new_child_path, baton, self.base_revnum, self.pool)
+ full_new_child_path, baton, self.base_revnum)
else:
# Old copy of the file was retained. No need to send changes
@@ -284,7 +281,7 @@
else:
value = None
self.editor.change_file_prop(child_baton,
- properties.PROP_EXECUTABLE, value, self.pool)
+ properties.PROP_EXECUTABLE, value)
if old_special != (child_ie.kind == 'symlink'):
if child_ie.kind == 'symlink':
@@ -293,7 +290,7 @@
value = None
self.editor.change_file_prop(child_baton,
- properties.PROP_SPECIAL, value, self.pool)
+ properties.PROP_SPECIAL, value)
# handle the file
if child_ie.file_id in self.modified_files:
@@ -301,7 +298,7 @@
self.modified_files[child_ie.file_id], child_baton)
if child_baton is not None:
- self.editor.close_file(child_baton, None, self.pool)
+ self.editor.close_file(child_baton, None)
# Loop over subdirectories of file_id in self.new_inventory
for child_name in self.new_inventory[file_id].children:
@@ -315,7 +312,7 @@
self.mutter('adding dir %r', child_ie.name)
child_baton = self.editor.add_directory(
urlutils.join(self.branch.get_branch_path(),
- new_child_path), baton, None, -1, self.pool)
+ new_child_path), baton, None, -1)
# copy if they existed at different location
elif self.old_inv.id2path(child_ie.file_id) != new_child_path:
@@ -324,7 +321,7 @@
child_baton = self.editor.add_directory(
urlutils.join(self.branch.get_branch_path(), new_child_path),
baton,
- urlutils.join(self.repository.transport.svn_url, self.base_path, old_child_path), self.base_revnum, self.pool)
+ urlutils.join(self.repository.transport.svn_url, self.base_path, old_child_path), self.base_revnum)
# open if they existed at the same location and
# the directory was touched
@@ -333,7 +330,7 @@
child_baton = self.editor.open_directory(
urlutils.join(self.branch.get_branch_path(), new_child_path),
- baton, self.base_revnum, self.pool)
+ baton, self.base_revnum)
else:
assert child_ie.file_id not in self.modified_dirs
continue
@@ -342,7 +339,7 @@
if child_ie.file_id in self.modified_dirs:
self._dir_process(new_child_path, child_ie.file_id, child_baton)
- self.editor.close_directory(child_baton, self.pool)
+ self.editor.close_directory(child_baton)
def open_branch_batons(self, root, elements, existing_elements,
base_path, base_rev, replace_existing):
@@ -364,7 +361,7 @@
for i in range(0, len(elements)-1):
# Does directory already exist?
ret.append(self.editor.open_directory(
- "/".join(existing_elements[0:i+1]), ret[-1], -1, self.pool))
+ "/".join(existing_elements[0:i+1]), ret[-1], -1))
if (len(existing_elements) != len(elements) and
len(existing_elements)+1 != len(elements)):
@@ -378,7 +375,7 @@
if (len(existing_elements) == len(elements) and
not replace_existing):
ret.append(self.editor.open_directory(
- "/".join(elements), ret[-1], base_rev, self.pool))
+ "/".join(elements), ret[-1], base_rev))
else: # Branch has to be created
# Already exists, old copy needs to be removed
name = "/".join(elements)
@@ -393,7 +390,7 @@
base_url = None
self.mutter("adding branch dir %r", name)
ret.append(self.editor.add_directory(
- name, ret[-1], base_url, base_rev, self.pool))
+ name, ret[-1], base_url, base_rev))
return ret
@@ -496,12 +493,11 @@
warning("Setting property %r with invalid characters in name", prop)
if value is not None:
value = value.encode('utf-8')
- self.editor.change_dir_prop(branch_batons[-1], prop, value,
- self.pool)
+ self.editor.change_dir_prop(branch_batons[-1], prop, value)
self.mutter("Setting root file property %r -> %r", prop, value)
for baton in reversed(branch_batons):
- self.editor.close_directory(baton, self.pool)
+ self.editor.close_directory(baton)
self.editor.close()
finally:
=== modified file 'fetch.py'
--- a/fetch.py 2008-06-15 02:11:24 +0000
+++ b/fetch.py 2008-06-17 20:55:23 +0000
@@ -25,7 +25,6 @@
from cStringIO import StringIO
import md5
-from svn.core import Pool
import svn.delta
from bzrlib.plugins.svn import properties
@@ -103,7 +102,6 @@
self.dir_baserev = {}
self._revinfo = None
self._premature_deletes = set()
- self.pool = Pool()
self.old_inventory = prev_inventory
self.inventory = prev_inventory.copy()
self._start_revision()
@@ -385,7 +383,6 @@
def close_edit(self):
assert len(self._premature_deletes) == 0
self._finish_commit()
- self.pool.destroy()
def apply_textdelta(self, file_id, base_checksum):
actual_checksum = md5.new(self.file_data).hexdigest(),
@@ -394,7 +391,7 @@
actual_checksum))
self.file_stream = StringIO()
return apply_txdelta_handler(StringIO(self.file_data),
- self.file_stream, self.pool)
+ self.file_stream)
def _store_file(self, file_id, lines, parents):
raise NotImplementedError(self._store_file)
@@ -645,7 +642,7 @@
# Report status of existing paths
reporter.set_path("", editor.revnum, True, None)
except:
- reporter.abort_report()
+ reporter.abort()
raise
else:
(parent_branch, parent_revnum, mapping) = \
@@ -663,13 +660,14 @@
# Report status of existing paths
reporter.set_path("", parent_revnum, False, None)
except:
- reporter.abort_report()
+ reporter.abort()
raise
- reporter.finish_report()
+ reporter.finish()
finally:
if conn is not None:
- self.source.transport.add_connection(conn)
+ if not conn.is_busy():
+ self.source.transport.add_connection(conn)
except:
editor.abort_edit()
raise
=== modified file 'logwalker.py'
--- a/logwalker.py 2008-06-15 02:48:51 +0000
+++ b/logwalker.py 2008-06-17 20:55:23 +0000
@@ -20,7 +20,6 @@
from bzrlib.trace import mutter
import bzrlib.ui as ui
-from svn.core import Pool
import svn.delta
from bzrlib.plugins.svn import changes, core
@@ -447,13 +446,12 @@
def apply_textdelta(self, file_id, base_checksum):
pass
- pool = Pool()
editor = TreeLister(path)
try:
conn = self._transport.connections.get(urlutils.join(self._transport.get_svn_repos_root(), path))
- reporter = conn.do_update(revnum, True, editor, pool)
- reporter.set_path("", revnum, True, None, pool)
- reporter.finish_report(pool)
+ reporter = conn.do_update(revnum, True, editor)
+ reporter.set_path("", revnum, True, None)
+ reporter.finish()
finally:
self._transport.connections.add(conn)
return editor.files
=== modified file 'ra.py'
--- a/ra.py 2008-06-17 19:53:50 +0000
+++ b/ra.py 2008-06-17 20:55:23 +0000
@@ -68,10 +68,10 @@
return svn.delta.editor_invoke_apply_textdelta(self.editor, baton,
*args, **kwargs)
- def change_dir_prop(self, baton, name, value, pool=None):
+ def change_dir_prop(self, baton, name, value):
assert self.recent_baton[-1] == baton
return svn.delta.editor_invoke_change_dir_prop(self.editor, baton,
- name, value, pool)
+ name, value, None)
def delete_entry(self, *args, **kwargs):
return svn.delta.editor_invoke_delete_entry(self.editor, *args, **kwargs)
@@ -90,10 +90,10 @@
self.recent_baton.append(baton)
return baton
- def change_file_prop(self, baton, name, value, pool=None):
+ def change_file_prop(self, baton, name, value):
assert self.recent_baton[-1] == baton
svn.delta.editor_invoke_change_file_prop(self.editor, baton, name,
- value, pool)
+ value, None)
def close_file(self, baton, *args, **kwargs):
assert self.recent_baton.pop() == baton
@@ -180,31 +180,30 @@
self._baton = report_baton
self._connection = connection
- def set_path(self, path, revnum, start_empty, lock_token, pool=None):
+ def set_path(self, path, revnum, start_empty, lock_token):
svn.ra.reporter2_invoke_set_path(self._reporter, self._baton,
- path, revnum, start_empty, lock_token, pool)
+ path, revnum, start_empty, lock_token, None)
- def delete_path(self, path, pool=None):
+ def delete_path(self, path):
svn.ra.reporter2_invoke_delete_path(self._reporter, self._baton,
- path, pool)
+ path, None)
- def link_path(self, path, url, revision, start_empty, lock_token,
- pool=None):
+ def link_path(self, path, url, revision, start_empty, lock_token):
svn.ra.reporter2_invoke_link_path(self._reporter, self._baton,
path, url, revision, start_empty, lock_token,
- pool)
+ None)
- def finish_report(self, pool=None):
+ def finish(self):
try:
svn.ra.reporter2_invoke_finish_report(self._reporter,
- self._baton, pool)
+ self._baton, None)
finally:
self._connection._unmark_busy()
- def abort_report(self, pool=None):
+ def abort(self):
try:
svn.ra.reporter2_invoke_abort_report(self._reporter,
- self._baton, pool)
+ self._baton, None)
finally:
self._connection._unmark_busy()
@@ -246,20 +245,20 @@
self.mutter("svn get-latest-revnum")
return svn.ra.get_latest_revnum(self._ra)
- def _make_editor(self, editor, pool=None):
- edit, edit_baton = svn.delta.make_editor(editor, pool)
+ def _make_editor(self, editor):
+ edit, edit_baton = svn.delta.make_editor(editor, None)
self._edit = edit
self._edit_baton = edit_baton
return self._edit, self._edit_baton
- def do_switch(self, switch_rev, recurse, switch_url, editor, pool=None):
+ def do_switch(self, switch_rev, recurse, switch_url, editor):
self.mutter('svn switch -r %d -> %r', switch_rev, switch_url)
self._mark_busy()
- edit, edit_baton = self._make_editor(editor, pool)
+ edit, edit_baton = self._make_editor(editor)
return self.Reporter(self, svn.ra.do_switch(self._ra, switch_rev, "",
- recurse, switch_url, edit, edit_baton, pool))
+ recurse, switch_url, edit, edit_baton, None))
- def change_rev_prop(self, revnum, name, value, pool=None):
+ def change_rev_prop(self, revnum, name, value):
self.mutter('svn revprop -r%d --set %s=%s', revnum, name, value)
svn.ra.change_rev_prop(self._ra, revnum, name, value)
@@ -274,7 +273,7 @@
return svn.ra.unlock(self._ra, locks, break_lock, lock_cb)
@needs_busy
- def get_dir(self, path, revnum, pool=None, kind=False):
+ def get_dir(self, path, revnum, kind=False):
self.mutter("svn ls -r %d '%r'", revnum, path)
assert len(path) == 0 or path[0] != "/"
# ra_dav backends fail with strange errors if the path starts with a
@@ -306,26 +305,26 @@
raise FileExists(path)
raise
- def replay(self, revision, low_water_mark, send_deltas, editor, pool=None):
+ def replay(self, revision, low_water_mark, send_deltas, editor):
self.mutter('svn replay -r%r:%r', low_water_mark, revision)
self._mark_busy()
- edit, edit_baton = self._make_editor(editor, pool)
+ edit, edit_baton = self._make_editor(editor)
svn.ra.replay(self._ra, revision, low_water_mark, send_deltas,
- edit, edit_baton, pool)
+ edit, edit_baton, None)
- def do_update(self, revnum, recurse, editor, pool=None):
+ def do_update(self, revnum, recurse, editor):
self.mutter('svn update -r %r', revnum)
self._mark_busy()
- edit, edit_baton = self._make_editor(editor, pool)
+ edit, edit_baton = self._make_editor(editor)
return self.Reporter(self, svn.ra.do_update(self._ra, revnum, "",
- recurse, edit, edit_baton, pool))
+ recurse, edit, edit_baton, None))
def has_capability(self, cap):
return svn.ra.has_capability(self._ra, cap)
- def revprop_list(self, revnum, pool=None):
+ def revprop_list(self, revnum):
self.mutter('svn revprop-list -r %r', revnum)
- return svn.ra.rev_proplist(self._ra, revnum, pool)
+ return svn.ra.rev_proplist(self._ra, revnum, None)
def get_commit_editor(self, revprops, done_cb, lock_token, keep_locks):
self._mark_busy()
@@ -363,8 +362,7 @@
@needs_busy
def get_log(self, paths, from_revnum, to_revnum, limit,
- discover_changed_paths, strict_node_history, revprops, rcvr,
- pool=None):
+ discover_changed_paths, strict_node_history, revprops, rcvr):
# No paths starting with slash, please
assert paths is None or all([not p.startswith("/") for p in paths])
if (paths is None and
@@ -376,7 +374,7 @@
return svn.ra.get_log2(self._ra, paths,
from_revnum, to_revnum, limit,
discover_changed_paths, strict_node_history, False,
- revprops, rcvr, pool)
+ revprops, rcvr, None)
class LogEntry(object):
def __init__(self, changed_paths, rev, author, date, message):
@@ -398,7 +396,7 @@
return svn.ra.get_log(self._ra, paths,
from_revnum, to_revnum, limit, discover_changed_paths,
- strict_node_history, rcvr_convert, pool)
+ strict_node_history, rcvr_convert, None)
@needs_busy
def reparent(self, url):
=== modified file 'transport.py'
--- a/transport.py 2008-06-16 17:04:17 +0000
+++ b/transport.py 2008-06-17 20:55:23 +0000
@@ -21,10 +21,6 @@
from bzrlib.trace import mutter
from bzrlib.transport import Transport
-from svn.core import Pool
-import svn.core
-import svn.client
-
from bzrlib.plugins.svn.core import SubversionException, get_config
from bzrlib.plugins.svn.errors import convert_svn_error, NoSvnRepositoryPresent, ERR_BAD_URL, ERR_RA_SVN_REPOS_NOT_FOUND, ERR_FS_ALREADY_EXISTS, ERR_FS_NOT_FOUND, ERR_FS_NOT_DIRECTORY
from bzrlib.plugins.svn.ra import DIRENT_KIND, RemoteAccess
@@ -116,7 +112,6 @@
to fool Bazaar. """
@convert_svn_error
def __init__(self, url="", _backing_url=None, pool=None):
- self.pool = Pool()
bzr_url = url
self.svn_url = bzr_to_svn_url(url)
# _backing_url is an evil hack so the root directory of a repository
@@ -187,10 +182,10 @@
finally:
self.add_connection(conn)
- def do_switch(self, switch_rev, recurse, switch_url, editor, pool=None):
+ def do_switch(self, switch_rev, recurse, switch_url, editor):
conn = self._open_real_transport()
conn.set_unbusy_handler(lambda: self.add_connection(conn))
- return conn.do_switch(switch_rev, recurse, switch_url, editor, pool)
+ return conn.do_switch(switch_rev, recurse, switch_url, editor)
def iter_log(self, paths, from_revnum, to_revnum, limit, discover_changed_paths,
strict_node_history, revprops):
@@ -244,7 +239,7 @@
return iter(fetcher.next, None)
def get_log(self, paths, from_revnum, to_revnum, limit, discover_changed_paths,
- strict_node_history, revprops, rcvr, pool=None):
+ strict_node_history, revprops, rcvr):
assert paths is None or isinstance(paths, list), "Invalid paths"
assert paths is None or all([isinstance(x, str) for x in paths])
@@ -258,7 +253,7 @@
return conn.get_log(newpaths,
from_revnum, to_revnum,
limit, discover_changed_paths, strict_node_history,
- revprops, rcvr, pool)
+ revprops, rcvr)
finally:
self.add_connection(conn)
@@ -267,18 +262,18 @@
return self.connections.get(self.svn_url)
return self.get_connection()
- def change_rev_prop(self, revnum, name, value, pool=None):
+ def change_rev_prop(self, revnum, name, value):
conn = self.get_connection()
try:
- return conn.change_rev_prop(revnum, name, value, pool)
+ return conn.change_rev_prop(revnum, name, value)
finally:
self.add_connection(conn)
- def get_dir(self, path, revnum, pool=None, kind=False):
+ def get_dir(self, path, revnum, kind=False):
path = self._request_path(path)
conn = self.get_connection()
try:
- return conn.get_dir(path, revnum, pool, kind)
+ return conn.get_dir(path, revnum, kind)
finally:
self.add_connection(conn)
@@ -323,18 +318,18 @@
finally:
self.add_connection(conn)
- def replay(self, revision, low_water_mark, send_deltas, editor, pool=None):
+ def replay(self, revision, low_water_mark, send_deltas, editor):
conn = self._open_real_transport()
try:
return conn.replay(revision, low_water_mark,
- send_deltas, editor, pool)
+ send_deltas, editor)
finally:
self.add_connection(conn)
- def do_update(self, revnum, recurse, editor, pool=None):
+ def do_update(self, revnum, recurse, editor):
conn = self._open_real_transport()
conn.set_unbusy_handler(lambda: self.add_connection(conn))
- return conn.do_update(revnum, recurse, editor, pool)
+ return conn.do_update(revnum, recurse, editor)
def has_capability(self, cap):
conn = self.get_connection()
@@ -343,10 +338,10 @@
finally:
self.add_connection(conn)
- def revprop_list(self, revnum, pool=None):
+ def revprop_list(self, revnum):
conn = self.get_connection()
try:
- return conn.revprop_list(revnum, pool)
+ return conn.revprop_list(revnum)
finally:
self.add_connection(conn)
=== modified file 'tree.py'
--- a/tree.py 2008-06-15 02:11:24 +0000
+++ b/tree.py 2008-06-17 20:55:23 +0000
@@ -29,7 +29,6 @@
import urllib
import svn.wc, svn.delta
-from svn.core import Pool
from bzrlib.plugins.svn import errors, properties, core
@@ -101,21 +100,21 @@
# slightly different).
if hasattr(svn.delta, 'tx_invoke_window_handler'):
- def apply_txdelta_handler(src_stream, target_stream, pool):
+ def apply_txdelta_handler(src_stream, target_stream):
assert hasattr(src_stream, 'read')
assert hasattr(target_stream, 'write')
window_handler, baton = svn.delta.tx_apply(src_stream, target_stream,
- None, pool)
+ None)
def wrapper(window):
window_handler(window, baton)
return wrapper
else:
- def apply_txdelta_handler(src_stream, target_stream, pool):
+ def apply_txdelta_handler(src_stream, target_stream):
assert hasattr(src_stream, 'read')
assert hasattr(target_stream, 'write')
- ret = svn.delta.svn_txdelta_apply(src_stream, target_stream, None, pool)
+ ret = svn.delta.svn_txdelta_apply(src_stream, target_stream, None)
def wrapper(window):
svn.delta.invoke_txdelta_window_handler(
@@ -129,20 +128,18 @@
def __init__(self, repository, revision_id):
self._repository = repository
self._revision_id = revision_id
- pool = Pool()
(self.branch_path, self.revnum, mapping) = repository.lookup_revision_id(revision_id)
self._inventory = Inventory()
self.id_map = repository.get_fileid_map(self.revnum, self.branch_path,
mapping)
- editor = TreeBuildEditor(self, pool)
+ editor = TreeBuildEditor(self)
self.file_data = {}
root_repos = repository.transport.get_svn_repos_root()
reporter = repository.transport.do_switch(
self.revnum, True,
- urlutils.join(root_repos, self.branch_path), editor, pool)
- reporter.set_path("", 0, True, None, pool)
- reporter.finish_report(pool)
- pool.destroy()
+ urlutils.join(root_repos, self.branch_path), editor)
+ reporter.set_path("", 0, True, None)
+ reporter.finish()
def get_file_lines(self, file_id):
return osutils.split_lines(self.file_data[file_id])
@@ -150,13 +147,12 @@
class TreeBuildEditor(svn.delta.Editor):
"""Builds a tree given Subversion tree transform calls."""
- def __init__(self, tree, pool):
+ def __init__(self, tree):
self.tree = tree
self.repository = tree._repository
self.last_revnum = {}
self.dir_revnum = {}
self.dir_ignores = {}
- self.pool = pool
def set_target_revision(self, revnum):
self.revnum = revnum
@@ -261,7 +257,7 @@
def apply_textdelta(self, file_id, base_checksum):
self.file_stream = StringIO()
- return apply_txdelta_handler(StringIO(""), self.file_stream, self.pool)
+ return apply_txdelta_handler(StringIO(""), self.file_stream)
class SvnBasisTree(RevisionTree):
=== modified file 'workingtree.py'
--- a/workingtree.py 2008-06-17 19:53:50 +0000
+++ b/workingtree.py 2008-06-17 20:55:23 +0000
@@ -654,6 +654,9 @@
self.set_pending_merges(merges)
def get_parent_ids(self):
+ return [self.base_revid] + self.pending_merges()
+
+ def pending_merges(self):
merged = self._get_bzr_merges(self._get_base_branch_props()).splitlines()
wc = self._get_wc()
try:
@@ -670,9 +673,9 @@
len(merged)+1 == len(set_merged))
if len(set_merged) > len(merged):
- return [self.base_revid] + set_merged[-1].split("\t")
+ return set_merged[-1].split("\t")
- return [self.base_revid]
+ return []
def _reset_data(self):
pass
More information about the bazaar-commits
mailing list