Ë 1Àä5÷Èãóî—dZddlmZddlmZddlmZddl m Z m Z m Z m Z mZmZmZmZddlmZmZddlmZiZej0e«Zedd d¬ «edd d¬ «edd d ¬ «d„Zd„Zdd„Zy)aƒchangeset_obsoleted is a hook to send a mail when an existing draft changeset is obsoleted by an obsmarker without successor. Correct message threading requires the same messageidseed to be used for both the original notification and the new mail. Usage: [notify] messageidseed = myseed [hooks] txnclose.changeset_obsoleted = python:hgext.hooklib.changeset_obsoleted.hook éN)Ú_)ÚencodingÚerrorÚ formatterÚ logcmdutilÚmailÚobsutilÚpycompatÚ registrar)ÚdateutilÚ stringutilé)Únotifyónotify_obsoletedódomain)Údefaultó messageidseedótemplatesASubject: changeset abandoned This changeset has been abandoned. cóH—|jdd«xs|jdd«}|jdd«xs|jdd«}|jdd«}tj|«}tj|||«}|j «t j||d«}t«} |jD]W\} }|€| j| «Œ|jd||j««} t| «sŒG| j| «ŒYt| «dk(r|jd «y|j||j!«|jd d «|j"|j"¬ «|j%«} t'j(| «} t j6|||«| d <t j6|||dz«| d<t9j:t=j>d¬««| d<| dsl|jdd«xs|jA«}d|vsd|vr|jC|«}t'jD|||jF|jH«| d<djKtM| ««| d<| jO«}|jQdd«r5|jS|«|jUd«s|jSd«yy|jWtYd«|j«z«t'jZ|t]j^| d«d| ||j`¬«y#t*j,$r-}t/j0t3j4|««‚d}~wwxYw)Nrrsnotifyrrsincomings %r and %d:rs=notify_obsoleted: no subscribers to selected repo and revset swebsbaseurl)ÚchangesÚbaseurlÚrootÚwebrootz In-reply-tos -obsoletedz Message-Ids%a, %d %b %Y %H:%M:%S %1%2)ÚformatÚDateÚFromsemailsfromó@s @localhostz, ÚTostestó s&notify_obsoleted: sending mail for %d é)Úmbox)1ÚconfigrÚliteral_templatespecrÚchangesettemplaterÚ pushbufferrÚnotifierÚsetÚsubsÚaddÚrevsÚrevÚlenÚdebugÚshowÚ changesetrÚ popbufferrÚ parsebytesÚ emailerrorsÚMessageParseErrorrÚAbortr Ú forcebytestrÚ messageidrÚ strfromlocalr ÚdatestrÚusernameÚfixmailÚ addressencodeÚcharsetsÚtestÚjoinÚsortedÚas_bytesÚ configboolÚwriteÚendswithÚstatusrÚsendmailÚ emailutilsÚ parseaddrr!)ÚuiÚrepoÚctxÚdomainÚ messageidseedÚtemplateÚspecÚ templaterÚnr(Úsubr*ÚdataÚmsgÚinstÚsenderÚmsgtexts úEusr/lib/python3.12/site-packages/hgext/hooklib/changeset_obsoleted.pyÚ_report_commitrX@s€Ø �Y‰YÐ*¨IÓ 6ò¸"¿)¹)Ø�9ó;€Fð—I‘IØÐ-óò0à �‰�9Ð.Ó /ðð�y‰yÐ,¨kÓ:€HÜ × )Ñ )¨(Ó 3€DÜ×-Ñ-¨b°$¸Ó=€I؇M�M„OÜ�‰˜˜D +Ó.€Aä ‹5€DØ—V”V‰ ˆˆTØ ˆ<Ø �H‰H�SŒMØ Ø�y‰y˜¨¨c¯g©g«iÓ8ˆÜ ˆt�9Ø �H‰H�SŒMØ ðô ˆ4ƒy�A‚~Ø �‰Ø Mô ð à ‡N�NØ Ø— ‘ “Ø— ‘ ˜& *Ó-Ø �Y‰YØ—‘ð ôð �<‰<‹>€Dð9Ü�o‰o˜dÓ#ˆô ×)Ñ)¨#¨v°}ÓE€Cˆ ÑÜ×(Ñ(Ø ˆV�] ]Ñ2ó€Cˆ Ñô×'Ñ'Ü×ÑÐ =Ô>ó€Cˆ�Kð ˆvŠ;Ø—‘˜8 WÓ-Ò>°·±³ˆØ �vÑ  °&Ñ!8Ø—Y‘Y˜vÓ&ˆFÜ×(Ñ(¨¨V°Q·Z±ZÀÇÁÓHˆˆF‰ Ø— ‘ œ& ›,Ó'€Cˆ�Ià�l‰l‹n€GØ ‡}�}�Y Ô(Ø �‰�ÔØ×Ñ Ô&Ø �H‰H�U�Oð'ð � ‰ ”!Ð>Ó?À#Ç'Á'Ã)ÑKÔLÜ � ‰ Ø ” ×$Ñ$ S¨¡[Ó1°!Ñ4°d¸GÈ!Ï&É&ö øô1 × (Ñ (ò9Ü�k‰kœ*×1Ñ1°$Ó7Ó8Ð8ûð9úsÆM!Í!N!Í4(NÎN!cój‡—tˆfd„tj|j‰g«D««S)Nc3ó.•K—|] }|‰k7sŒ |–—Œy­w©N©)Ú.0Úrr+s €rWÚ z has_successor..…søèø€ðÙ>ˆaÀ!ÀsÃ(ŒÑ>ùsƒ Ž)Úanyr Ú allsuccessorsÚobsstore)rIr+s `rWÚ has_successorrc„s0ø€Ü óÜ×(Ñ(¨¯©¸¸Ô>óó ðóc ó*—|dk7r4tjtd«tj|«z«‚t j ||d¬«D]=}|j«|}t||j««rŒ1t|||«Œ?y)NstxnclosesUnsupported hook type %rr)r) rr4rr Úbytestrr Ú getobsoletedÚ unfilteredrcÚnoderX)rHrIÚhooktyperiÚkwargsr+rJs rWÚhookrlŠs€€Ø�;ÒÜ�k‰kÜ Ð)Ó *¬X×-=Ñ-=¸hÓ-GÑ Gó ð ô×#Ñ# D°&¸Ñ2C×DˆØ�o‰oÓ Ñ$ˆÜ˜T 3§8¡8£:Õ.Ü ˜2˜t SÕ )ñErdr[)Ú__doc__Ú email.errorsÚerrorsr2Ú email.utilsÚutilsrFÚmercurial.i18nrÚ mercurialrrrrrr r r Úmercurial.utilsr r ÚrÚ configtableÚ configitemrXrcrlr\rdrWÚrxs�ðñ õ #Ý å÷ ÷ ó ÷õà€ Ø !ˆY× !Ñ ! +Ó .€ á ØØ Ø õñ  ØØØ õñ  ØØð õòA òHô *rd