Author: gstein
Date: Fri Dec 15 09:44:03 2023
New Revision: 1914679
URL: http://svn.apache.org/viewvc?rev=1914679&view=rev
Log:
class DifflibDiffContent does not work, and maybe never did. There is
no .next() method on the unified_diff() result object. While it would
be possible to use the next() function, it is better to just remove
this entirely and require the host OS to have a diff executable (not a
hard requirement).
* tools/hook-scripts/mailer/mailer.py:
(DiffGenerator.__getitem__): remove OSError exception, as the diff
executable must be present.
(class DifflibDiffContent): removed.
Modified:
subversion/trunk/tools/hook-scripts/mailer/mailer.py
Modified: subversion/trunk/tools/hook-scripts/mailer/mailer.py
URL:
http://svn.apache.org/viewvc/subversion/trunk/tools/hook-scripts/mailer/mailer.py?rev=1914679&r1=1914678&r2=1914679&view=diff
==============================================================================
--- subversion/trunk/tools/hook-scripts/mailer/mailer.py (original)
+++ subversion/trunk/tools/hook-scripts/mailer/mailer.py Fri Dec 15 09:44:03
2023
@@ -1016,17 +1016,13 @@ class DiffGenerator:
if binary:
content = src_fname = dst_fname = None
else:
- src_fname, dst_fname = diff.get_files()
- try:
+ src_fname, dst_fname = diff.get_files()
content = DiffContent(self.cfg.get_diff_cmd(self.group, {
'label_from' : label1,
'label_to' : label2,
'from' : src_fname,
'to' : dst_fname,
}))
- except OSError:
- # diff command does not exist, try difflib.unified_diff()
- content = DifflibDiffContent(label1, label2, src_fname, dst_fname)
# return a data item for this diff
return _data(
@@ -1101,36 +1097,6 @@ class DiffContent:
raise IndexError
line, ltype, self.seen_change = _classify_diff_line(line, self.seen_change)
- return _data(
- raw=line,
- text=line[1:-1], # remove indicator and newline
- type=ltype,
- )
-
-
-class DifflibDiffContent():
- "This is a generator-like object returning annotated lines of a diff."
-
- def __init__(self, label_from, label_to, from_file, to_file):
- import difflib
- self.seen_change = False
- fromlines = open(from_file, 'U').readlines()
- tolines = open(to_file, 'U').readlines()
- self.diff = difflib.unified_diff(fromlines, tolines,
- label_from, label_to)
-
- def __nonzero__(self):
- # we always have some items
- return True
-
- def __getitem__(self, idx):
-
- try:
- line = self.diff.next()
- except StopIteration:
- raise IndexError
-
- line, ltype, self.seen_change = _classify_diff_line(line, self.seen_change)
return _data(
raw=line,
text=line[1:-1], # remove indicator and newline