class SVNRevisionProperties(PropertiesBase): def __init__(self, path, revision=None): PropertiesBase.__init__(self, path) self.svn = self.vcs.svn() if not self.svn.is_path_repository_url(path): self.path = self.svn.get_repo_url(path) self.get_widget("path").set_text(self.path) self.revision = revision self.revision_obj = None if revision is not None: self.revision_obj = self.svn.revision("number", revision) self.load() def load(self): self.table.clear() try: self.proplist = self.svn.revproplist( self.get_widget("path").get_text(), self.revision_obj) except Exception as e: log.exception(e) rabbitvcs.ui.dialog.MessageBox( _("Unable to retrieve properties list")) self.proplist = {} if self.proplist: for key, val in list(self.proplist.items()): self.table.append([False, key, val.rstrip()]) def save(self): delete_recurse = self.get_widget("delete_recurse").get_active() self.action = SVNAction(self.svn, notification=False, run_in_thread=False) for row in self.delete_stack: self.action.append(self.svn.revpropdel, self.path, row[1], self.revision_obj, force=True) for row in self.table.get_items(): self.action.append(self.svn.revpropset, row[1], row[2], self.path, self.revision_obj, force=True) self.action.run() self.close()