Ë �u—Ù“ï+ãóÌ—ddlZddlZddlmZddlmZddlmZmZm Z m Z m Z m Z ddl mZddlmZd„Zd „Zd „Zd „Zd „Zd „Zd„Zej0d„«Zdd„Zd„Zd„Zd„Zy)éN)Ú_)Úopen)ÚerrorÚ extensionsÚhgÚutilÚwireprotov1peerÚwireprotov1server)Úurlutilé)Úcontextcój—|jdd«}|stjtd««‚|S)z)get the mainbranch, and enforce it is setó fastannotates mainbranchsFfastannotate.mainbranch is required for both the client and the server)ÚconfigrÚAbortr)ÚuiÚmasters ú?usr/lib/python3.12/site-packages/hgext/fastannotate/protocol.pyÚ _getmasterrs:€à �Y‰Y�¨ Ó 6€FÙ Ü�k‰kÜ ð6ó ó ð ð €Mócó:—|||«}|jd«|S)Nó getannotate)Úappend)ÚorigÚrepoÚprotoÚresults rÚ _capabilitiesr-s€Ù �$˜Ó €FØ ‡M�M�.Ô!Ø €Mrcór—d}|jjddd«}tj||«5}|rIt |j«} |j |«s|j ||«|j«|j|k7r�|j|jfD]‚}tjj|«sŒ#t!|d«5} | j#«} ddd«t%|j&j(dz«} || d} |d| t% «| fzz }Œ„ddd«|S#t$rG|j« |j ||«n#t$r|j«YnwxYwY�ŒwxYw#|j«wxYw#1swYŒ¸xYw#1swY|SxYw)NrrsserverbuildondemandTsrbó/s%s%d%s)rÚ configboolr ÚannotatecontextrÚ isuptodateÚannotateÚ ExceptionÚrebuildÚcloseÚlastnodeÚ revmappathÚ linelogpathÚosÚpathÚexistsrÚreadÚlenÚvfsÚbase) rrr,r(rÚ buildondemandÚactxrÚpÚfÚcontentÚ vfsbaselenÚrelpaths rÚ _getannotater93sy€ð€FØ—G‘G×&Ñ&ØÐ/°ó€Mô × Ñ   tÔ ,°Ù ä §¡Ó(ˆFð Ø—‘ vÔ.Ø—M‘M &¨&Ô1ð— ‘ ” ð �=‰=˜HÒ $Ø—o‘o t×'7Ñ'7Ó8�Ü—w‘w—~‘~ aÔ(ØÜ˜!˜U”^ qØŸf™f›h�G÷$ä  §¡§¡°Ñ!5Ó6� ؘJ˜K˜.�ؘ-¨7´C¸³LÀ'Ð*JÑJÑJ‘ð9÷1 -ð@ €Møô3ò #à— ‘ ”ð#Ø—M‘M &¨&Õ1øÜ ò#Ø—L‘L–Nð#ýð  #ûð— ‘ • ú÷$�^ú÷7 -ð@ €Músy¶F,Á#D8Á2A&F,ÃF Ã)AF,Ä8FÅE%Å$FÅ%FÅ>FÆFÆFÆF ÆFÆF Æ FÆF,Æ F) Æ%F,Æ,F6cój—dtjvrytjdd«t«y)Nrs path lastnode)r ÚcommandsÚwireprotocommandr9©rrÚ_registerwireprotocommandr>^s0€ØÔ*×3Ñ3Ñ3ØØHÔ×&Ñ& ~Ð7GÓHÜõrcóV—t«tjtdt«y)Ns _capabilities)r>rÚ wrapfunctionr r©rs rÚ serveruisetuprBfs€ÜÔÜ×ÑÔ-Ð/?ÄÕOrcó—i}d}t|«dz }d}dx}}||kri|||dz}|dk(r<|dk(r/||dz|dzt|«z||<|t|«z }d}dx}}n|dk(rd}n|dk(r||z }n |dk(r||z }|dz }||krŒi|S)Nrr ró)r/Úint)ÚpayloadrÚiÚlÚstateÚvfspathÚsizeÚchs rÚ_parseresponserMnsÐ€Ø €FØ €AÜ ˆG‹ �qÑ€AØ €EØÐ€GˆdØ ˆaŠ%Ø �Q˜˜Q™Ð ˆØ �Š;ؘŠzØ")¨!¨a©%°!°a±%¼#¸d»)Ñ2CÐ"D��w‘Ø”S˜“Y‘�Ø�Ø!$Ð$�™$ؘ!’Ø‘à˜Šzؘ‘ ‘ؘ!’ؘ2‘ �Ø ˆQ‰ˆð ˆa‹%ð €MrcóB‡—Gˆfd„d|j«}||_y)Ncó8•—eZdZejdˆfd„ «Zy)ú#peersetup..fastannotatepeerNcó~•—|jd«s‰jtd««y||xsddœ}|tfS)Nrs*remote peer cannot provide annotate cache ©NNr©spathslastnode)ÚcapableÚwarnrrM)Úselfr,r(Úargsrs €rÚ getannotatez/peersetup..fastannotatepeer.getannotate‰s=ø€à—<‘< Ô/Ø—‘œÐHÓIÔJØ!à!%°H²OÀÑD�Øœ^Ð+Ð+r©N)Ú__name__Ú __module__Ú __qualname__r Ú batchablerXrAs€rÚfastannotatepeerrPˆsø„Ø × "Ñ "ô ,ó #ñ ,rr^©Ú __class__)rÚpeerr^s` rÚ peersetuprb‡sø€ö,˜4Ÿ>™>ô,ð&€D…Nrc#óúK—|j}|jddd«}tjd||«}t j |i|«} |–—|j «y#|j «wxYw­w)Nrs remotepathsdefault)rrr Úget_unique_pull_path_objrrar')rrÚ remotedestÚ remotepathras rÚ annotatepeerrg•sjèø€à �‰€Bà—‘˜?¨M¸:ÓF€JÜ×1Ñ1ØØ Øó€Jô �7‰7�2�r˜:Ó &€DðØŠ à � ‰ � øˆ� ‰ � üs‚AA;ÁA&ÁA;Á&A8Á8A;c óð—|sy|€#t|«5}t||||«cddd«S|€i}|j}g}|j«5}|j dt |«z«|D]5}|j |jd||j|«dœ««Œ7|D�]}|j«} | j«D�� cic]\}} tj|«| “Œ} }} t| «D]Ã} | jd«rd| dzvr|j d| z«Œ0| | } |jr|j d t | «| fz«|j j#t$j&j)| ««|j!| d «5} | j+| «ddd«ŒÅ�Œ ddd«y#1swY�Œ®xYwcc} }w#1swYŒïxYw#1swYyxYw) z1download annotate cache from the server for pathsNs"fastannotate: requesting %d files rrSs fastannotate/s/../r s(fastannotate: ignored malicious path %s s%fastannotate: writing %d bytes to %s swb)rgÚ clientfetchrÚcommandexecutorÚdebugr/rÚ callcommandÚgetrÚitemsrÚpconvertÚsortedÚ startswithÚ debugflagr0Úmakedirsr+r,ÚdirnameÚwrite)rÚpathsÚ lastnodemaprarÚresultsÚbatcherr4rÚrÚvr,r6r5s rriri§sÇ€á Øà €|Ü ˜$Ô  4ܘt U¨K¸Ó>÷ Ñ ðÐØˆ à �‰€BØ€GØ × Ñ Ô  7Ø �‰Ð7¼#¸e»*ÑDÔEÛˆAØ �N‰NØ×#Ñ#Ø"بk¯o©o¸aÓ.@ÑAóõ ðôˆFØ— ‘ “ˆAà12·±´Ô;±©¨¨A”—‘˜qÓ! 1Ñ$°ˆAÑ;ܘqž �à—‘Ð'7Ô8¸Gؘ4‘Kñ=ð—H‘HØDÀtÑKôðؘD™'�Ø—<’<Ø—H‘HØAܘw›<¨Ð.ñ/ôð—‘×!Ñ!¤"§'¡'§/¡/°$Ó"7Ô8Ø—X‘X˜d EÔ*¨aØ—G‘G˜GÔ$÷+Ð*ò!"ñ ÷ Ð ÷ Ñ üó*<÷"+Ð*ú÷= Ð úsC‘G Á BG,à G Ã,B8G,Æ$G Æ6 G,Ç GÇG,Ç G) Ç%G,Ç,G5cóþ—|jjddd«}|dkr|Sg}|D]1} t|j|««|k\r|j |«Œ3|S#t $r|j |«YŒRwxYw)z˜return a subset of paths whose history is long and need to fetch linelog from the server. works with remotefilelog and non-remotefilelog repos. rsclientfetchthresholdé r)rÚ configintr/Úfilerr%)rrvÚ thresholdrr,s rÚ_filterfetchpathsr�×sƒ€ð—‘×!Ñ! /Ð3JÈBÓO€IØ�A‚~؈ à €FÛˆð Ü�4—9‘9˜T“?Ó# yÒ0Ø— ‘ ˜dÔ#øðð €Møôò Ø �M‰M˜$Ö ð ús­.AÁA<Á;A<có<—Gd„d|j«}||_y)Ncó—eZdZdd„Zy)ú(localreposetup..fastannotaterepoNcó —t|j«}g}i} t||«D]T}tj||«5}|j |d¬«s |j |«|j||<ddd«ŒV|rt||||«yy#1swYŒrxYw#t$r(}|jjd|z«Yd}~yd}~wwxYw)NF)Ústricts"fastannotate: prefetch failed: %r ) rrr�r r"r#rr(rir%rk) rVrvrarÚneedupdatepathsrwr,r3Úexs rÚprefetchfastannotatez=localreposetup..fastannotaterepo.prefetchfastannotateìsĀܠ§¡Ó(ˆFØ ˆO؈Kð KÜ-¨d°EÖ:�DÜ ×0Ñ0°°tÔ<ÀØ#Ÿ™¨v¸e˜ÔDØ+×2Ñ2°4Ô8Ø04· ± ˜K¨Ñ-÷=Ð<ð;ñ #Ü  o°{ÀDÕIð#÷ =Ð<ûô ò Kà—‘— ‘ ÐDÀrÑI×JÑJûð Kús/›%BÁ4BÁ4BÂB ÂB C Â%CÃC rY)rZr[r\r‰r=rrÚfastannotaterepor„ës„ô KrrŠr_)rrrŠs rÚlocalreposetupr‹ês€ôK˜4Ÿ>™>ôKð"&€D…NrcóÄ—t«|j«r t||«ttj vr$tj j t«yyrY)r>Úlocalr‹rbrÚwirepeersetupfuncsr)rrs rÚclientreposetupr�ÿsD€ÜÔØ ‡z�z„|Ü�r˜4Ô ôœ×-Ñ-Ñ-Ü ×Ñ×$Ñ$¤YÕ/ð.rrR)Ú contextlibr+Úmercurial.i18nrÚmercurial.pycompatrÚ mercurialrrrrr r Úmercurial.utilsr Úr rrr9r>rBrMrbÚcontextmanagerrgrir�r‹r�r=rrÚr—s{ðóÛ åÝ#÷÷õõò ò ò (òVòPòò2 &ð ×Ññóðó"-%ò`ò&&ó*0r