hgext/hooklib/changeset_obsoleted.py
changeset 45075 04ef381000a8
parent 44413 4cabeea6d214
child 45268 3c2fae87bd5a
equal deleted inserted replaced
45074:797ef6f8295e 45075:04ef381000a8
   120         mail.sendmail(
   120         mail.sendmail(
   121             ui, emailutils.parseaddr(msg['From'])[1], subs, msgtext, mbox=n.mbox
   121             ui, emailutils.parseaddr(msg['From'])[1], subs, msgtext, mbox=n.mbox
   122         )
   122         )
   123 
   123 
   124 
   124 
       
   125 def has_successor(repo, rev):
       
   126     return any(
       
   127         r for r in obsutil.allsuccessors(repo.obsstore, [rev]) if r != rev
       
   128     )
       
   129 
       
   130 
   125 def hook(ui, repo, hooktype, node=None, **kwargs):
   131 def hook(ui, repo, hooktype, node=None, **kwargs):
   126     if hooktype != b"pretxnclose":
   132     if hooktype != b"txnclose":
   127         raise error.Abort(
   133         raise error.Abort(
   128             _(b'Unsupported hook type %r') % pycompat.bytestr(hooktype)
   134             _(b'Unsupported hook type %r') % pycompat.bytestr(hooktype)
   129         )
   135         )
   130     for rev in obsutil.getobsoleted(repo, repo.currenttransaction()):
   136     for rev in obsutil.getobsoleted(repo, changes=kwargs['changes']):
   131         _report_commit(ui, repo, repo.unfiltered()[rev])
   137         ctx = repo.unfiltered()[rev]
       
   138         if not has_successor(repo, ctx.node()):
       
   139             _report_commit(ui, repo, ctx)