Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset 4bbba4a in mainline


Ignore:
Timestamp:
2012-07-30T14:33:12Z (9 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master
Children:
b553acc
Parents:
5ea75f0
Message:

when pushing more revisions at once, send multiple individual emails
(instead of doing some ad hoc decisions on what to do with the subject, etc.)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • contrib/bazaar/bzreml/__init__.py

    r5ea75f0 r4bbba4a  
    108108                if (revision_ac_id == revision_old_id):
    109109                        break
     110               
    110111                yield revision_ac_id
    111112
     
    117118                branch.repository.lock_read()
    118119                try:
    119                         body = StringIO()
     120                        revision_prev_id = revision_old_id
    120121                       
    121                         commit_message_new = None
    122                         for revision_ac_id in revision_sequence(branch, revision_old_id, revision_new_id):
     122                        for revision_ac_id in reversed(list(revision_sequence(branch, revision_old_id, revision_new_id))):
     123                                body = StringIO()
     124                               
    123125                                revision_ac = branch.repository.get_revision(revision_ac_id)
    124126                                revision_ac_no = branch.revision_id_to_revno(revision_ac_id)
     
    140142                                body.write("\n")
    141143                               
    142                                 commit_message = ""
     144                                commit_message = None
    143145                                body.write("Log:\n")
    144146                                if (not revision_ac.message):
     
    148150                                        for line in log.split("\n"):
    149151                                                body.write("%s\n" % line)
    150                                                 if (commit_message == ""):
     152                                                if (commit_message == None):
    151153                                                        commit_message = line
    152154                               
    153                                 if (commit_message == ""):
     155                                if (commit_message == None):
    154156                                        commit_message = "(empty)"
    155157                               
    156                                 if commit_message_new == None:
    157                                         commit_message_new = commit_message
    158                                
    159158                                body.write("\n")
     159                               
     160                                tree_prev = branch.repository.revision_tree(revision_prev_id)
     161                                tree_ac = branch.repository.revision_tree(revision_ac_id)
     162                               
     163                                delta = tree_ac.changes_from(tree_prev)
     164                               
     165                                if (len(delta.added) > 0):
     166                                        body.write("Added:\n")
     167                                        for item in delta.added:
     168                                                body.write("    %s\n" % item[0])
     169                               
     170                                if (len(delta.removed) > 0):
     171                                        body.write("Removed:\n")
     172                                        for item in delta.removed:
     173                                                body.write("    %s\n" % item[0])
     174                               
     175                                if (len(delta.renamed) > 0):
     176                                        body.write("Renamed:\n")
     177                                        for item in delta.renamed:
     178                                                body.write("    %s -> %s\n" % (item[0], item[1]))
     179                               
     180                                if (len(delta.kind_changed) > 0):
     181                                        body.write("Changed:\n")
     182                                        for item in delta.kind_changed:
     183                                                body.write("    %s\n" % item[0])
     184                               
     185                                if (len(delta.modified) > 0):
     186                                        body.write("Modified:\n")
     187                                        for item in delta.modified:
     188                                                body.write("    %s\n" % item[0])
     189                               
     190                                body.write("\n")
     191                               
     192                                tree_prev.lock_read()
     193                                try:
     194                                        tree_ac.lock_read()
     195                                        try:
     196                                                diff = DiffTree.from_trees_options(tree_prev, tree_ac, body, "utf8", None, "", "", None)
     197                                                diff.show_diff(None, None)
     198                                        finally:
     199                                                tree_ac.unlock()
     200                                finally:
     201                                        tree_prev.unlock()
     202                               
     203                                subject = "r%d - %s" % (revision_ac_no, commit_message)
     204                                send_smtp("localhost", config_sender(config), config_to(config), subject, body.getvalue())
     205                               
     206                                revision_prev_id = revision_ac_id
    160207                       
    161                         if commit_message_new == None:
    162                                 commit_message_new = "(none)"
    163                        
    164                         tree_old = branch.repository.revision_tree(revision_old_id)
    165                         tree_new = branch.repository.revision_tree(revision_new_id)
    166                        
    167                         revision_new_no = branch.revision_id_to_revno(revision_new_id)
    168                         delta = tree_new.changes_from(tree_old)
    169                        
    170                         if (len(delta.added) > 0):
    171                                 body.write("Added:\n")
    172                                 for item in delta.added:
    173                                         body.write("    %s\n" % item[0])
    174                        
    175                         if (len(delta.removed) > 0):
    176                                 body.write("Removed:\n")
    177                                 for item in delta.removed:
    178                                         body.write("    %s\n" % item[0])
    179                        
    180                         if (len(delta.renamed) > 0):
    181                                 body.write("Renamed:\n")
    182                                 for item in delta.renamed:
    183                                         body.write("    %s -> %s\n" % (item[0], item[1]))
    184                        
    185                         if (len(delta.kind_changed) > 0):
    186                                 body.write("Changed:\n")
    187                                 for item in delta.kind_changed:
    188                                         body.write("    %s\n" % item[0])
    189                        
    190                         if (len(delta.modified) > 0):
    191                                 body.write("Modified:\n")
    192                                 for item in delta.modified:
    193                                         body.write("    %s\n" % item[0])
    194                        
    195                         body.write("\n")
    196                        
    197                         tree_old.lock_read()
    198                         try:
    199                                 tree_new.lock_read()
    200                                 try:
    201                                         diff = DiffTree.from_trees_options(tree_old, tree_new, body, "utf8", None, "", "", None)
    202                                         diff.show_diff(None, None)
    203                                 finally:
    204                                         tree_new.unlock()
    205                         finally:
    206                                 tree_old.unlock()
    207                        
    208                         subject = "r%d - %s" % (revision_new_no, commit_message_new)
    209                        
    210                         send_smtp("localhost", config_sender(config), config_to(config), subject, body.getvalue())
    211208                finally:
    212209                        branch.repository.unlock()
Note: See TracChangeset for help on using the changeset viewer.