Rev 1201: Support copying. in file:///data/jelmer/bzr-svn/fast-tests/
Jelmer Vernooij
jelmer at samba.org
Thu Jun 5 01:41:59 BST 2008
At file:///data/jelmer/bzr-svn/fast-tests/
------------------------------------------------------------
revno: 1201
revision-id: jelmer at samba.org-20080605004159-7aeddqhmuj79qkmt
parent: jelmer at samba.org-20080605002557-0c8wjo20rjnr91ha
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: fast-tests
timestamp: Thu 2008-06-05 02:41:59 +0200
message:
Support copying.
modified:
tests/__init__.py __init__.py-20060508151940-e9f4d914801a2535
=== modified file 'tests/__init__.py'
--- a/tests/__init__.py 2008-06-05 00:25:57 +0000
+++ b/tests/__init__.py 2008-06-05 00:41:59 +0000
@@ -281,7 +281,8 @@
ra = svn.client.open_ra_session(url.encode('utf8'),
self.client_ctx)
class CommitEditor:
- def __init__(self, ra, editor, edit_baton, base_revnum):
+ def __init__(self, ra, editor, edit_baton, base_revnum, base_url):
+ self._used = False
self.ra = ra
self.base_revnum = base_revnum
self.editor = editor
@@ -289,12 +290,19 @@
self.data = {}
self.create = set()
self.props = {}
+ self.copyfrom = {}
+ self.base_url = base_url
def _parts(self, path):
return path.strip("/").split("/")
- def add_dir(self, path):
+ def add_dir(self, path, copyfrom_path=None, copyfrom_rev=-1):
self.create.add(path)
+ if copyfrom_path is not None:
+ if copyfrom_rev == -1:
+ copyfrom_rev = self.base_revnum
+ copyfrom_path = os.path.join(self.base_url, copyfrom_path)
+ self.copyfrom[path] = (copyfrom_path, copyfrom_rev)
self.open_dir(path)
def open_dir(self, path):
@@ -340,7 +348,7 @@
svn.delta.editor_invoke_delete_entry(self.editor, dir_baton, subpath)
elif isinstance(contents, dict):
if subpath in self.create:
- child_baton = svn.delta.editor_invoke_add_directory(self.editor, subpath, dir_baton, -1)
+ child_baton = svn.delta.editor_invoke_add_directory(self.editor, subpath, dir_baton, self.copyfrom[subpath][0], self.copyfrom[subpath][1])
else:
child_baton = svn.delta.editor_invoke_open_directory(self.editor, subpath, dir_baton, -1)
if subpath in self.props:
@@ -362,15 +370,19 @@
svn.delta.editor_invoke_close_file(self.editor, child_baton, None)
def done(self):
+ assert self._used == False
+ self._used = True
root_baton = svn.delta.editor_invoke_open_root(self.editor, self.edit_baton,
self.base_revnum)
self._process_dir(root_baton, self.data, "")
svn.delta.editor_invoke_close_directory(self.editor, root_baton)
svn.delta.editor_invoke_close_edit(self.editor, self.edit_baton)
+ assert svn.ra.get_latest_revnum(ra) > self.base_revnum
+
base_revnum = svn.ra.get_latest_revnum(ra)
editor, edit_baton = svn.ra.get_commit_editor(ra, message, None, None, True)
- return CommitEditor(ra, editor, edit_baton, base_revnum)
+ return CommitEditor(ra, editor, edit_baton, base_revnum, url)
def test_suite():
More information about the bazaar-commits
mailing list