Ë —üÌ©Hàªãó—ddlZddlZddlZddlmZddlmZddlmZm Z m Z m Z m Z mZm Z ddlmZmZdZej$r-ddlmZmZmZmZmZmZdd lmZmZmZmZmZm Z!ee"ee"e"e"ffZ#d „Z$d „Z%dd „Z&dd „Z'd„Z(d„Z)d„Z*dd„Z+d„Z,y)éNé)Ú_)Úgetattr)ÚconfigÚerrorÚ filemergeÚpathutilÚphasesÚpycompatÚutil)Ú stringutilÚurlutil)órsempty)ÚAnyÚDictÚListÚOptionalÚSetÚTuple)ÚcontextÚ localrepoÚmatchÚscmutilÚsubrepoÚuic ód‡‡‡‡‡—tj«Š‰j«Šdˆˆˆˆˆfd„ Šd‰vr‰d«‰jd«D])\}}‰jd||‰j d|««Œ+i}d‰vrb t ‰dj «j««D]3\}}|j«}|sŒ |jdd«\}}|||<Œ5 ˆfd „}i} ‰j!d «D�]]\}}d } |j#d «rLd |vrtjtd««‚|jd d«\} }| dd} |j«}t%j&|«j)«s”t+‰d¬«} | r…t%j&| «} t-j.| j0xsd |«| _t-j2| j0«| _t5| «} || «} | | k(r ||«}n| }||«}|j7«|j9|d «| f| t;j<|«<�Œ`| S#t$r6tjtd«‰jd«|dzfz«‚wxYw#t$rY�ŒÉwxYw)z return a state dict, mapping subrepo paths configured in .hgsub to tuple: (source from .hgsub, revision from .hgsubstate, kind (key in types dict)) Ncó6•—|‰vr* ‰|j«}‰j ||||‰«yt jtd«‰j |«z«‚#t$r/‰jtd«‰j |«z«YywxYw)Ns*warning: subrepo spec file '%s' not found s subrepo spec file '%s' not found)ÚdataÚFileNotFoundErrorÚwarnrÚpathtoÚparserÚAbort) ÚfÚsectionsÚremaprÚctxÚpÚreadÚrepors €€€€€ú9usr/lib/python3.12/site-packages/mercurial/subrepoutil.pyr)zstate..read=s–ø€Ø �‰8ð Ø˜1‘v—{‘{“}�ð �G‰G�A�t˜X u¨dÕ 3ä—+‘+ÜÐ7Ó8¸4¿;¹;Àq»>ÑIóð øô%ò à—‘ÜÐFÓGØ—k‘k !“nñ%ôñð  ús‡A Á 5BÂBó.hgsubósubpathsó .hgsubstateó rs8invalid subrepository revision specifier in '%s' line %dc 󆕗‰jd«D]J\}}tj|«}tjdd|«} tj|||d«}ŒL|S#tj $rK}t j td«‰jd|«tj|«fz«‚d}~wwxYw)Nr-s \\\\([0-9]+)s\\\1rs#bad subrepository pattern in %s: %s) Úitemsr Ú escapestrÚreÚsubrr#rÚsourceÚ forcebytestr)ÚsrcÚpatternÚreplÚer(s €r+r&zstate..remapis·ø€àŸW™W [Ö1‰MˆG�Tô×'Ñ'¨Ó-ˆDô—6‘6Ð*¨H°dÓ;ˆDð Ü—f‘f˜W d¨C°Ó3‘ð2ð$ˆ øô—8‘8ò Ü—k‘kÜÐ<Ó=àŸ™ ¨gÓ6Ü"×/Ñ/°Ó2ðñóðûð úsÁA"Á"CÁ5AB;Â;Crshgó[ó]s!missing ] in subrepository sourceF©Úabort)NN)rr*Ú configitemsÚsetÚ configsourceÚ enumeraterÚ splitlinesÚlstripÚsplitÚ ValueErrorrr#rr!rr1Ú startswithrÚurlÚisabsÚ _abssourceÚ posixpathÚjoinÚpathÚnormpathÚbytesÚstripÚgetr Úpconvert)r'rrMr7ÚrevÚiÚlÚrevisionr&ÚstateÚkindÚparentÚjoinedÚremappedr(r)r*s`` @@@r+rWrW4sü€ô � ‰ ‹€AØ �8‰8‹:€D÷ñð"�CÑÙ ˆYŒà—^‘^ KÖ0‰ ˆˆcØ �‰ˆk˜4  b§o¡o°kÀ4Ó&HÕIð1ð €CؘÑð Ü! # nÑ"5×":Ñ":Ó"<×"GÑ"GÓ"IÖJ‘��1Ø—H‘H“J�ÙØð Ø%&§W¡W¨T°1Ó%5‘N�H˜dð%��D’ ñKô$ð, €EØ—W‘W˜S—\‰ ˆˆcØˆØ �>‰>˜$Ô Ø˜3‰Ü—k‘k¤!Ð$HÓ"IÓJÐJØŸ ™  $¨Ó*‰IˆD�#ؘ˜�8ˆDØ—*‘*“,ˆCä�{‰{˜3Ó×%Ñ%Ô'Ü ¨EÔ2ˆFÙÜ Ÿ™ VÓ,�Ü'Ÿn™n¨V¯[©[Ò-?¸CÀÓE�” Ü'×0Ñ0°·±Ó=�” ܘv›�ñ! ›=�ؘvÒ%Ù ›*‘Cà"�Cá�C‹jˆØ&)§i¡i£k°3·7±7¸4ÀÓ3EÀtÐ%LˆŒd�m‰m˜DÓ!Ó"ð3"ð6 €Løô}"òÜŸ+™+Üð;óð Ÿ;™; ~Ó6¸¸Q¹Ð@ñ Aóððûô!ò Ú ð ús+ÂAJ"ÃI ÃJ"É ?JÊJ"Ê" J/Ê.J/có¼—t|«D�cgc]!}||dtdk7r d||d|fz‘Œ#}}|jddj|«d«ycc}w)z=rewrite .hgsubstate in (outer) repo with these subrepo statesrs%s %s r.rN)ÚsortedÚ nullstateÚwwriterL)r*rWÚsÚliness r+Ú writestaterbžsm€ô ˜”ó áˆAØ �‰8�A‰;œ) A™,Ò &ð �e˜A‘h˜q‘k 1Ð%Ó%Øð ð ð  ‡K�K� §¡¨£°Õ5ùò  sŽ&AcóЇ—||k(r|j«}|j}|j}|j}i} ‰jjd|||fz«dˆfd„ } t j |«} t |j««D�]ñ\} } |j| t«}| }|j| «j«r | d| ddzf}||k(r|}| j«}| |d<| |v�rì|| }||k(s||k(r| | | <Œ�||k(r1| | d|«|j| «j||«|| | <Œ·|d|dk7rk| d|d<|d|d <‰jjtd «|zd«sŒû| | d |«|j| «j||«|| | <�Œ-|d|dk(r2| | d |«|j| «j||«|| | <�Œj| | d «|j| «}|j| d«|d<|j|d«|d<‰jjtd«|zd«}|dk(r1|j| «j!|«| | | <| | d|«�Œ|dk(r| | | <| | d| «�Œ&|j| «j||«|| | <| | d|«�ŒX||k(r*| | d«|j| «j#«�Œ‡|tk(r| | d«| | | <�Œ ‰jjtd«|zd«s�ŒÊ| | d«|j| «j#«�Œôt |j««D]·\} }| |vrŒ | |vr0| | d|«|j| «j|«|| | <Œ?||| k7sŒH| j«}| |d<‰jjtd«|zd«dk(sŒ‰| | d|«|j| «j|«|| | <Œ¹t%‰| «| S)z{delegated from merge.applyupdates: merging of .hgsubstate file in working context, merging context and ancestor contextssubrepo merge %s %s %s cóV•—|rd|z}‰jjd|||fz«y)Ns%s:%s:%ss subrepo %s: %s %s )rÚdebug)r`ÚmsgÚrr*s €r+rezsubmerge..debug·s+ø€Ù ؘa‘ˆAØ �‰� ‰ Ð.°!°S¸!°Ñ<Õ=rrró+óssother changed, getslosrosž subrepository sources for %(s)s differ you can use (l)ocal%(l)s source (%(lo)s) or (r)emote%(o)s source (%(ro)s). what do you want to do?$$ &Local $$ &Remotesprompt changed, getsother side changed, getsboth sides changedsslssrs¿ subrepository %(s)s diverged (local revision: %(sl)s, remote revision: %(sr)s) you can (m)erge, keep (l)ocal%(l)s or keep (r)emote%(o)s. what do you want to do?$$ &Merge $$ &Local $$ &Remotes merge withskeep local subrepo revisionsget remote subrepo revisionsremote removed, removeslocal added, keepsz local%(l)s changed subrepository %(s)s which remote%(o)s removed use (c)hanged version or (d)elete?$$ &Changed $$ &Deletes prompt removesremote added, getsz remote%(o)s changed subrepository %(s)s which local%(l)s removed use (c)hanged version or (d)elete?$$ &Changed $$ &Deletesprompt recreate)r)Úp1ÚsubstaterrerÚ partextrasr]r1rQr^r4ÚdirtyÚcopyÚ promptchoicerÚshortidÚmergeÚremoverb)r*ÚwctxÚmctxÚactxÚ overwriteÚlabelsÚs1Ús2ÚsaÚsmreÚ promptssrcr`rUÚaÚldÚpromptsrgÚsrepoÚoptions` r+Úsubmerger‚©sqø€ð  ˆt‚|Ø�w‰w‹yˆØ �‰€BØ �‰€BØ �‰€BØ €Bà‡G�G‡M�MÐ-°°t¸TÐ0BÑBÔCõ>ô ×%Ñ% fÓ-€JÜ�r—x‘x“z×"‰ˆˆ1Ø �F‰F�1”iÓ ˆØ ˆØ �8‰8�A‹;× Ñ Ô Ø�A‘$˜˜!™˜t™ Ð$ˆBØ �4Š<؈Aà—/‘/Ó#ˆØˆ�‰ Ø �Š7Ø�1‘ˆAØ�QŠw˜!˜qš&Ø��1‘ØØ�q’Ù�aÐ.°Ô2Ø—‘˜“ —‘  9Ô-Ø��1’Ø�A‘˜!˜A™$’Ø!" 1¡�˜‘Ø!" 1¡�˜‘Ø—7‘7×'Ñ'Üð0óðñðõ ñ˜!Ð3°QÔ7Ø—H‘H˜Q“K—O‘O A yÔ1Ø�B�q“EØ�A‘˜!˜A™$’Ù�aÐ3°QÔ7Ø—‘˜“ —‘  9Ô-Ø��1“á�aÐ.Ô/ØŸ™ › �Ø!&§¡¨q°©tÓ!4�˜‘Ø!&§¡¨q°©tÓ!4�˜‘ØŸ™×-Ñ-Üð:óðñðó �ð˜Q’;Ø—H‘H˜Q“K×%Ñ% aÔ(Ø�B�q‘EÙ˜!˜]¨AÖ.ؘq’[Ø�B�q‘EÙ˜!Ð;¸QÖ?à—H‘H˜Q“K—O‘O A yÔ1Ø�B�q‘EÙ˜!Ð;¸QÖ?Ø �1ŠWÙ �!Ð.Ô /Ø �H‰H�Q‹K× Ñ Ö Ø ”)Š^Ù �!Ð)Ô *؈Bˆq‰EÙ à�w‰w×#Ñ#Üð.óð ñ ðö ñ�aÐ)Ô*Ø—‘˜“ ×"Ñ"Ö$ðo#ôr�r—x‘x“zÖ"‰ˆˆ1Ø �‰7Ø Ø �b‰[Ù �!Ð)¨1Ô -Ø �H‰H�Q‹K�O‰O˜AÔ ØˆBˆqŠEØ �"�Q‘%‹ZØ —o‘oÓ'ˆG؈G�D‰Mà—‘×$Ñ$Üð2óð ñ ðó ðó ñ�aÐ+¨QÔ/Ø—‘˜“ —‘ Ô"Ø��1’ð3#ô8ˆt�RÔØ €Ircó˜—g}t«}|jj«}d|v�r;|j|j|j fD]}d|vsŒ|j d«Œ|j«j} t|j««D�]} || «s0| | vr | | || <Œ|s!tjtd«| z«‚|j| «jd«} | rU|jdd«s tj| td«¬«‚|j!| «|j#| «Œ³|j| «j%«} || d | || d f|| <| j'| d «d | k7sŒÿ|j!| «�Œ|j)«D]<} | jD� cgc] } | |vsŒ| ‘Œ }} ||D� cgc] } || «sŒ | ‘Œc} z }Œ>|r¼|d«sAd|j«|j «zvrtjtd ««‚|jj+d d«nVd|j vrHd|vrDd|j|jz|j zvr|j j+d d«|||fScc} wcc} w)ayCalculate .hgsubstate changes that should be applied before committing Returns (subs, commitsubs, newstate) where - subs: changed subrepos (including dirty ones) - commitsubs: dirty subrepos which the caller needs to commit recursively - newstate: new state dict which the caller must write to .hgsubstate This also updates the given status argument. r,r.s#commit with new subrepo %s excludedTsuiscommitsubreposs#use --subrepos for recursive commit)Úhintré)NNNrs$can't commit subrepos without .hgsub)r@rkrnÚmodifiedÚaddedÚremovedrrrjr]Úkeysrr#rr4Ú dirtyreasonÚ configboolÚappendÚaddÚ basestaterQÚparentsÚinsert)rrsÚstatusrÚforceÚsubsÚ commitsubsÚnewstateÚcÚoldstater`rŠÚbsr(rgs r+Ú precommitr™6sƒ€ð €DÜ“€JØ�}‰}×!Ñ!Ó#€Hð�DÒà—‘ &§,¡,°·±Ó>ˆAØ Ò"Ø—‘˜Õ(ð?ð —7‘7“9×%Ñ%ˆÜ˜Ÿ ™ ›×(ˆAÙ˜”8à˜‘=Ø"*¨1¡+�H˜Q‘KØÙÜŸ+™+ÜÐ@ÓAÀAÑEóððŸ(™( 1›+×1Ñ1°$Ó7ˆKÙØ—}‘} UÐ,=Ô>ÜŸ+™+Ø#ÜÐEÓFôðð— ‘ ˜A”Ø—‘˜qÕ!à—X‘X˜a“[×*Ñ*Ó,�Ø'¨™{¨1™~¨r°8¸A±;¸q±>ÐB�˜‘ Ø—<‘< Ð#5Ó6°qÑ9¸RÓ?Ø—K‘K –Nð/)ð4—‘–ˆAØŸJšJÓ<™J�q¨!°8Ò*;’˜JˆAÐ<Ø ¡Ó.¡˜1¡U¨1¥X’Q Ñ.Ñ .‰Dð ñ Ù˜Ô#¨ Ø— ‘ “ $§*¡*£,Ñ.ñ)ô—k‘k¤!Ð$KÓ"LÓMÐMØ �O‰O× "Ñ " 1 nÕ 5à �f—n‘nÑ $à ˜TÑ ! nØ �O‰O˜fŸl™lÑ *¨V¯^©^Ñ ;ñ' ð �N‰N× !Ñ ! ! ^Ô 4à �˜XÐ %Ð%ùò!=ùÚ.sÇ KÇKÇ& KÇ4Kcó~—|}g}tj|d«rmtj|j«}|j t |««|j«rn#|j}tj|d«rŒm|j«tj|Ž}tj|«S)zRreturn the source of this repo Either absolute or relative the outermost repoÚ _subparent) r Ú safehasattrrrHÚ _subsourcerŒrOrIr›ÚreverserKrLrN)r*rYÚchunksr5rMs r+Úrepo_rel_or_abs_sourcer }s–€ð€FØ €FÜ × Ñ ˜6 <Ô 0Ü—‘˜V×.Ñ.Ó/ˆØ� ‰ ”e˜F“mÔ$Ø �<‰<Œ>Ø Ø×"Ñ"ˆô × Ñ ˜6 <Õ 0ð ‡N�NÔÜ �>‰>˜6Ð "€DÜ × Ñ ˜dÓ #Ð#rcóâ—|}tj|d«r#|j}tj|d«rŒ#|jt t j |j««dS)z9return path to this (sub)repo as seen from outermost repor›N)r rœr›ÚrootÚlenr Ú normasprefix)r*rYs r+Ú reporelpathr¥�s\€ð€FÜ × Ñ ˜6 <Ô 0Ø×"Ñ"ˆô × Ñ ˜6 <Õ 0à �9‰9”Sœ×.Ñ.¨v¯{©{Ó;Ó<Ð>Ð ?Ð?rcó—|jS)z7return path to this subrepo as seen from outermost repo)Ú_relpath)r4s r+Ú subrelpathr¨˜s€ð �<‰<Ðrcó¢—tj|d«�rtj|j«}|j «r t |«Stj|j«|_ t|j|d¬«}|�rŸtjtj|««}tj|jxsd|j«|_ tj|j«|_ t |«Sd}tj|d«r |j}n­|r9|jj!dd«r|jj!dd«}nr|jj!dd «r|jj!dd «}n9|j#«r)t$jj'|j(«S|rAtj*|«r*t-|«d k(s|d d d vrtj.|«}|S|rt1j2t5d ««‚y)z�return pull/push path of repo - either based on parent repo .hgsub info or on the top repo config. Abort or return None if no source found.r›Fr=rNÚ _subtoppathspathss default-pushsdefaultr…és\/s(default path for subrepository not found)r rœrrHr�rIrOrKrNrMrJr›rRrLrªrrÚsharedÚosÚdirnameÚ sharedpathÚhasdriveletterr£Úabspathrr#r)r*Úpushr>r5rYrMs r+rJrJžs¥€ô ×ј˜lÕ+Ü—‘˜TŸ_™_Ó-ˆØ �<‰<Œ>ܘ“=Ð Ü×(Ñ(¨¯©Ó5ˆŒ ܘDŸO™O¨T¸Ô?ˆÚ Ü—[‘[¤§¡¨vÓ!6Ó7ˆFÜ#Ÿ.™.¨¯©Ò);¸¸V¿[¹[ÓIˆFŒKÜ#×,Ñ,¨V¯[©[Ó9ˆFŒKܘ“=Ð àˆÜ × Ñ ˜D -Ô 0Ø×#Ñ#‰DÙ �d—g‘g—n‘n X¨Ô?Ø—7‘7—>‘> (¨OÓ<‰DØ �W‰W�^‰^˜H jÔ 1Ø—7‘7—>‘> (¨JÓ7‰DØ �[‰[Œ]ô—7‘7—?‘? 4§?¡?Ó3Ð 3Ù ô×%Ñ% dÔ+Ü�t“9 ’> T¨!¨A Y°fÑ%<ÜŸ<™<¨Ó-�D؈Ká Ü�k‰kœ!ÐGÓHÓIÐIð rcóz—tj|«}t|dd«}|s|S|jdd«}|dvr!t j t d«|z«‚|dk(r|Stj}d}t|«D]4}|j|«}|j||d«} || ksŒ1| }|}Œ6||kr}|dk(rFt j t d «tj|tj||fz«‚|jt d «tj||fz«|S|S) Nrksphasess checksubrepos)óignoresfollowóaborts.invalid phases.checksubrepos configuration: %sr´rrµs=can't commit in %s phase conflicting %s from subrepository %ssAwarning: changes are committed in %s phase from subrepository %s ) r Únewcommitphaserrrr#rÚpublicr]r4ÚphaseÚ phasenamesr ) rr'Ú commitphaserkÚcheckÚmaxphaseÚmaxsubr`r4Úsubphases r+r¶r¶Ïsa€ä×'Ñ'¨Ó+€KÜ�s˜J¨Ó-€HÙ ØÐØ �I‰I�iÐ!1Ó 2€EØ Ð4Ñ4Ü�k‰kÜ Ð?Ó @À5Ñ Hó ð ð � ÒØÐÜ�}‰}€HØ €FÜ �HÖ ˆØ�g‰g�a‹jˆØ—9‘9˜X a™[¨™^Ó,ˆØ �hÓ ØˆH؉Fð ð �XÒØ �HÒ Ü—+‘+Üð=óô ×%Ñ% kÑ2Ü×%Ñ% hÑ/Øðñ ó ð ð �‰Ü ð5ó ô× Ñ  Ñ*¨FÐ3ñ  4ô ðˆØ Ðr)N)F)FT)-r­rKr3Úi18nrr rÚrrrr r r Úutilsr rr^Ú TYPE_CHECKINGÚtypingrrrrrrrrrÚmatchmodrrrÚuimodrOÚSubstaterWrbr‚r™r r¥r¨rJr¶©rr+ÚrÈs¡ðó ÛÛ åÝ÷÷ñ÷ð !€ à ×Ò÷÷÷÷ð�E˜5 ¨¨uÐ!4Ñ5Ð5Ñ6€HògòT6óJóZD&òN$ò$@òó .Jób*r