diff --git a/product/ERP5Subversion/SubversionClient.py b/product/ERP5Subversion/SubversionClient.py index b1433b75b04aeeb7db8634e69d934d0e32fe390c..b37aa3e3332ca88401e54a251f3ccb84f2eb40ba 100644 --- a/product/ERP5Subversion/SubversionClient.py +++ b/product/ERP5Subversion/SubversionClient.py @@ -251,11 +251,15 @@ try: # Since plain Python classes are not convenient in Zope, convert the objects. return [Status(x) for x in self.client.status(path, **kw)] - def diff(self, path): + def diff(self, path, revision1, revision2): self._getPreferences() tmp = mktemp() os.system('mkdir -p %s'%tmp) - diff = self.client.diff(tmp_path=tmp, url_or_path=path, recurse=False) + if not revision1 or not revision2: + diff = self.client.diff(tmp_path=tmp, url_or_path=path, recurse=False) + else: + diff = self.client.diff(tmp_path=tmp, url_or_path=path, recurse=False, revision1=pysvn.Revision(pysvn.opt_revision_kind.number,revision1), revision2=pysvn.Revision(pysvn.opt_revision_kind.number,revision2)) + # clean up temp dir os.system('rm -rf %s'%tmp) return diff diff --git a/product/ERP5Subversion/Tool/SubversionTool.py b/product/ERP5Subversion/Tool/SubversionTool.py index 92dd174f60077117c6663dd78fbe6e346e1114a3..dffb38081a58d801a5911dda1eaedd311ad61d04 100644 --- a/product/ERP5Subversion/Tool/SubversionTool.py +++ b/product/ERP5Subversion/Tool/SubversionTool.py @@ -188,7 +188,7 @@ class DiffFile: def toHTML(self): # Adding header of the table if self.binary: - return '<b>Binary File!</b><br><br><br>' + return '<b>Binary File or no changes!</b><br><br><br>' html = ''' <table style="text-align: left; width: 100%%;" border="0" cellpadding="0" cellspacing="0"> @@ -520,8 +520,8 @@ class SubversionTool(UniqueObject, Folder): trust_item_list, permanent = loads(b64decode(trust)) return dict(trust_item_list), permanent - def diffHTML(self, file_path): - raw_diff = self.diff(file_path) + def diffHTML(self, file_path, revision1=None, revision2=None): + raw_diff = self.diff(file_path, revision1, revision2) return DiffFile(raw_diff).toHTML() # Display a file content in HTML @@ -652,11 +652,11 @@ class SubversionTool(UniqueObject, Folder): return client.ls(path) security.declareProtected('Import/Export objects', 'diff') - def diff(self, path): + def diff(self, path, revision1=None, revision2=None): """Make a diff for a file or a directory. """ client = self._getClient() - return client.diff(path) + return client.diff(path, revision1, revision2) security.declareProtected('Import/Export objects', 'revert') def revert(self, path):