Author: gstein
Date: Fri Dec 15 10:33:53 2023
New Revision: 1914682

URL: http://svn.apache.org/viewvc?rev=1914682&view=rev
Log:
Simplify generate_changelist_diffs() by iterating the CHANGELIST
parameter, rather than indexing into it. Remove the fake SELF.

* tools/hook-scripts/mailer/mailer.py:
  (generate_changelist_diffs): remove all the SELF gunk, and just use
    the arguments directly. The diffsels and diffurls are simple local
    variables now. No functional change.
    
    Iterate over the CHANGELIST parameter to simplify the generator
    and its termination.

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=1914682&r1=1914681&r2=1914682&view=diff
==============================================================================
--- subversion/trunk/tools/hook-scripts/mailer/mailer.py (original)
+++ subversion/trunk/tools/hook-scripts/mailer/mailer.py Fri Dec 15 10:33:53 
2023
@@ -862,30 +862,10 @@ def generate_changelist_diffs(changelist
                               date, group, params, pool):
     "This is a generator returning diffs for each change."
 
-    ### for now, pretend we're still an object, like the former
-    ### incarnation, in order to minimize textual changes.
-    self = _data()
-    self.changelist = changelist
-    self.paths = paths
-    self.in_paths = in_paths
-    self.cfg = cfg
-    self.repos = repos
-    self.date = date
-    self.group = group
-    self.params = params
-    self.pool = pool
-
-    self.idx = 0
-
-    self.diffsels = DiffSelections(cfg, group, params)
-    self.diffurls = DiffURLSelections(cfg, group, params)
-
-    while True:
-      if self.idx == len(self.changelist):
-          return  # will raise StopIteration
+    diffsels = DiffSelections(cfg, group, params)
+    diffurls = DiffURLSelections(cfg, group, params)
 
-      path, change = self.changelist[self.idx]
-      self.idx = self.idx + 1
+    for path, change in changelist:
 
       diff = diff_url = None
       kind = None
@@ -902,14 +882,14 @@ def generate_changelist_diffs(changelist
         continue
 
       # is this change in (or out of) the set of matched paths?
-      if (path in self.paths) != self.in_paths:
+      if (path in paths) != in_paths:
         continue
 
       if change.base_rev != -1:
-        svndate = self.repos.get_rev_prop(svn.core.SVN_PROP_REVISION_DATE,
-                                          self.pool, change.base_rev)
+        svndate = repos.get_rev_prop(svn.core.SVN_PROP_REVISION_DATE,
+                                     pool, change.base_rev)
         ### pick a different date format?
-        base_date = time.ctime(svn.core.secs_from_timestr(svndate, self.pool))
+        base_date = time.ctime(svn.core.secs_from_timestr(svndate, pool))
       else:
         base_date = ''
 
@@ -923,14 +903,14 @@ def generate_changelist_diffs(changelist
         kind = 'D'
 
         # get the diff url, if any is specified
-        diff_url = self.diffurls.get_delete_url(self.repos.rev, change)
+        diff_url = diffurls.get_delete_url(repos.rev, change)
 
         # show the diff?
-        if self.diffsels.delete:
-          diff = svn.fs.FileDiff(self.repos.get_root(change.base_rev),
-                                 base_path_bytes, None, None, self.pool)
+        if diffsels.delete:
+          diff = svn.fs.FileDiff(repos.get_root(change.base_rev),
+                                 base_path_bytes, None, None, pool)
 
-          label1 = '%s\t%s\t(r%s)' % (base_path, self.date, change.base_rev)
+          label1 = '%s\t%s\t(r%s)' % (base_path, date, change.base_rev)
           label2 = '/dev/null\t00:00:00 1970\t(deleted)'
           singular = True
 
@@ -944,30 +924,30 @@ def generate_changelist_diffs(changelist
             kind = 'W'
 
             # get the diff url, if any is specified
-            diff_url = self.diffurls.get_copy_url(self.repos.rev, change)
+            diff_url = diffurls.get_copy_url(repos.rev, change)
 
             # show the diff?
-            if self.diffsels.modify:
-              diff = svn.fs.FileDiff(self.repos.get_root(change.base_rev),
+            if diffsels.modify:
+              diff = svn.fs.FileDiff(repos.get_root(change.base_rev),
                                      base_path_bytes,
-                                     self.repos.root_this, change.path,
-                                     self.pool)
+                                     repos.root_this, change.path,
+                                     pool)
               label1 = ('%s\t%s\t(r%s, copy source)'
                         % (base_path, base_date, change.base_rev))
               label2 = ('%s\t%s\t(r%s)'
-                        % (to_str(change.path), self.date, self.repos.rev))
+                        % (to_str(change.path), date, repos.rev))
               singular = False
           else:
             # this file was copied.
             kind = 'C'
-            if self.diffsels.copy:
-              diff = svn.fs.FileDiff(None, None, self.repos.root_this,
-                                     change.path, self.pool)
+            if diffsels.copy:
+              diff = svn.fs.FileDiff(None, None, repos.root_this,
+                                     change.path, pool)
               label1 = ('/dev/null\t00:00:00 1970\t'
                         '(empty, because file is newly added)')
               label2 = ('%s\t%s\t(r%s, copy of r%s, %s)'
                         % (to_str(change.path),
-                           self.date, self.repos.rev, change.base_rev,
+                           date, repos.rev, change.base_rev,
                            base_path))
               singular = False
         else:
@@ -975,16 +955,16 @@ def generate_changelist_diffs(changelist
           kind = 'A'
 
           # get the diff url, if any is specified
-          diff_url = self.diffurls.get_add_url(self.repos.rev, change)
+          diff_url = diffurls.get_add_url(repos.rev, change)
 
           # show the diff?
-          if self.diffsels.add:
-            diff = svn.fs.FileDiff(None, None, self.repos.root_this,
-                                   change.path, self.pool)
+          if diffsels.add:
+            diff = svn.fs.FileDiff(None, None, repos.root_this,
+                                   change.path, pool)
             label1 = '/dev/null\t00:00:00 1970\t' \
                      '(empty, because file is newly added)'
             label2 = '%s\t%s\t(r%s)' \
-                     % (to_str(change.path), self.date, self.repos.rev)
+                     % (to_str(change.path), date, repos.rev)
             singular = True
 
       elif not change.text_changed:
@@ -995,18 +975,18 @@ def generate_changelist_diffs(changelist
         kind = 'M'
 
         # get the diff url, if any is specified
-        diff_url = self.diffurls.get_modify_url(self.repos.rev, change)
+        diff_url = diffurls.get_modify_url(repos.rev, change)
 
         # show the diff?
-        if self.diffsels.modify:
-          diff = svn.fs.FileDiff(self.repos.get_root(change.base_rev),
+        if diffsels.modify:
+          diff = svn.fs.FileDiff(repos.get_root(change.base_rev),
                                  base_path,
-                                 self.repos.root_this, change.path,
-                                 self.pool)
+                                 repos.root_this, change.path,
+                                 pool)
           label1 = '%s\t%s\t(r%s)' \
                    % (base_path, base_date, change.base_rev)
           label2 = '%s\t%s\t(r%s)' \
-                   % (to_str(change.path), self.date, self.repos.rev)
+                   % (to_str(change.path), date, repos.rev)
           singular = False
 
       if diff:
@@ -1015,7 +995,7 @@ def generate_changelist_diffs(changelist
           content = src_fname = dst_fname = None
         else:
             src_fname, dst_fname = diff.get_files()
-            content = generate_diff(self.cfg.get_diff_cmd(self.group, {
+            content = generate_diff(cfg.get_diff_cmd(group, {
               'label_from' : label1,
               'label_to' : label2,
               'from' : src_fname,


Reply via email to