Mercurial > hgsubversion
changeset 936:bb599a47a9d0
subvertpy_wrapper: move methods in the relevant editors
Files and directories can only be opened/deleted/closed from a
DirectoryEditor, and deltas can only be applied on a FileEditor.
Invariants could be made stronger by adding a third RevisionEditor class
containing set_target_revision() and open_root() but this will probably
not give interesting results.
author | Patrick Mezard <patrick@mezard.eu> |
---|---|
date | Sun, 23 Sep 2012 18:06:56 +0200 |
parents | 1de83496df4e |
children | fb6f6b7fa5a5 |
files | hgsubversion/svnwrap/subvertpy_wrapper.py |
diffstat | 1 files changed, 24 insertions(+), 27 deletions(-) [+] |
line wrap: on
line diff
--- a/hgsubversion/svnwrap/subvertpy_wrapper.py +++ b/hgsubversion/svnwrap/subvertpy_wrapper.py @@ -100,30 +100,6 @@ class AbstractEditor(object): baton = self.editor.open_root(None, base_revnum) return DirectoryEditor(self.editor, baton) - def open_directory(self, path, base_revnum): - baton = self.editor.open_directory(path, self.baton, base_revnum) - return DirectoryEditor(self.editor, baton) - - def open_file(self, path, base_revnum): - baton = self.editor.open_file(path, self.baton, base_revnum) - return FileEditor(self.editor, baton) - - def add_directory(self, path, copyfrom_path=None, copyfrom_rev=-1): - baton = self.editor.add_directory( - path, self.baton, copyfrom_path, copyfrom_rev) - return DirectoryEditor(self.editor, baton) - - def add_file(self, path, copyfrom_path=None, copyfrom_rev=-1): - baton = self.editor.add_file( - path, self.baton, copyfrom_path, copyfrom_rev) - return FileEditor(self.editor, baton) - - def apply_textdelta(self, base_checksum): - return self.editor.apply_textdelta(self.baton, base_checksum) - - def change_prop(self, name, value): - raise NotImplementedError() - def abort(self): # TODO: should we do something special here? self.close() @@ -131,9 +107,6 @@ class AbstractEditor(object): def close(self): del self.editor - def delete_entry(self, path, revnum): - self.editor.delete_entry(path, revnum, self.baton) - class FileEditor(AbstractEditor): def __init__(self, editor, baton): super(FileEditor, self).__init__(editor, baton) @@ -141,6 +114,9 @@ class FileEditor(AbstractEditor): def change_prop(self, name, value): self.editor.change_file_prop(self.baton, name, value, pool=None) + def apply_textdelta(self, base_checksum): + return self.editor.apply_textdelta(self.baton, base_checksum) + def close(self, checksum=None): super(FileEditor, self).close() @@ -148,6 +124,27 @@ class DirectoryEditor(AbstractEditor): def __init__(self, editor, baton): super(DirectoryEditor, self).__init__(editor, baton) + def delete_entry(self, path, revnum): + self.editor.delete_entry(path, revnum, self.baton) + + def open_directory(self, path, base_revnum): + baton = self.editor.open_directory(path, self.baton, base_revnum) + return DirectoryEditor(self.editor, baton) + + def add_directory(self, path, copyfrom_path=None, copyfrom_rev=-1): + baton = self.editor.add_directory( + path, self.baton, copyfrom_path, copyfrom_rev) + return DirectoryEditor(self.editor, baton) + + def open_file(self, path, base_revnum): + baton = self.editor.open_file(path, self.baton, base_revnum) + return FileEditor(self.editor, baton) + + def add_file(self, path, copyfrom_path=None, copyfrom_rev=-1): + baton = self.editor.add_file( + path, self.baton, copyfrom_path, copyfrom_rev) + return FileEditor(self.editor, baton) + def change_prop(self, name, value): self.editor.change_dir_prop(self.baton, name, value, pool=None)