Ë !ÜnW±Áý“ãó„—ddlZddlZddlZddlZddlZddlZddlZddlmZddl m Z ddl m Z ddl mZmZmZmZmZddlmZmZddlmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z(m)Z*m+Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3mZm4Z4m5Z5m6Z7m8Z8m9Z9m:Z:m;Z;mm?Z?m@ZAmBZBmCZCmDZDmEZFmGZGdd lHmIZImDZJdd lKmLZLmMZMmNZNmOZOdd lPmQZRmSZTmUZVe(j®ZWeDj°ZXeDj²ZYej´d «Z[e\«Z]Gd „de;j¼«Z_Gd„de_«Z`Gd„de_«ZaGd„dea«ZbGd„dea«ZcGd„de_«Zdd„ZeGd„deDjÌ«ZgGd„deDjÌ«Zhd„Zid„Zjhd £ZkekjÙd!h«ZmeJjÜeIjÞ«Gd"„d#««ZpeJjÜeIjâ«Gd$„d%eIjä««ZseJjÜeIjè«Gd&„d'es««Zue\«Zvd(„Zwd)„ZxdMd*eyfd+„Zz dMd,eFjŠd-eFjŠd.e eFjŠfd/„Z{d0„Z|d1„Z}d2„Z~d3„Zd4„Z€d5„Z�d6„Z‚d7„ZƒeJjÜeI�j«Gd8„d9««Z…eJjÜeI�j«Gd:„d;««Z†d<„Z‡eI�jd=„feI�jd>„fgZ‰eJjÜeI�j«Gd?„d@««ZŠdAeydBeyfdC„Z‹dNd*eyfdD„ZŒd*eydBe�fdE„ZŽdMdF„Z�dG„Z�dH„Z‘dI„Z’dJ„Z“dNd*eyfdK„Z”dL„Z•y)OéN)Úfutures)ÚOptionalé)Ú_)ÚbinÚhexÚnullrevÚsha1nodeconstantsÚshort)ÚdelattrÚgetattr)+Ú bookmarksÚ branchmapÚbundle2Ú bundlecachesÚ changegroupÚcolorÚcommitÚcontextÚdirstateÚ discoveryÚencodingÚerrorÚexchangeÚ extensionsÚfilelogÚhookÚlockÚmatchÚ mergestateÚ mergeutilÚ namespacesÚ narrowspecÚobsoleteÚpathutilÚphasesÚpushkeyÚpycompatÚrcutilÚrepoviewÚ requirementsÚrevlogÚrevsetÚ revsetlangÚscmutilÚsparseÚstoreÚ subrepoutilÚtagsÚ transactionÚtxnutilÚutilÚvfsÚwireprototypes)Ú repositoryr6)ÚhashutilÚprocutilÚ stringutilÚurlutil)Úconcurrency_checkerÚ constantsÚsidedatas+^((dirstate|narrowspec.dirstate).*|branch$)có.‡—eZdZdZdˆfd„ Zˆfd„ZˆxZS)Ú_basefilecachezHAll filecache usage on repo are done for logic that should be unfilteredc󦕗|€|S|j«} |j|jS#t$rYnwxYwtt |�||«S©N)Ú unfilteredÚ__dict__ÚsnameÚKeyErrorÚsuperrBÚ__get__©ÚselfÚrepoÚtypeÚunfiÚ __class__s €ú7usr/lib/python3.12/site-packages/mercurial/localrepo.pyrJz_basefilecache.__get__tsWø€Ø ˆ<؈Kà�‰Ó ˆð Ø—=‘= §¡Ñ,Ð ,øÜò Ù ð úä”^ TÑ2°4¸Ó>Ð>s —0° <»<cóH•—tt|� |j«|«SrD)rIrBÚsetrE)rLrMÚvaluerPs €rQrSz_basefilecache.setsø€Ü”^ TÑ.¨t¯©Ó/@À%ÓHÐHórD)Ú__name__Ú __module__Ú __qualname__Ú__doc__rJrSÚ __classcell__©rPs@rQrBrBqsø„ÙRõ ?÷IðIrUrBcó(‡—eZdZdZˆfd„Zd„ZˆxZS)Ú repofilecachez3filecache for files in .hg but outside of .hg/storecób•—tt|� |Ž|D]}tj |df«Œy)Nóplain)rIr]Ú__init__Ú _cachedfilesÚadd©rLÚpathsÚpathrPs €rQr`zrepofilecache.__init__†s/ø€Ü Œm˜TÑ+¨UÑ3ÛˆDÜ × Ñ ˜d HÐ-Õ .ñrUcó8—|jj|«SrD)r7Újoin©rLÚobjÚfnames rQrgzrepofilecache.join‹s€Ø�w‰w�|‰|˜EÓ"Ð"rU©rVrWrXrYr`rgrZr[s@rQr]r]ƒsø„Ù=ô/ö #rUr]có(‡—eZdZdZˆfd„Zd„ZˆxZS)Ú storecachez filecache for files in the storecób•—tt|� |Ž|D]}tj |df«Œy)NrU)rIrmr`rarbrcs €rQr`zstorecache.__init__’s.ø€Ü Œj˜$Ñ(¨%Ñ0ÛˆDÜ × Ñ ˜d C˜[Õ )ñrUcó$—|j|«SrD)Úsjoinrhs rQrgzstorecache.join—s€Ø�y‰y˜ÓÐrUrkr[s@rQrmrm�sø„Ù*ô*ö  rUrmcó(‡—eZdZdZˆfd„Zd„ZˆxZS)Úchangelogcachezfilecache for the changelogcó~•—tt|� «tj d«tj d«y)N©ó 00changelog.irU)ó 00changelog.nrU)rIrrr`rarb©rLrPs €rQr`zchangelogcache.__init__žs.ø€Ü Œn˜dÑ,Ô.Ü×ÑÐ0Ô1Ü×ÑÐ0Õ1rUcóΗ|j|d«g}|jjjj dd«r!|j |j|d««|S)Nruópersistent-nodemapFrv©rgr1ÚopenerÚoptionsÚgetÚappend©rLrirds rQÚ tracked_pathszchangelogcache.tracked_paths£sT€Ø—‘˜3Ð 0Ó1Ð2ˆØ �9‰9× Ñ × #Ñ #× 'Ñ 'Ð(=¸uÔ EØ �L‰L˜Ÿ™ 3Ð(8Ó9Ô :؈ rU©rVrWrXrYr`r€rZr[s@rQrrrr›sø„Ù%ô2ö rUrrcó(‡—eZdZdZˆfd„Zd„ZˆxZS)Úmanifestlogcachezfilecache for the manifestlogcó~•—tt|� «tj d«tj d«y)N)ó 00manifest.irU)ó 00manifest.nrU)rIrƒr`rarbrws €rQr`zmanifestlogcache.__init__­s/ø€Ü Ô Ñ.Ô0Ü×ÑÐ/Ô0Ü×ÑÐ/Õ0rUcóΗ|j|d«g}|jjjj dd«r!|j |j|d««|S)Nr…ryFr†rzrs rQr€zmanifestlogcache.tracked_paths²sR€Ø—‘˜3 Ó0Ð1ˆØ �9‰9× Ñ × #Ñ #× 'Ñ 'Ð(=¸uÔ EØ �L‰L˜Ÿ™ 3¨Ó8Ô 9؈ rUr�r[s@rQrƒrƒªsø„Ù'ô1ö rUrƒcó(‡—eZdZdZˆfd„Zd„ZˆxZS)Úmixedrepostorecachez2filecache for a mix files in .hg/store and outsidecóP•—tt|� |Žtj |«yrD)rIr‰r`raÚupdate)rLÚpathsandlocationsrPs €rQr`zmixedrepostorecache.__init__¼s%ø€ô Ô! 4Ñ1Ð3DÑEÜ×ÑÐ-Õ.rUcó¨—|\}}|dk(r|jj|«S|dk7rtjd|z«‚|j |«S)Nr_rUsunexpected location: %s)r7rgrÚProgrammingErrorrp)rLriÚfnameandlocationrjÚlocations rQrgzmixedrepostorecache.joinÂsY€Ø*‰ˆˆxØ �xÒ Ø—7‘7—<‘< Ó&Ð &à˜3ŠÜ×,Ñ,Ø.°Ñ9óðð—9‘9˜UÓ#Ð #rUrkr[s@rQr‰r‰¹sø„Ù<ô/ö $rUr‰cóx—|j«jj|d«}|sy|jdfS)z{check if a repo has already cached "name" filecache-ed property This returns (cachedobj-or-None, iscached) tuple. N©NFT)rEÚ _filecacher}ri)rMÚnameÚ cacheentrys rQÚ isfilecachedr–Îs8€ð —‘Ó"×-Ñ-×1Ñ1°$¸Ó=€JÙ ØØ �>‰>˜4Ð ÐrUcó$‡—eZdZdZdˆfd„ ZˆxZS)Úunfilteredpropertycachez0propertycache that apply to unfiltered repo onlycó~•—|j«}||urtt|�|«St ||j «SrD)rErIr˜rJr r”rKs €rQrJzunfilteredpropertycache.__get__Üs:ø€Ø�‰Ó ˆØ �4‰<ÜÔ0°$Ñ?ÀÓEÐ EÜ�t˜TŸY™YÓ'Ð'rUrD)rVrWrXrYrJrZr[s@rQr˜r˜Ùsø„Ù:÷(ñ(rUr˜có—eZdZdZd„Zy)Úfilteredpropertycachez1propertycache that must take filtering in accountcóF—tj||j|«yrD)ÚobjectÚ __setattr__r”)rLrirTs rQÚ cachevaluez filteredpropertycache.cachevalueæs€Ü×ј3 § ¡ ¨5Õ1rUN)rVrWrXrYrŸ©rUrQr›r›ãs „Ù;ó2rUr›có8—|t|j««vS)z?check if a repo has an unfilteredpropertycache value for )ÚvarsrE)rMr”s rQÚhasunfilteredcacher£ês€à ”4˜Ÿ™Ó)Ó*Ð *Ð*rUcóB‡—tj‰«ˆfd„«}|S)z@decorate method that always need to be run on unfiltered versioncó8•—‰|j«g|¢­i|¤ŽSrD)rE)rMÚargsÚkwargsÚorigs €rQÚwrapperz!unfilteredmethod..wrapperòsø€á�D—O‘OÓ%Ð7¨Ò7°Ñ7Ð7rU)Ú functoolsÚwraps)r¨r©s` rQÚunfilteredmethodr¬ïs'ø€ô‡_�_�TÓó8óð8ð €NrU>óknownólookupóunbundleó branchmapó getbundleópushkeyschangegroupsubsetcó0—eZdZd„Zd„Zd„Zd„Zd„Zd„Zy)Úlocalcommandexecutorcó.—||_d|_d|_yr’)Ú_peerÚ_sentÚ_closed)rLÚpeers rQr`zlocalcommandexecutor.__init__s€ØˆŒ ؈Œ ؈� rUcó—|SrDr ©rLs rQÚ __enter__zlocalcommandexecutor.__enter__ ó€Øˆ rUcó$—|j«yrD)Úclose)rLÚexctypeÚexcvalueÚexctbs rQÚ__exit__zlocalcommandexecutor.__exit__s €Ø � ‰ � rUcóÔ—|jrtjd«‚|jrtjd«‚t |j t j|««}tj«} |dit j|«¤Ž}|j|«|S#t$r/t j|tj«dd«Y|SwxYw)Ns1callcommand() cannot be used after sendcommands()s*callcommand() cannot be used after close()rr )r·rrŽr¸r r¶r(ÚsysstrrÚFutureÚ strkwargsÚ set_resultÚ ExceptionÚfuture_set_exception_infoÚsysÚexc_info)rLÚcommandr¦ÚfnÚfÚresults rQÚ callcommandz localcommandexecutor.callcommandsÌ€Ø �:Š:Ü×(Ñ(ØDóð ð �<Š<Ü×(Ñ(Ø=óð ô �T—Z‘Z¤§¡°Ó!9Ó :ˆä �N‰NÓ ˆð !ÙÑ3œ(×,Ñ,¨TÓ2Ñ3ˆFð �L‰L˜Ô àˆøô ò FÜ × .Ñ .¨q´#·,±,³.ÀÀÐ2DÕ Eðˆð  FúsÂB/Â/4C'Ã&C'có—d|_y©NT)r·r»s rQÚ sendcommandsz!localcommandexecutor.sendcommands+s €Øˆ� rUcó—d|_yrÓ)r¸r»s rQr¿zlocalcommandexecutor.close.s €Øˆ� rUN) rVrWrXr`r¼rÃrÑrÔr¿r rUrQr´r´s „òò òòò4órUr´c󜇗eZdZdZdˆfd„ Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z dd „Z dd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZˆxZS)Ú localpeerz8peer for a local repo; reflects only the most recent APIcóf•—tt|� |j||¬«|€tj «}|r|j d«|_n|j d«|_|jr)tj|«}|jd|z«|j|«|_ y)N©reÚ remotehiddenó served.hiddenóservedsexp-wanted-sidedata=)rIr×r`ÚuiÚ moderncapsÚcopyÚfilteredÚ_repoÚ_wanted_sidedatarÚformat_remote_wanted_sidedatarbÚ_restrictcapabilitiesÚ_caps)rLrMÚcapsrerÚÚ formattedrPs €rQr`zlocalpeer.__init__6s–ø€Ü Œi˜Ñ'Ø �G‰G˜$¨\ð (ô ð ˆ<Ü—?‘?Ó$ˆDÙ ØŸ™Ð'7Ó8ˆD�JàŸ™ yÓ1ˆDŒJØ × Ò Ü×=Ñ=¸dÓCˆIØ �H‰HÐ,¨yÑ8Ô 9à×/Ñ/°Ó5ˆ� rUcó6—|jj«SrD)ráÚurlr»s rQréz localpeer.urlIs€Ø�z‰z�~‰~ÓÐrUcó—|jSrD)rár»s rQÚlocalzlocalpeer.localLó €Ø�z‰zÐrUcó—yrÓr r»s rQÚcanpushzlocalpeer.canpushOó€ØrUcó8—|jj«yrD)rár¿r»s rQr¿zlocalpeer.closeRs€Ø � ‰ ×ÑÕrUcó6—|jj«SrD)rárr»s rQrzlocalpeer.branchmapYs€Ø�z‰z×#Ñ#Ó%Ð%rUcó—|jSrD)rår»s rQÚ capabilitieszlocalpeer.capabilities\rìrUcó—t‚rD)ÚNotImplementedError)rLres rQÚget_cached_bundle_inlinez"localpeer.get_cached_bundle_inline_s€ä!Ð!rUcó@—tj|j«SrD)rÚ get_manifestrár»s rQÚ clonebundleszlocalpeer.clonebundlescs€Ü×(Ñ(¨¯©Ó4Ð4rUcóˆ—d||tj|«tj|«tj|«fzS)z+Used to test argument passing over the wireó%s %s %s %s %s©r(Úbytestr©rLÚoneÚtwoÚthreeÚfourÚfives rQÚ debugwireargszlocalpeer.debugwireargsfóD€à Ø Ø Ü × Ñ ˜UÓ #Ü × Ñ ˜TÓ "Ü × Ñ ˜TÓ "ð $ ñ ð rUc ó—tj|j|f||||dœ|¤Žd}tj|«}tj |«r t j|j|«Stjd|d«S)N)ÚheadsÚcommonÚ bundlecapsÚremote_sidedataró01) rÚgetbundlechunksrár6Ú chunkbufferÚbundle2requestedrÚ getunbundlerrÝr) rLÚsourcerrr r r§ÚchunksÚcbs rQÚ getbundlezlocalpeer.getbundleps“€ô×)Ñ)Ø �J‰JØ ð ðØØ!Ø+ñ  ðñ ð ñ ˆô× Ñ ˜fÓ %ˆä × $Ñ $ ZÔ 0ô×'Ñ'¨¯©°Ó4Ð 4ä×+Ñ+¨E°2°tÓ<Ð —|jj||||«SrD)rár')rLrrÚoldÚnews rQr'zlocalpeer.pushkey˜s€Ø�z‰z×!Ñ! )¨S°#°sÓ;Ð;rUcó>—tjtd««‚)Ns.cannot perform stream clone against local peer)rÚAbortrr»s rQÚ stream_outzlocalpeer.stream_out›s€Ü�k‰kœ!ÐMÓNÓOÐOrUcóh— tj|j|d«}tj|j||d|«}t j |d«rCt j|j««}tj|j|«}|S#t$r¹}t|dd«}|r¤tj|jj«}|D]} |j| «Œt j|j««}tj|j|«} tj|j| «‚d}~wwxYw#t j"$r7}t!j$t'd«t)j*|««‚d}~wwxYw)zPapply a bundle on a repo This function handles the repo locking itself.NspushÚ getchunksÚ_bundle2salvagedoutputr s push failed:)rÚ readbundlerÝÚunbundlerár6Ú safehasattrr r'rrrÉr Úbundle20ÚaddpartÚ processbundlerÚ PushRacedÚ ResponseErrorrr<Ú forcebytestr) rLÚbundlerréÚretÚstreamÚexcÚoutputÚbundlerÚoutÚbs rQr*zlocalpeer.unbundležsX€ð ð Ü!×,Ñ,¨T¯W©W°f¸dÓC�Ü×'Ñ'¨¯ © °F¸EÀ7ÈCÓP�Ü×#Ñ# C¨Ô5ô"×-Ñ-¨c¯m©m«oÓ>�FÜ!×.Ñ.¨t¯w©w¸Ó?�CØ� øÜò ô! Ð&>ÀÓC�ÙÜ%×.Ñ.¨t¯z©z¯}©}Ó=�GÛ%˜ØŸ™¨Õ,ð &ä!×-Ñ-¨g×.?Ñ.?Ó.AÓB�FÜ×,Ñ,¨T¯W©W°fÓ=�AÜ×)Ñ)¨$¯*©*°aÔ8Øûð! ûô"�‰ò Ü×%Ñ%Ü�/Ó"¤J×$;Ñ$;¸CÓ$@óð ûð ús1ƒBB"Â" E$Â+B4EÅE$Å$E'Å'F1Å:2F,Æ,F1có—t|«SrD)r´r»s rQÚcommandexecutorzlocalpeer.commandexecutorÇs €Ü# DÓ)Ð)rU©NNF©NNN)NNNN)rVrWrXrYr`rérërîr¿rrórörùrrrrrrr'r%r*r;rZr[s@rQr×r×2suø„áBõ6ò& òòòò&òò"ò5ó ðØØØó =ò8"ò'ò.ò&ò<òPò#öR*rUr×có<‡—eZdZdZdˆfd„ Zd„Zd„Zd„Zd„ZˆxZ S)Úlocallegacypeerzcpeer extension which implements legacy methods too; used for tests with restricted capabilitiescó<•—tt|� |t||¬«y)N)rærerÚ)rIr?r`Ú legacycaps)rLrMrerÚrPs €rQr`zlocallegacypeer.__init__Òs ø€Ü Œo˜tÑ-Ø ”z¨¸<ð .õ rUcó8—|jj|«SrD)ráÚbetween)rLÚpairss rQrCzlocallegacypeer.betweenÙs€Ø�z‰z×!Ñ! %Ó(Ð(rUcó8—|jj|«SrD)ráÚbranchesrs rQrFzlocallegacypeer.branchesÜs€Ø�z‰z×"Ñ" 5Ó)Ð)rUcóº—tj|j||jj«¬«}t j |j|d|«S©N)Ú missingrootsÚ ancestorsofr )rÚoutgoingrárrÚmakechangegroup)rLrrrKs rQrzlocallegacypeer.changegroupßsG€Ü×%Ñ%Ø �J‰J U¸¿ ¹ ×8HÑ8HÓ8Jô ˆô×*Ñ*¨4¯:©:°xÀÈÓOÐOrUcóŠ—tj|j||¬«}tj|j|d|«SrH)rrKrárrL)rLÚbasesrrrKs rQÚchangegroupsubsetz!locallegacypeer.changegroupsubsetås:€Ü×%Ñ%Ø �J‰J U¸ô ˆô×*Ñ*¨4¯:©:°xÀÈÓOÐOrUr’) rVrWrXrYr`rCrFrrOrZr[s@rQr?r?Ís#ø„ñõ ò)ò*òPö PrUr?cóV—|jd«jd«}tj|vr$t j |j |««}tj|d¬«}|j«s+tjtd«|jz«‚|S)zåreturns the vfs object pointing to root of shared source repo for a shared repository hgvfs is vfs pointing at .hg/ of current repo (shared one) requirements is a set of requirements of current repo (shared one) ó sharedpathó T)Úrealpaths1.hg/sharedpath points to nonexistent directory %s)ÚreadÚrstripÚrequirementsmodÚRELATIVE_SHARED_REQUIREMENTr6ÚnormpathrgÚvfsmodr7ÚexistsrÚ RepoErrorrÚbase)Úhgvfsr+Ú sharedpathÚ sharedvfss rQÚ _getsharedvfsr`øsŒ€ð—‘˜MÓ*×1Ñ1°%Ó8€JÜ×2Ñ2°lÑBÜ—]‘] 5§:¡:¨jÓ#9Ó:ˆ ä— ‘ ˜:°Ô5€Ià × Ñ Ô Ü�o‰oÜ ÐBÓ CØ�n‰nñ ó ð ð ÐrUcót—|r |jn |j}t|d«j««S)z�reads the require file present at root of this vfs and return a set of requirements If allowmissing is True, we suppress FileNotFoundError if raisedórequires)ÚtryreadrTrSÚ splitlines)r7Ú allowmissingrTs rQÚ _readrequiresrfs.€ñ'ˆ3�;Š;¨C¯H©H€DÜ ‰t�KÓ ×+Ñ+Ó-Ó .Ð.rUrecó —|j«}|j|_tj|dd¬«}|jd«}tj|d¬«}d}d}|j «s2 |j «tjtd«|z«‚t|d«} tj | vxstj"| v}d} |r1t%|| «}tj|jd ««} n$tj|jd ««} td «} tj&| vrÏ|r½tj&t|d«vr¡|j)d d «} |j+d d «}|j)d d«}|dvrddlm}|j1|||| || |«�n|dk(r tjtd«| ¬«‚tjtd«|z| ¬«‚| t| d«z} nÀ|r¾t|d«}tj&|vr |j+d d«}|j)d d«} |j)d d«}|dvrddlm}|j3||| | || |«nH|dk(r tjtd«| ¬«‚tjtd«|z| ¬«‚t5|||| |«r8t7|||| «t9j:|«t9j<|«t9j8|«D��chc]\}}|j>’Œ}}}tA|«}tC| |«tE|| «tG«}|r=|jH}|jd«}|jKtLjN«n|jH}|jd«}|jd«}tQ| |d„«}|jR|_)|j} tU|| |«| _+tjX| vstjZ| vr>|jKtLj\«|j_tLj`«tj|d¬«}|jR|_)tj|d¬«}|jR|_)g}i}tbD]c\}} | «||| ||||| | jV|||||¬«}!te|!tf«stjhd |z«‚|jk|!«Œetmjnd!|jHd"jtq| ««fz«}"tg|"ts|«i«}#|#|||||| |||||||¬#« S#t $rY�Œz%makelocalrepository.. s€”V—Z‘Z °4Õ8rU)rÝÚintentsr+ÚfeaturesÚwdirvfsr]r1ÚstorevfsÚ storeoptionsÚcachevfsÚ wcachevfsÚextensionmodulenamesÚ extrastateÚ baseclassessunable to construct type for %ssderivedrepo:%s<%s>ó,) ÚbaseuirÝÚorigrootrzr]r+Úsupportedrequirementsr^r1r}r~ryrx):rßrYr7rgÚisdirÚstatÚFileNotFoundErrorÚ ValueErrorrr$rr<r1r[rfrVÚSHARED_REQUIREMENTrWr`ÚSHARESAFE_REQUIREMENTÚ configboolÚconfigÚrpÚdowngrade_share_to_non_safeÚupgrade_share_to_safeÚloadhgrcÚ afterhgrcloadrÚloadallÚ populateuirVÚgathersupportedrequirementsÚensurerequirementsrecognizedÚensurerequirementscompatiblerSr\rbr9ÚREPO_FEATURE_SHARED_STORAGEÚ makestoreÚ createmodeÚresolvestorevfsoptionsr|ÚREVLOGV2_REQUIREMENTÚCHANGELOGV2_REQUIREMENTÚREPO_FEATURE_SIDE_DATAÚdiscardÚREPO_FEATURE_STREAM_CLONEÚREPO_INTERFACESÚ isinstancerNrŽr~r(rÅÚsortedÚtuple)$rƒrerxrÝrzÚhgpathr]Úsharedr_Úer+r{rsÚ mismatch_warnÚmismatch_configÚmismatch_verbose_upgraderpÚsourcerequiresÚnÚmrr…ryÚ storebasepathÚ cachepathÚ wcachepathr1r}r~rNr€ÚifacerÎÚtypr”Úclss$ rQÚmakelocalrepositoryr´s €ð> �‰‹€Bà�k‰k€B„Gô�j‰j˜¨$¸Ô>€Gð�\‰\˜&Ó !€FÜ �J‰J�v¨DÔ 1€Eà €Fà€Ið �;‰;Œ=ð Ø �J‰JŒLô�o‰oœaÐ :Ó;¸dÑBÓCÐCä  ¨Ó-€Lä×*Ñ*¨lÐ:ò GÜ × 6Ñ 6¸,Ð Fð ð€HÙ ä! %¨Ó6ˆ Ü—:‘:˜iŸn™n¨XÓ6Ó7‰ä—:‘:˜eŸj™j¨Ó2Ó3ˆô Ð OÓ P€DÜ×,Ñ,° Ñ<á Ü×5Ñ5Ü  ¨DÓ1ñ2ðŸM™MØÐ?óˆMð!Ÿi™iØÐ:óˆOð(*§}¡}ØÐJó(Ð $ðð#ñõ &à×3Ñ3ØØØØ Ø#Ø!Ø,öð! HÒ,Ü—k‘kÜÐMÓNØôðô —k‘kÜð!óð &ñ &ð ôðð œM¨(°EÓ:Ñ :‰LÙ Ü& y°%Ó8ˆÜ × 0Ñ 0°NÑ BØ Ÿi™i¨Ð2NÓOˆOØŸM™MØÐ;óˆMð(*§}¡}ØÐFó(Ð $ðð#ñõ &à×-Ñ-ØØØØ Ø#Ø!Ø,õð! HÒ,Ü—k‘kÜðKóðô ðô—k‘kÜðQóð&ñ &ð ô ðô��G˜U L°)Ô<Ü�b˜' 5¨,Ô7Ü×ј2ÔÜ×јbÔ!ô4>×3HÑ3HÈÔ3LÔMÑ3L©4¨1¨a˜AŸJ›JÐ3LÐÑMä7¸Ó;Ðô! Ð/DÔEô!  \Ô2ô$‹u€Hñ Ø!Ÿ™ˆ Ø—N‘N 8Ó,ˆ Ø� ‰ ”Z×;Ñ;Õ<àŸ ™ ˆ Ø—J‘J˜xÓ(ˆ Ø—‘˜IÓ&€Jô ØØÙ8ó €Eð ×'Ñ'€EÔà�y‰y€HÜ-¨b°,ÀÓI€HÔô ×,Ñ,° Ñ<Ü × 2Ñ 2°lÑ Bà� ‰ ”Z×6Ñ6Ô7à×Ñœ×=Ñ=Ô>ô�z‰z˜)°$Ô7€HØ×*Ñ*€HÔä— ‘ ˜:°DÔ9€IØ ×+Ñ+€IÔð €EØ€Jç$‰ ˆˆrð‰b‹dØØØ%ØØØØØØ!×)Ñ)ØØØ!5Ø!Øô ˆô"˜#œtÔ$Ü×(Ñ(Ø2°UÑ:óð ð � ‰ �SÕð3%ô< �?‰?Ø §¡¨t¯y©y¼À Ó9MÓ/NÐ OÑOó €Dô ˆt”U˜5“\ 2Ó &€Cá ØØ ØØØØ!Ø3Ø ØØØØØô ðøôu!ò Ú Üò ä—+‘+ÜÐ(Ó)¨T´:×3JÑ3JÈ1Ó3MÐ,NÑNóð ûð üóNNs$Á7V7Ì>X Ö7 X×X× 6XØXrzr]r_cóÒ—tj«syd}tj|vr1|r/ |j |j d«|j ¬«d} |j |j d«|j ¬«d} |j |j d«|j ¬«d}|S#t$rYŒkwxYw#t$rYŒKwxYw#t$rY|SwxYw)aLoad hgrc files/content into a ui instance. This is called during repository opening to load any additional config files or settings relevant to the current repository. Returns a bool indicating whether any additional configs were loaded. Extensions should monkeypatch this function to modify how per-repo configs are loaded. For example, an extension may wish to pull in configs from alternate files or sources. sharedvfs is vfs object pointing to source repo if the current one is a shared one Fóhgrc©ÚrootTshgrc-not-shared)r)Ú use_repo_hgrcrVr‹Ú readconfigrgr\ÚIOError)rÝrzr]r+r_r3s rQr‘r‘]sä€ô* × Ñ Ô !Øà €Cä×,Ñ,° Ñ<Áð Ø �M‰M˜)Ÿ.™.¨Ó1¸ ¿¹ˆMÔ G؈Cð Ø � ‰ �e—j‘j Ó)°· ± ˆ Ô=Øˆð Ø � ‰ �e—j‘jÐ!3Ó4¸7¿<¹<ˆ ÔH؈ð €Jøôò Ù ð ûô ò Ù ð ûô ò Ø à €Jð ús5­.B;Á.C  .CÂ; CÃCà CÃCà C&Ã%C&cóÀ—dgdgdgdœ}t|j««D]9\}}||vrŒ |D]*}|jd|«rŒ|jd|dd¬«Œ,Œ;y ) aQPerform additional actions after .hg/hgrc is loaded. This function is called during repository loading immediately after the .hg/hgrc file is loaded and before per-repo extensions are loaded. The function can be used to validate configs, automatically add options (including extensions) based on requirements, etc. ógitó largefilesólfs)r½r¾r¿s extensionsrUsautoload)rN)r£ÚitemsÚ hasconfigÚ setconfig)rÝrzr]r+ÚautoextensionsÚ requirementÚnamesr”s rQr’r’�sp€ð�Ø%�Ø�ñ€Nô % ^×%9Ñ%9Ó%;Ö<ш �UØ ˜lÑ *Ø ãˆDØ—<‘<  ¨tÕ4Ø— ‘ ˜]¨D°#¸k� ÕJññ =rUcó—ttj«}tj|«D��chc]\}}|j’Œ}}}t D]}|j |vsŒ|||«ŒtjD]~}tj|}|j«sŒ'|j«sŒ8|jd|z«|j«dk(sŒ`|jtj«Œ€|Scc}}w)z6Determine the complete set of recognized requirements.óexp-compression-%sózstd)rSÚlocalrepositoryÚ_basesupportedrrVÚfeaturesetupfuncsrWr6Ú compenginesÚ availableÚ revlogheaderrbr”rVÚREVLOG_COMPRESSION_ZSTD)rÝÚ supportedr¬r­ÚmodulesrÎr”Úengines rQr•r•¨sØ€ô”O×2Ñ2Ó3€Iô'1×&;Ñ&;¸BÔ&?Ô@Ñ&?™d˜a ˆq�z‹zÐ&?€GÑ@çˆØ �=‰=˜GÒ #Ù ˆr�9Õ ð ô × Ô ˆÜ×!Ñ! $Ñ'ˆØ × Ñ Õ  &×"5Ñ"5Õ"7Ø �M‰MÐ/°$Ñ6Ô 7Ø�{‰{‹} Ó'Ø— ‘ œo×EÑEÕFð !ð ÐùóAs²DcóD—t«}|D]K}||vrŒ|r|ddj«stjt d««‚|j |«ŒM|rDtjt d«dj t|««zt d«¬«‚y) aValidate that a set of local requirements is recognized. Receives a set of requirements. Raises an ``error.RepoError`` if there exists any requirement in that set that currently loaded code doesn't recognize. Returns a set of supported requirements. rrs.hg/requires file is corrupts:repository requires features unknown to this Mercurial: %só sJsee https://mercurial-scm.org/wiki/MissingRequirement for more informationrrN)rSÚisalnumrÚRequirementErrorrrbrgr£)r+rÐÚmissingrÄs rQr–r–Às €ô‹e€Gã#ˆ Ø ˜)Ñ #Ø á +¨a°Ð"2×":Ñ":Ô"<Ü×(Ñ(¬Ð+JÓ)KÓLÐ Là� ‰ �KÕ ð$ñÜ×$Ñ$Ü ÐKÓ LØ�i‰iœ˜w›Ó(ñ )äð(óô ð ðrUcó†—tj|vr/tjst j t d««‚yy)aéValidates that a set of recognized requirements is mutually compatible. Some requirements may not be compatible with others or require config options that aren't enabled. This function is called during repository opening to ensure that the set of requirements needed to open a repository is sane and compatible with config options. Extensions can monkeypatch this function to perform additional checking. ``error.RepoError`` should be raised on failure. sfrepository is using sparse feature but sparse is not enabled; enable the "sparse" extensions to accessN)rVÚSPARSE_REQUIREMENTr0Úenabledrr[r)rÝr+s rQr—r—ßsA€ô ×*Ñ*¨lÑ:Ü—’ä�o‰oÜ ð1ó ó ð ðð ;rUcóô—tj|vrQtj|vr)tj|v}t j |||«St j ||«St j||«S)z,Construct a storage object for a repository.)rVÚSTORE_REQUIREMENTÚFNCACHE_REQUIREMENTÚDOTENCODE_REQUIREMENTÚstoremodÚ fncachestoreÚ encodedstoreÚ basicstore)r+reÚvfstypeÚ dotencodes rQr™r™ùsi€ä×(Ñ(¨LÑ8Ü × .Ñ .°,Ñ >Ü'×=Ñ=ÀÐMˆIÜ×(Ñ(¨¨w¸ ÓBÐ Bä×$Ñ$ T¨7Ó3Ð3ä × Ñ ˜t WÓ -Ð-rUcób—i}tj|vrd|d<|jdd«}|�||d<tj|vstj|vr|j t |||««nd|d<tj|vrd|d<|S|jdd «}d }||vrd |d<|S) z„Resolve the options to pass to the store vfs opener. The returned dict is used to influence behavior of the storage layer. Tó treemanifestóformatsmanifestcachesizesrevlogv0óchangeset-sidedatascopies-storageó experimentalscopies.write-to)schangeset-onlys compatibilitysextra) rVÚTREEMANIFEST_REQUIREMENTÚ configintÚREVLOGV1_REQUIREMENTrœr‹ÚresolverevlogstorevfsoptionsÚCOPIESSDC_REQUIREMENTr�)rÝr+ryr|ÚmanifestcachesizeÚ writecopiestoÚcopiesextramodes rQr›r›sÔ€ð €Gä×/Ñ/°<Ñ?Ø#'ˆ�Ñ ðŸ ™  YÐ0DÓEÐØÐ$Ø(9ˆÐ$Ñ%ô ×,Ñ,° Ñ<Ü × /Ñ /°<Ñ ?à�‰Ô3°B¸ ÀhÓOÕPà#ˆ� Ñä×,Ñ,° Ñ<Ø%:ˆÐ!Ñ"ð €Nð Ÿ ™  /Ð3EÓFˆ Ø?ˆØ ˜OÑ +Ø)1ˆGÐ%Ñ &à €NrUcó° —i}i|d<tj|vrd|d<tj|vrd|d<tj|vrd|d<|j dd«}||d<tj |vrd|d <|j d d «}|�||d <|j d d«}||d<|j d d«}||d<|j dd«|d<|j d d«}||d<|j d d«} d} | r|j d d«} | €tj|« } | |d<| |d<|jdd«} d| kr| |d<|jdd«} | �| |d<|j dd«} t|jdd ««}|jdd!«}| |d"<||d#<||d$<tj|v}||d%<|rd|d <d }|rtj}|j d d&|«}|�||d&<|D]7}|j}|d'«s |d(«sŒ |j!d)d*«d*|d+<Œ9|j d d,«|d-<|d-�6d|d-cxkrd.ks(nt#d/«}t%j&||d-z«‚|j d d0«|d1<|d1�6d|d1cxkrd2ks(nt#d3«}t%j&||d1z«‚tj(|vrd|d4<|j dd5«rd|d5<tj*|vrü|jd d6«}|d7vr\|j-d d6«}t#d8«}|j/||z«|j0s|j/t#d9«|z«|}t#d:«}t#d;«}t2j4s_|dd=|zd>z}|j/|«|j0sd?|zd@z}|j/|«|dAk(rt%j&||¬B«‚d|dC<tj6|vr÷|jd dD«}|d7vr\|j-d dD«}t#dE«}|j/||z«|j0s|j/t#d9«|z«|}t#dF«}t#dG«}t8j:s_|dd=|zd>z}|j/|«|j0sd?|zd@z}|j/|«|dAk(rt%j&||¬B«‚|j d dH«rd|dI<|j dJdC«rd|dK<|S)Lz+Resolve opener options specific to revlogs.sflagprocessorsTórevlogv1órevlogv2s changelogv2réschangelog-v2.compute-rankschangelogv2.compute-ranks generaldeltarçschunkcachesizeNóstorages#revlog.optimize-delta-parent-choicesdeltabothparentss5revlog.delta-parent-search.candidate-group-chunk-sizes.delta-parent-search.candidate-group-chunk-sizesdebugsrevlog.debug-deltas debug-deltasrevlog.issue6528.fix-incomingsissue6528.fix-incomingsrevlog.reuse-external-deltaFs"revlog.reuse-external-delta-parents lazydeltas lazydeltabasesmaxdeltachainspanrsmmapindexthresholds sparse-readssparse-read.density-thresholdssparse-read.min-gap-sizeswith-sparse-readssparse-read-density-thresholdssparse-read-min-gap-sizeó sparse-revlogs maxchainlensrevlog-compression-sexp-compression-ó-és compenginesrevlog.zlib.levels zlib.levelé s8invalid value for `storage.revlog.zlib.level` config: %dsrevlog.zstd.levels zstd.levelés8invalid value for `storage.revlog.zstd.level` config: %dsenableellipsiss rust.indexs#revlog.persistent-nodemap.slow-path)rnówarnrqsMunknown value for config "storage.revlog.persistent-nodemap.slow-path": "%s" s"falling back to default value: %s sQaccessing `persistent-nodemap` repository without associated fast implementation.s@check `hg help config.format.use-persistent-nodemap` for detailsrûs warning: rRó(s) rqrrrysdirstate-v2.slow-paths7unknown value for config "dirstate-v2.slow-path": "%s" sJaccessing `dirstate-v2` repository without associated fast implementation.s9check `hg help config.format.use-dirstate-v2` for detailssrevlog.persistent-nodemap.mmapspersistent-nodemap.mmapódevelsdevel-force-nodemap)rVrìrœr�rŒÚGENERALDELTA_REQUIREMENTrër/Ú gddeltaconfigÚ configbytesÚfloatr�ÚSPARSEREVLOG_REQUIREMENTÚ revlogconstÚSPARSE_REVLOG_MAX_CHAIN_LENGTHÚ startswithÚsplitrrr$ÚNARROW_REQUIREMENTÚNODEMAP_REQUIREMENTÚconfig_defaultÚwarnÚquietr,ÚHAS_FAST_PERSISTENT_NODEMAPÚDIRSTATE_V2_REQUIREMENTrÚHAS_FAST_DIRSTATE_V2)rÝr+ryr|Úcmp_rankÚchunkcachesizeÚdeltabothparentsÚdps_cgdsÚ issue6528Ú lazydeltaÚ lazydeltabaseÚ chainspanÚmmapindexthresholdÚwithsparsereadÚsrdensitythresÚ srmingapsizeÚ sparserevlogÚ maxchainlenÚrÚprefixÚmsgÚ slow_pathÚdefaultrss rQrírí,sú€ð€GØ!#€GÐ Ñä×+Ñ+¨|Ñ;Ø#ˆ� ÑÜ×+Ñ+¨|Ñ;Ø#ˆ� ÑÜ×.Ñ.°,Ñ>Ø"&ˆ�ÑØ—=‘= Ð2NÓOˆØ/7ˆÐ+Ñ,ä×/Ñ/°<Ñ?Ø#'ˆ�Ñ ð—\‘\ )Ð->Ó?€NØÐ!Ø%3ˆÐ!Ñ"à—}‘}ØÐ:óÐð$4€GÐ Ñ Ø�|‰|ØØ@ó€HðBJ€GÐ =Ñ>Ø Ÿm™m¨HÐ6KÓL€GˆNÑà— ‘ ˜jÐ*JÓK€IØ)2€GÐ %Ñ&à— ‘ ˜jÐ*HÓI€IØ€MÙØŸ ™ Ø Ð=ó ˆ ðÐÜ#×1Ñ1°"Ó5Ð5ˆ Ø%€GˆLÑØ -€GÐ Ñà—‘˜Ð0DÓE€I؈I‚~Ø(1ˆÐ$Ñ%àŸ™¨Ð9NÓOÐØÐ%Ø);ˆÐ%Ñ&à—]‘] ?°NÓC€NÜØ � ‰ �/Ð#CÓDó€Nð—>‘> /Ð3NÓO€LØ#1€GÐ Ñ Ø0>€GÐ ,Ñ-Ø+7€GÐ 'Ñ(ä"×;Ñ;¸|ÐK€LØ ,€GÐ ÑÙØ#'ˆ�Ñ à€KÙÜ!×@Ñ@ˆ à—,‘,˜y¨.¸+ÓF€KØÐØ"-ˆ�Ñ㠈𠗑ˆÙ Ð(Ô )©VÐ4GÕ-HØ%&§W¡W¨T°1Ó%5°aÑ%8ˆG�MÒ "ðð Ÿ\™\¨*Ð6JÓK€GˆMÑØˆ}ÑÐ)Ø�W˜]Ñ+Ô0¨qÔ0ÜÐOÓPˆCÜ—+‘+˜c G¨MÑ$:Ñ:Ó;Ð ;ØŸ\™\¨*Ð6JÓK€GˆMÑØˆ}ÑÐ)Ø�W˜]Ñ+Ô1¨rÔ1ÜÐOÓPˆCÜ—+‘+˜c G¨MÑ$:Ñ:Ó;Ð ;ä×)Ñ)¨\Ñ9Ø%)ˆÐ!Ñ"à ‡}�}�_ mÔ4Ø!%ˆ� ÑÜ×*Ñ*¨lÑ:Ø—I‘IØ Ð>ó ˆ ð Ð9Ñ 9Ø×'Ñ'ØÐBóˆGôðIóˆCð �G‰G�C˜)‘OÔ $Ø—8’8Ø—‘œÐ@ÓAÀGÑKÔL؈Iäð $ó ˆôð ó ˆô×1Ò1ؘGÒ#Ø" SÑ(¨5Ñ0�Ø—‘˜” Ø—x’xØ $™;¨Ñ/�DØ—G‘G˜D”MؘHÒ$Ü—k‘k #¨DÔ1Ð1Ø)-ˆÐ%Ñ&Ü×.Ñ.°,Ñ>Ø—I‘I˜jÐ*BÓCˆ Ø Ð9Ñ 9Ø×'Ñ'¨ Ð4LÓMˆGÜÐOÓPˆCØ �G‰G�C˜)‘OÔ $Ø—8’8Ø—‘œÐ@ÓAÀGÑKÔL؈Iäð $ó ˆôØ Ló ˆô×,Ò,ؘGÒ#Ø" SÑ(¨5Ñ0�Ø—‘˜” Ø—x’xØ $™;¨Ñ/�DØ—G‘G˜D”MؘHÒ$Ü—k‘k #¨DÔ1Ð1Ø ‡}�}�ZÐ!BÔCØ.2ˆÐ*Ñ+Ø ‡}�}�XÐ4Ô5Ø*.ˆÐ&Ñ'à €NrUc ó—tS)z6Produce a type conforming to ``ilocalrepositorymain``.)rÉ)r§s rQÚmakemainr#Øs€ä ÐrUcó—eZdZdZd„Zy)Úrevlogfilestoragez File storage when using revlogs.cóØ—|jd«r|dd}|j«duxstj|j«}t j |j ||¬«S©Nó/r)Ú try_split)rÚcurrenttransactionr5Úmayhavependingr¸rÚsvfs©rLrer)s rQÚfilezrevlogfilestorage.fileása€Ø �?‰?˜4Ô Ø˜˜�8ˆDð × #Ñ #Ó %¨TÐ 1ò 1Ü×%Ñ% d§i¡iÓ0ð ô �‰˜tŸy™y¨$¸)ÔDÐDrUN©rVrWrXrYr.r rUrQr%r%Ýs „á*ó ErUr%có—eZdZdZd„Zy)Úrevlognarrowfilestoragez1File storage when using revlogs and narrow files.cóî—|jd«r|dd}|j«duxstj|j«}t j |j||j|¬«Sr') rr*r5r+r¸rÚ narrowfilelogr,Ú_storenarrowmatchr-s rQr.zrevlognarrowfilestorage.fileñsp€Ø �?‰?˜4Ô Ø˜˜�8ˆDð × #Ñ #Ó %¨TÐ 1ò 1Ü×%Ñ% d§i¡iÓ0ð ô×$Ñ$Ø �I‰I�t˜T×3Ñ3¸yô ð rUNr/r rUrQr1r1ís „á;ó  rUr1c óº—|jtj«|jtj«tj |vrt StS)z=Produce a type conforming to ``ilocalrepositoryfilestorage``.)rbr9Ú REPO_FEATURE_REVLOG_FILE_STORAGEr rVrr1r%)r+ryr§s rQÚmakefilestorager7þs@€à ‡L�L”×<Ñ<Ô=Ø ‡L�L”×5Ñ5Ô6ä×)Ñ)¨\Ñ9Ü&Ð&ä Ð rUcó—tSrD)r#r rUrQrwrws€­hrUcó—tSrD)r7r rUrQrwrws€µ_rUcóŽ—eZdZdZej ej ejejejejejejejejejej ej"ej$ej&ej(ej*ej,ej.ej0hZhd£Z d�dedej:dej:dedej:d ej:f d „Zd „Zd „Z e!d „«Z"d„Z#d„Z$d„Z%e!d„«Z&e!d„«Z'd„Z(d‘d„Z)d„Z*d�d„Z+e,dddd«d„«Z-d„Z.e!d„«Z/e0dd«d „«Z1e0d!«d"„«Z2e3«d#„«Z4e5«d$„«Z6e7d%„«Z8d&„Z9d'„Z:e0e;jx«d(„«Z=e0e;jx«d)„«Z>e0e;jx«d*„«Z?d‘d+„Z@d,„ZAe7d-„«ZBe7d.„«ZCeDd/„«ZEe!d0„«ZFd1„ZGd2„ZHd3„ZIeIZJd4„ZKd5„ZLd6efd7„ZMd6efd8„ZNd’d9efd:„ZOd;efd<„ZPd“d=„ZQeRd>„«ZSd?„ZTd@„ZUdA„ZVdB„ZWdC„ZXdD„ZYdE„ZZeDdF„«Z[dG„Z\d“dH„Z]dI„Z^dJ„Z_dK„Z`dL„ZadM„ZbdN„ZcdO„ZddPedQed;efdR„Zed�dS„Zfd”dTefdU„Zgd;efdV„Zhd�dPedWeied;efdX„ZjdY„ZkdZ„Zle7d[„«Zme7d\„«Znd]„Zod^ed;efd_„Zp d“d^ed`edaed;eqfdb„Zrd^ed`ed;efdc„Zsdd„Ztd�de„Zudf„Zvdg„ZweDdh„«Zxdi„Zyd•dj„ZzeDdk„«Z{dl„Z|eDd–dm„«Z}dn„Z~do„Zdp„Z€d“dq„Z�dr„Z‚eDds„«Zƒdt„Z„du„Z…d—dv„Z†d—dw„Z‡dx„Zˆdy„Z‰dz„ZŠd{„Z‹eD d˜d|„«ZŒeDd’d}„«Z�eDd~„«ZŽeDd„«Z� d™d€„Z�d�„Z‘d‚„Z’dƒ„Z“d�d„„Z”dšd…„Z•d†„Z–d‡„Z—dˆ„Z˜e7d‰„«Z™dŠ„Zšd‹„Z›d”dŒ„Zœd�„Z�dŽ„Zž d“d�„ZŸy)›rÉaQMain class for representing local repositories. All local repositories are instances of this class. Constructed on its own, instances of this class are not usable as repository objects. To obtain a usable repository object, call ``hg.repository()``, ``localrepo.instance()``, or ``localrepo.makelocalrepository()``. The latter is the lowest-level. ``instance()`` adds support for creating new repositories. ``hg.repository()`` adds more extension integration, including calling ``reposetup()``. Generally speaking, ``hg.repository()`` should be used. >ó bisect.stater¶ócache/rbNr„rzr]r^r}r~cóΗ||_||_||_||_|j|_||_|j|_||_t|_ |jj|_ ||_ ||_ | |_| |_| |_| |_d|_|jj'dd«s|jj'dd«r4|j)|j j*«|j _g|_t/j0|j«|jj|_|jj |_|jj6|_|jj'dd«s|jj'dd«r�t;j<|j4d«rI|j?|j4j j*«|j4j _n4|j?|j4j*«|j4_d|_ tCjD«|_#d|_$i|_%i|_&dx|_'x|_(|_)i|_*i|_+d|_,g|_-d|_.d|_/taj`«|_1i|_2i|_3tijj|«|_6d|_7tpjr|jvrd|_7tu«|_;i|_<t{j||«y)aòCreate a new local repository instance. Most callers should use ``hg.repository()``, ``localrepo.instance()``, or ``localrepo.makelocalrepository()`` for obtaining a new repository object. Arguments: baseui ``ui.ui`` instance that ``ui`` argument was based off of. ui ``ui.ui`` instance for use by the repository. origroot ``bytes`` path to working directory root of this repository. wdirvfs ``vfs.vfs`` rooted at the working directory. hgvfs ``vfs.vfs`` rooted at .hg/ requirements ``set`` of bytestrings representing repository opening requirements. supportedrequirements ``set`` of bytestrings representing repository requirements that we know how to open. May be a supetset of ``requirements``. sharedpath ``bytes`` Defining path to storage base directory. Points to a ``.hg/`` directory somewhere. store ``store.basicstore`` (or derived) instance providing access to versioned storage. cachevfs ``vfs.vfs`` used for cache files. wcachevfs ``vfs.vfs`` used for cache files related to the working copy. features ``set`` of bytestrings defining features/capabilities of this instance. intents ``set`` of system strings indicating what this repo will be used for. Nrýó all-warningsó check-locksr7Frè)?rƒrÝr„Úwvfsr\r¸r7rer+r Ú nodeconstantsÚnullidrÐr^r1r}r~ryÚ filternamerŒÚ _getvfswardÚauditÚ_phasedefaultsrÚsetupÚspathr,rgrpr6r+Ú _getsvfswardÚ_dirstatevalidatewarnedrÚBranchMapCacheÚ _branchcachesÚ_revbranchcacheÚ _filterpatsÚ _datafiltersÚ _transrefÚ_lockrefÚ _wlockrefr“ÚfilteredrevcacheÚ _dirstateÚ _postdsstatusÚ_pending_narrow_patsÚ_pending_narrow_pats_dirstater"rÅÚ_sparsesignaturecacheÚ_sparsematchercacher*Ú extrafilterÚ_extrafilteridÚfilecopiesmoderVrîrSrâÚ_sidedata_computersÚ sidedatamodÚset_sidedata_spec_for_repo)rLrƒrÝr„rzr]r+r…r^r1r}r~ryrxs rQr`zlocalrepository.__init__Ms�€ðHˆŒ ؈ŒØ ˆŒ àˆŒ Ø—L‘LˆŒ àˆŒØ—J‘JˆŒ Ø(ˆÔÜ.ˆÔØ×(Ñ(×/Ñ/ˆŒ Ø.ˆŒØ$ˆŒØˆŒ Ø ˆŒ Ø"ˆŒØ ˆŒ àˆŒà �7‰7× Ñ ˜h¨Ô 8¸D¿G¹G×Ð>ˆŒÐ>˜œ¨¬ð ˆŒð!#ˆÔàˆŒàˆÔà$(ˆÔ!Ø-1ˆÔ*ô ×*Ñ*Ó,ˆŒ ð&(ˆÔ"à#%ˆÔ ä&×2Ñ2°2Ó6ˆÔà"ˆÔÜ × 0Ñ 0°D×4EÑ4EÑ EØ"7ˆDÔ ä #£ˆÔØ#%ˆÔ Ü×.Ñ.¨tÕ4rUcóF‡‡‡—tj‰«Šdˆˆˆfd„ }|S)zbuild a ward for self.vfscóЕ‡—‰‰|¬«}‰«}|�,tj|d«rtj|d«sy|dvry‰j|j«r‰t |j«dzdЉjd«r#d}|j j |‰zdd ¬ «d }tˆfd „|D««r>|j|j«€!|j j d ‰zdd¬ «|S|j|j«€E‰ jD]}‰j|«sŒy|j j d‰zdd¬ «|S)N©ÚmoderRrQ©Nórsrbrr<s2accessing cache with vfs instead of cachevfs: "%s"és cache-vfs)Ú stacklevelr�)sjournal.sundo.s strip-backup/r<c3ó@•K—|]}‰j|«–—Œy­wrD)r)Ú.0rres €rQÚ z@localrepository._getvfsward..checkvfs..søèø€ÐKÑ9J¨v�4—?‘? 6×*Ñ9Jùsƒówrite with no lock: "%s"r?swrite with no wlock: "%s") r6r+rreÚlenrÝÚ develwarnÚanyÚ _currentlockrQrRÚ_wlockfreeprefix) rercr3rMrÚvfs_path_prefixesrÚorigfuncÚrrefrLs ` €€€rQÚcheckvfsz-localrepository._getvfsward..checkvfsðsbù€Ù˜4 dÔ+ˆCÙ“6ˆDà� Ü×'Ñ'¨¨kÔ:Ü×'Ñ'¨¨jÔ9àØÐ*Ñ*ØØ�‰˜tŸy™yÔ)àœC § ¡ ›N¨QÑ.Ð0Ð1�Ø�‰˜yÔ)ØK�Ø—‘×!Ñ! #¨¡*¸À<Ð!ÔPð!Ð ô ÓKÑ9JÓKÔKØ×$Ñ$ T§]¡]Ó3Ð;Ø—G‘G×%Ñ%Ø3°dÑ:Ø#$Ø-ð&ôð"ˆJð×"Ñ" 4§>¡>Ó2Ð:ð#×3Ô3�FØ—‘ vÕ.Ùð4ð—‘×!Ñ!Ø0°4Ñ7Ø Ø)ð"ôð ˆJrUrD©ÚweakrefÚref)rLrrrtrss`` @rQrDzlocalrepository._getvfswardìsú€ä�{‰{˜4Ó ˆ÷+ ðZˆrUcóB‡‡—tj|«Šdˆˆfd„ }|S)zbuild a ward for self.svfscóH•—‰||¬«}‰«}|�tj|d«sy|dvry|j|j«r|t |j«dzd}|j |j «€ |jjd|zd¬«|S)NrbrQrdrrké)rg) r6r+rr^rlrorQrÝrm)rercr3rMrrrss €€rQÚ checksvfsz/localrepository._getsvfsward..checksvfs#s¡ø€Ù˜4 dÔ+ˆCÙ“6ˆD؈|¤4×#3Ñ#3°D¸*Ô#EØØÐ*Ñ*ØØ�‰˜tŸ™Ô/àœC §¡Ó0°1Ñ4Ð6Ð7�Ø× Ñ  §¡Ó/Ð7Ø—‘×!Ñ!Ø/°$Ñ6À1ð"ôðˆJrUrDru)rLrrr{rss ` @rQrIzlocalrepository._getsvfswardsù€ä�{‰{˜4Ó ˆö ð ÐrUcóJ—|j|j|jdœS)N)rUr_rm©r,r7r»s rQÚvfs_mapzlocalrepository.vfs_map5s#€ð—‘Ø—h‘hØ—i‘iñ ð rUcó$—|j«yrD)Ú _writecachesr»s rQr¿zlocalrepository.close=s€Ø ×ÑÕrUcóR—|jr|jj«yyrD)rMÚwriter»s rQr€zlocalrepository._writecaches@s"€Ø × Ò Ø × Ñ × &Ñ &Õ (ð rUcól—|jjdd«r\t|«}tjtj |d¬««}|j dtj|«z«|jjdd«r|j tj«|S)Nrésbundle2-advertisesclient)Úrolesbundle2=snarrow) rÝrŒrSrÚ encodecapsÚ getrepocapsrbÚurlreqÚquoter8Ú NARROWCAP)rLræÚcapsblobs rQräz%localrepository._restrictcapabilitiesDs‡€Ø �7‰7× Ñ ˜oÐ/CÔ DÜ�t“9ˆDÜ×)Ñ)Ü×#Ñ# D¨yÔ9óˆHð �H‰H�[¤6§<¡<°Ó#9Ñ9Ô :Ø �7‰7× Ñ ˜o¨yÔ 9Ø �H‰H”^×-Ñ-Ô .؈ rUcóX—tj|j|j¬«S)N)Úcallback©r%Ú pathauditorr¸Ú _checknestedr»s rQÚauditorzlocalrepository.auditorRs!€ô×#Ñ# D§I¡I¸×8IÑ8IÔJÐJrUcó\—tj|j|jdd¬«S)NFT)rŒÚrealfsÚcachedr�r»s rQÚ nofsauditorzlocalrepository.nofsauditorXs*€ô×#Ñ#Ø �I‰I × 1Ñ 1¸%Èô ð rUcó¦—|j|j«sy|t|j«dzd}tj|«}|d}tj |«}|ridj |«}||jvr7||k(ry|j|«}|j|t|«dzd«S|j«|rŒiy)z/Determine if path is a legal nested repository.FrNr(T) rr¸rlr6ÚpconvertÚ splitpathrgÚsubstateÚsubÚ checknestedÚpop)rLreÚsubpathÚ normsubpathÚctxÚpartsrr™s rQr�zlocalrepository._checknested`s½€à�‰˜tŸy™yÔ)ØØ”s˜4Ÿ9™9“~¨Ñ)Ð+Ð,ˆÜ—m‘m GÓ,ˆ ð&�4‰jˆÜ—‘˜wÓ'ˆÙØ—Y‘Y˜uÓ%ˆFؘŸ™Ñ%ؘ[Ò(ØàŸ'™' &›/�CØŸ?™?¨7´3°v³;À±?Ð3DÐ+EÓFÐFà— ‘ ” òðrUcó—t|||¬«S)NrÙ)r×)rLrerÚs rQr¹zlocalrepository.peer†s€ÜØ �t¨,ô ð rUcó—|S)zaReturn unfiltered version of the repository Intended to be overwritten by filtered repo.r r»s rQrEzlocalrepository.unfiltered‹s €ðˆ rUcó´—|j�d|vr|dz|jz}tj|j«j«}||||«S)aReturn a filtered version of a repository The `name` parameter is the identifier of the requested view. This will return a repoview object set "exactly" to the specified view. This function does not apply recursive filtering to a repository. For example calling `repo.filtered("served")` will return a repoview using the "served" view, regardless of the initial view used by `repo`. In other word, there is always only one level of `repoview` "filtering". ó%)r[r*ÚnewtyperErP)rLr”Úvisibilityexceptionsr³s rQràzlocalrepository.filtered‘sX€ð × Ñ Ð *¨t¸4Ñ/?ؘ$‘; ×!4Ñ!4Ñ4ˆDä×јtŸ™Ó0×:Ñ:Ó;ˆÙ�4˜Ð3Ó4Ð4rU)ó bookmarksr_)sbookmarks.currentr_)r¦rUrtcóL—|j«tj|«SrD)Ú_refreshchangelogrÚbmstorer»s rQÚ _bookmarkszlocalrepository._bookmarks£s"€ðn ×ÑÔ Ü× Ñ  Ó&Ð&rUcóF—dt|«vr|j«€|`yyy)z7make sure the in memory changelog match the on-disk oneÚ changelogN)r¢r*r¬r»s rQr¨z!localrepository._refreshchangelogÝs*€à œ$˜t›*Ñ $¨×)@Ñ)@Ó)BÐ)JØ‘ð*KÐ $rUcó.—|jjSrD)rªÚactiver»s rQÚ_activebookmarkzlocalrepository._activebookmarkâs€à�‰×%Ñ%Ð%rUs phaserootsrucóB—tj||j«SrD)r&Ú phasecacherFr»s rQÚ _phasecachezlocalrepository._phasecacheés€ä× Ñ   t×':Ñ':Ó;Ð;rUsobsstorecóB—tj|j|«SrD)r$r™rÝr»s rQÚobsstorezlocalrepository.obsstoreís€ä×!Ñ! $§'¡'¨4Ó0Ð0rUcóæ—|jj«|jjt j |j «tj|jd«¬«S)Nó changelog)Úconcurrencychecker) rÚprefetch_parentsr1r¬r5r+r¸Ú revlogcheckerÚ get_checkerrÝ)rMs rQr¬zlocalrepository.changelogñsV€ð � ‰ ×&Ñ&Ô(Ø�z‰z×#Ñ#Ü × "Ñ " 4§9¡9Ó -Ü,×8Ñ8¸¿¹À,ÓOð$ó ð rUcóN—|jj||j«SrD)r1Ú manifestlogr4r»s rQr¼zlocalrepository.manifestlogús€à�z‰z×%Ñ% d¨D×,BÑ,BÓCÐCrUcó¨—|j€!|j«|_|jS|jj«|jSrD)rTÚ _makedirstateÚrefreshr»s rQrzlocalrepository.dirstateþsD€à �>‰>Ð !Ø!×/Ñ/Ó1ˆDŒNð�~‰~Ðð �N‰N× "Ñ "Ô $Ø�~‰~ÐrUc óR‡—d}tj‰«rˆfd„}tj}tj}|‰j v}|‰j v}t j ‰j‰j‰j‰j|‰j||¬«S)z3Extension point for wrapping the dirstate per-repo.Ncó.•—tj‰«SrD)r0Úmatcherr»s€rQrwz/localrepository._makedirstate.. sø€¤F§N¡N°4Ô$8rU)Úuse_tracked_hint) r0Ú use_sparserVr ÚDIRSTATE_TRACKED_HINT_V1r+rr7rÝr¸Ú_dirstatevalidaterA)rLÚ sparsematchfnÚv2_reqÚthÚuse_dirstate_v2rÃs` rQr¾zlocalrepository._makedirstates•ø€àˆ Ü × Ñ ˜TÔ "Û8ˆMÜ ×8Ñ8ˆÜ × 5Ñ 5ˆØ  D×$5Ñ$5Ð5ˆØ ×!2Ñ!2Ð2Ðä× Ñ Ø �H‰HØ �G‰GØ �I‰IØ × "Ñ "Ø Ø × Ñ Ø Ø-ô  ð rUcóÊ—d} |jj|«|r|S|j s7d|_|jjtd«t|«z«|jS#tj$r]|j «€H|j « |jj|«n#tj$rd}YnwxYwd}YŒÂwxYw)NTFs-warning: ignoring unknown working parent %s! ) r¬ÚrevrÚ LookupErrorÚ currentlockÚ invalidaterJrÝr rr rB)rLÚnodeÚokays rQrÆz!localrepository._dirstatevalidatesÕ€Øˆð Ø �N‰N× Ñ ˜tÔ $ñ$ ؈Kà×/Ò/Ø/3�Ô,Ø—‘— ‘ ÜÐGÓHܘD“kñ"ôð—;‘;Ð øô5× Ñ ò ð×ÑÓ!Ð)Ø—‘Ô!ð!Ø—N‘N×&Ñ& tÕ,øÜ×(Ñ(ò!Ø ’Dð!úð�ùð! ús5„A2Á23C"Â&CÃC"ÃCÃC"ÃCÃC"Ã!C"cóL—|j}|€tj|«}|S)zdmatcher patterns for this repository's narrowspec A tuple of (includes, excludes). )rVr#Úload)rLÚvals rQÚ narrowpatszlocalrepository.narrowpats;s'€ð×'Ñ'ˆØ ˆ;Ü—/‘/ $Ó'ˆC؈ rUcóÄ—tj|jvrtj«S|j \}}t j|j||¬«S©N)ÚincludeÚexclude) rVrr+ÚmatchmodÚalwaysrÕr#rr¸©rLrØrÙs rQr4z!localrepository._storenarrowmatchGsJ€ä × -Ñ -°T×5FÑ5FÑ FÜ—?‘?Ó$Ð $ØŸ?™?ш�Ü×Ñ § ¡ °7ÀGÔLÐLrUcóî—tj|jvrtj«St j |«|j\}}t j|j||¬«Sr×) rVrr+rÚrÛr#ÚcheckworkingcopynarrowspecrÕrr¸rÜs rQÚ _narrowmatchzlocalrepository._narrowmatchNsX€ä × -Ñ -°T×5FÑ5FÑ FÜ—?‘?Ó$Ð $Ü×-Ñ-¨dÔ3ØŸ?™?ш�Ü×Ñ § ¡ °7ÀGÔLÐLrUcóJ—|r–|rt|jj«sZtj|j ««}tj |j|g«}tj ||«Stj ||j«S|jS)amatcher corresponding the the repo's narrowspec If `match` is given, then that will be intersected with the narrow matcher. If `includeexact` is True, then any exact matches from `match` will be included even if they're outside the narrowspec. )rßrÛrÚÚexactÚfilesÚ unionmatcherÚintersectmatchers)rLrÚ includeexactÚemÚnms rQÚ narrowmatchzlocalrepository.narrowmatchVs„€ñ Ù D×$5Ñ$5×$<Ñ$<Ô$>ô—^‘^ E§K¡K£MÓ2�Ü×*Ñ*¨D×,=Ñ,=¸rÐ+BÓC�Ü×1Ñ1°%¸Ó<Ð<Ü×-Ñ-¨e°T×5FÑ5FÓGÐ GØ× Ñ Ð rUcóV—tj|||«|jd¬«y©NT)Úclearfilecache)r#ÚsaverÏ)rLÚ newincludesÚ newexcludess rQÚ setnarrowpatszlocalrepository.setnarrowpatsis €Ü�‰˜˜k¨;Ô7Ø �‰ tˆÕ,rUcó¶—dt|jjftt|jjf|jt|jfiS)Nónull)r rArBr»s rQÚ_quick_access_changeid_nullz+localrepository._quick_access_changeid_nullmsL€ð ”g˜t×1Ñ1×8Ñ8Ð9Ü ”g˜t×1Ñ1×8Ñ8Ð9Ø �K‰Kœ' 4§;¡;Ð/ð ð rUcó—|jj«}|j«j}|jj «D]}}||j k(rŒ|jj|«}|€Œ1||f}|||<|||<|j|«D]+}|tk(rŒ |j|«}||f}|||<|||<Œ-Œ|jj«}||j k7r|||d<|S)Nó.) ròrßrEr¬rÚparentsrBÚindexÚget_revÚ parentrevsr rÐÚp1) rLÚquickÚclrÐrÌÚpairrr¬Úp1nodes rQÚ_quick_access_changeid_wcz)localrepository._quick_access_changeid_wcus€ð×0Ñ0×5Ñ5Ó7ˆØ �_‰_Ó × (Ñ (ˆØ—M‘M×)Ñ)Ö+ˆDØ�t—{‘{Ò"ØØ—(‘(×"Ñ" 4Ó(ˆC؈{ðؘ�;ˆD؈E�#‰J؈E�$‰Kà—]‘] 3Ö'�Øœ’<ØØ—G‘G˜A“J�ؘ1�v�Ø��a‘Ø��a’ñ (ð,ð(—‘×!Ñ!Ó#ˆØ �T—[‘[Ò Ø ™-ˆE�$‰K؈ rUcó:—dt|«vr|jd=yy)Nrþ)r¢rFr»s rQÚ!_quick_access_changeid_invalidatez1localrepository._quick_access_changeid_invalidate”s €à &¬$¨t«*Ñ 4Ø— ‘ Ð9Ñ:ð 5rUcój—|jtjvr |jS|jS)zœan helper dictionnary for __getitem__ calls This contains a list of symbol we can recognise right away without further processing. )rCr*Ú filter_has_wcrþròr»s rQÚ_quick_access_changeidz&localrepository._quick_access_changeid™s.€ð �?‰?œh×4Ñ4Ñ 4Ø×1Ñ1Ð 1Ø×/Ñ/Ð/rUc ó¨—|€tj|«St|tj«r|St|t«rIt |j t|««ŽD�cgc]}||jjvr||‘Œ!c}S|jj|«}|�|\}}tj|||d¬«S|dk(rL|jj«}|jj|«}tj|||«S t|t«r|jj!|«}|}�n |dk(rD|j"j%«}|j'«jj|«}nÃt|«|j(j*k(r |}|jj|«}n‚t|«d|j(j*zk(r't?|«}|jj|«}n6t-j@d|tCjDtG|««fz«‚tj|||«Scc}w#t,j.$r t1|«}‚t2$rs|j5«rV||j'«j"j7«vr,t9d«}t-j:|t=|«z«‚t1|«}‚wxYw#t,jHt,j.f$r5t-jJt9d«tCjD|«z«‚tLt2f$r5t-jNt9d «tCjD|«z«‚t,jP$rtj|«cYSwxYw) NF)Úmaybe_filteredótiprôs*working directory has unknown parent '%s'!røs$unsupported changeid '%s' of type %ssfiltered revision '%s'óunknown revision '%s'))rÚ workingctxr¢ÚbasectxÚsliceÚrangeÚindicesrlr¬Ú filteredrevsrr}Ú changectxÚtiprÌÚintrÐrrùrErAÚnodelenrÚFilteredLookupErrorrrÍrërõrr$r rrŽr(rýrNÚFilteredIndexErrorÚFilteredRepoLookupErrorÚ IndexErrorÚRepoLookupErrorÚWdirUnsupported)rLÚchangeidÚiÚ quick_accessrÌrÐrs rQÚ __getitem__zlocalrepository.__getitem__¤sT€à Ð Ü×%Ñ% dÓ+Ð +Ü �h¤§¡Ô 0؈Oô �h¤Ô &ô × 0Ñ 0´°T³Ó ;Ñ<óá<�AؘDŸN™N×7Ñ7Ñ7ð�Q“Ø<ñð ð×2Ñ2×6Ñ6°xÓ@ˆ Ø Ð #Ø$‰IˆC�Ü×$Ñ$ T¨3°ÀUÔKÐ KØ �vÒ Ø—>‘>×%Ñ%Ó'ˆDØ—.‘.×$Ñ$ TÓ*ˆCÜ×$Ñ$ T¨3°Ó5Ð 5ð2 ,ܘ(¤CÔ(Ø—~‘~×*Ñ*¨8Ó4�ؘؒTÒ!ð—}‘}×'Ñ'Ó)�Ø—o‘oÓ'×1Ñ1×5Ñ5°dÓ;‘Ü�X“ $×"4Ñ"4×"<Ñ"<Ò<ðØ#�DØŸ.™.×,Ñ,¨XÓ6‘Cô$�X“ ! d×&8Ñ&8×&@Ñ&@Ñ"@Ò@ܘ8“}�Ø—n‘n×(Ñ(¨Ó.‘ä×,Ñ,Ø;ؤ×!1Ñ!1´$°x³.Ó!AÐBñCóðô ×$Ñ$ T¨3°Ó5Ð 5ùòqøô<×0Ñ0òÜ" 8›}�HØÜ"ò ð Ÿ ™ œ Ø$¨¯©Ó(9×(BÑ(B×(JÑ(JÓ(LÑLäÐ MÓN˜Ü#Ÿk™k¨#´°h³Ñ*?Ó@Ð@Ü" 8›}�HØð ûô2×(Ñ(¬%×*CÑ*CÐDò Ü×/Ñ/ÜÐ+Ó,¬x×/?Ñ/?ÀÓ/IÑIóð ôœKÐ(ò Ü×'Ñ'ÜÐ*Ó+¬h×.>Ñ.>¸xÓ.HÑHóð ô×$Ñ$ò ,Ü×%Ñ% dÓ+Ò +ð ,ús4Á&$I,ÄBLÆ5I1ÇBLÉ1BL Ì LÌCOÏOcóB— ||y#tj$rYywxYw)z!True if the given changeid existsTF)rr)rLrs rQÚ __contains__zlocalrepository.__contains__ós)€ð Ø �ŠNØøÜ×$Ñ$ò Ùð ús ‚ˆ�có—yrÓr r»s rQÚ __nonzero__zlocalrepository.__nonzero__ûrïrUcóL—|j«}t|j«SrD)rErlr¬©rLrOs rQÚ__len__zlocalrepository.__len__s€à�‰Ó ˆÜ�4—>‘>Ó"Ð"rUcó,—t|j«SrD)Úiterr¬r»s rQÚ__iter__zlocalrepository.__iter__s€Ü�D—N‘NÓ#Ð#rUÚexprcód—tj|g|¢­Ž}tj|«|«S)aíFind revisions matching a revset. The revset is specified as a string ``expr`` that may contain %-formatting to escape certain types. See ``revsetlang.formatspec``. Revset aliases from the configuration are not expanded. To expand user aliases, consider calling ``scmutil.revrange()`` or ``repo.anyrevs([expr], user=True)``. Returns a smartset.abstractsmartset, which is a list-like interface that contains integer revisions. )r.Úspectreer-Ú makematcher)rLr&r¦Útrees rQÚrevszlocalrepository.revss1€ô×"Ñ" 4Ð/¨$Ò/ˆØ'Œv×!Ñ! $Ó'¨Ó-Ð-rUc'óJK—|j|g|¢­ŽD] }||–—Œ y­w)aVFind revisions matching a revset and emit changectx instances. This is a convenience wrapper around ``revs()`` that iterates the result and is a generator of changectx instances. Revset aliases from the configuration are not expanded. To expand user aliases, consider calling ``scmutil.revrange()``. N)r+)rLr&r¦rs rQrSzlocalrepository.sets+èø€ð�—‘˜4Ð' $Õ'ˆAØ�q‘'‹Mñ(ùs‚!#Úspecscól—|dgk(rtjtg«S|dgk(r6|jj d«}|�tj|dg«S|r7tj |j |tj|«|¬«}ntj d||¬«}||«S)a<Find revisions matching one of the given revsets. Revset aliases from the configuration are not expanded by default. To expand user aliases, specify ``user=True``. To provide some local definitions overriding user aliases, set ``localalias`` to ``{name: definitionstring}``. rñrôNr)rÚ localalias)r/)r-Úbasesetr rr}ÚmatchanyrÝÚlookupfn)rLr-Úuserr/Ú quick_datar­s rQÚanyrevszlocalrepository.anyrevs$s €ð �W�IÒ Ü—>‘>¤7 )Ó,Ð ,Ø �T�FŠ?Ø×4Ñ4×8Ñ8¸Ó>ˆJØÐ%Ü—~‘~ z°!¡} oÓ6Ð6Ù Ü—‘Ø—‘ØÜ—‘ tÓ,Ø%ô ‰Aô—‘  e¸ ÔCˆAÙ�‹wˆrUÚreturncó —d|jzS)Nsfile:r·r»s rQrézlocalrepository.url=s€Ø˜$Ÿ)™)Ñ#Ð#rUc óH—tj|j|||fi|¤ŽS)zþCall a hook, passing this repo instance. This a convenience method to aid invoking hooks. Extensions likely won't call this unless they have registered a custom hook or are replacing code that is expected to call a hook. )rrÝ)rLr”Úthrowr¦s rQrzlocalrepository.hook@s"€ô�y‰y˜Ÿ™ $¨¨eÑ<°tÑ<Ð.tagscachecó<—dx|_|_dx|_|_yrD)r3ÚtagtypesÚ nodetagscacheÚtagslistr»s rQr`z6localrepository._tagscache..tagscache.__init__Qs!€ð -1Ð0�” ˜DœMà59Ð9�Ô" T¥]rUN)rVrWrXr`r rUrQÚ tagscacher<Ps„ó :rUrA)Ú _findtagsr3r>)rLrAÚcaches rQÚ _tagscachezlocalrepository._tagscacheIs/€÷ :ñ :ñ“ ˆØ%)§^¡^Ó%5Ñ"ˆŒ �E”Nàˆ rUcó@—i}|jjr|j«\}}n|jj}|jj }|j «D]\}} ||«|||<Œ|S#tjtf$rYŒ3wxYw)zreturn a mapping of tag to node) r¬r rBrDr3rÌrÀrrÍr‰)rLÚtr3ÚttrÌÚkÚvs rQr3zlocalrepository.tags`s‘€à ˆØ �>‰>× &Ò &Ø—~‘~Ó'‰HˆD‘"à—?‘?×'Ñ'ˆDØ�n‰n× Ñ ˆØ—J‘J–L‰DˆAˆqð á�A”Ø��!’ð !ðˆøô×%Ñ%¤zÐ2ò Ùð úsÁ0 BÂBÂBcóô—tj|j|«}|D�cic]}|d“Œ}}tj|j|||«i}|j «D]0\}\}}||j k7sŒ||t j|«<Œ2|jj«|d<|j «D��cic]\}}t j|«|“Œ}}}||fScc}wcc}}w)auDo the hard work of finding tags. Return a pair of dicts (tags, tagtypes) where tags maps tag name to node, and tagtypes maps tag name to a string like 'global' or 'local'. Subclasses or extensions are free to add their own tags, but should be aware that the returned dicts will be retained for the duration of the localrepo object.sglobalr) ÚtagsmodÚfindglobaltagsrÝÚ readlocaltagsrÀrBrÚtolocalr¬r) rLÚalltagsÚtagr>r3r”rÐÚhistrTs rQrBzlocalrepository._findtagsqsò€ô×(Ñ(¨¯©°$Ó7ˆá.5Ó6©g s�C˜‘N¨gˆÐ6ä×јdŸg™g t¨W°hÔ?ð ˆØ")§-¡-¦/Ñ ˆD‘,�4˜Ø�t—{‘{Ó"Ø/3�”X×%Ñ% dÓ+Ò,ð#2ð—~‘~×)Ñ)Ó+ˆˆV‰ à?G¿~¹~Ô?Oô Ù?O©m¨t°UŒH× Ñ ˜TÓ " EÑ )Ð?Oð ñ ð�hÐÐùò!7ùó s ¥ C/à C4cóL—|jjj|«S)z¨ return the type of the given tag. result can be: 'local' : a local tag 'global' : a global tag None : tag does not exist )rDr>r})rLÚtagnames rQÚtagtypezlocalrepository.tagtype”s€ð�‰×'Ñ'×+Ñ+¨GÓ4Ð4rUcóv—|jjs‡g}|j«j«D]2\}}|j |j j |«||f«Œ4t|«D���cgc] \}}}||f‘Œ c}}}|j_|jjScc}}}w)z)return a list of tags ordered by revision)rDr@r3rÀr~r¬rÌr£)rLÚlrFr¬rs rQr@zlocalrepository.tagslistŸs’€à�‰×'Ò'؈AØŸ ™ › ×)Ñ)Ö+‘��1Ø—‘˜$Ÿ.™.×,Ñ,¨QÓ/°°AÐ6Õ7ð,ä>DÀQ¼iÕ'H¹i±7°1°a¸¨¨Aª¸iÓ'HˆD�O‰OÔ $à�‰×'Ñ'Ð'ùô(IsÁ;B4có„—|jjs…i}|jjj«D]&\}}|j |g«j |«Œ(|j «D]}|j«Œ||j_|jjj|g«S)z&return the tags associated with a node) rDr?r3rÀÚ setdefaultr~ÚvaluesÚsortr})rLrÐr?rFr¬r3s rQÚnodetagszlocalrepository.nodetags©s•€à�‰×,Ò,؈MØŸ™×,Ñ,×2Ñ2Ö4‘��1Ø×(Ñ(¨¨BÓ/×6Ñ6°qÕ9ð5à%×,Ñ,Ö.�Ø— ‘ • ð/à,9ˆD�O‰OÔ )Ø�‰×,Ñ,×0Ñ0°°rÓ:Ð:rUcó8—|jj|«S)z;return the list of bookmarks pointing to the specified node)rªrÅ)rLrÐs rQÚ nodebookmarkszlocalrepository.nodebookmarks´s€à�‰×$Ñ$ TÓ*Ð*rUcó —|j|S)zkreturns a dictionary {branch: [branchheads]} with branchheads ordered by increasing revision number)rLr»s rQrzlocalrepository.branchmap¸s€ð×!Ñ! $Ñ'Ð'rUcó‚—|js(tj|j««|_|jSrD)rMrÚrevbranchcacherEr»s rQr`zlocalrepository.revbranchcache½s1€à×#Ò#Ü#,×#;Ñ#;¸D¿O¹OÓ‘>Ó#×-Ñ-¨fÓ5Ð 5øÜò Ù Ü×+Ñ+¬AÐ.DÓ,EÈÑ,NÓOÐOáð  ús‚!¡,AÁAcó”—tj||«j«}|€!tjt d«|z«‚|S)Nr)r/Ú revsymbolrÐrrr)rLrrÐs rQrzlocalrepository.lookupÖsC€Ü× Ñ   sÓ+×0Ñ0Ó2ˆØ ˆ<Ü×'Ñ'¬Ð*BÓ(CÀcÑ(IÓJÐ J؈ rUcóŒ—|j«j|«r|Stj||«j «SrD)rÚ hasbranchr/rjrgrs rQÚ lookupbranchzlocalrepository.lookupbranchÜs8€Ø �>‰>Ó × %Ñ % cÔ *؈Jä× Ñ   sÓ+×2Ñ2Ó4Ð4rUcó¼—|j}|jj}|j}g}|D]&}||«}|duxs||v }|j |«Œ(|SrD)r¬rör÷r r~) rLrrûr÷ràrÐr¬rÚresps rQrzlocalrepository.knownâsc€Ø �^‰^ˆØ—(‘(×"Ñ"ˆØ—?‘?ˆØˆÛˆAÙ˜“ ˆAؘT˜ Ò2 Q¨( ]Ð3ˆDØ �M‰M˜$Õ ððˆ rUcó—|SrDr r»s rQrëzlocalrepository.localír½rUcó>—|jjddd¬«S)NóphasesspublishT)Ú untrusted)rÝrŒr»s rQÚ publishingzlocalrepository.publishingðs €ð�w‰w×!Ñ! )¨ZÀ4Ð!ÓHÐHrUcó’—|j«sy|j«sy|jd«jj S)NFTóvisible)rërtràr¬r r»s rQÚcancopyzlocalrepository.cancopyõs9€à�z‰zŒ|ØØ�‰Ô Øà—=‘= Ó,×6Ñ6×CÑCÐCÐCrUcó8—|j|jk7ryy)z2the type of shared repository (None if not shared)rmN)r^rer»s rQr¦zlocalrepository.sharedþs€à �?‰?˜dŸi™iÒ 'ØØrUrÏÚinsidefcóR—|jj|j|g|¢­ŽSrD)r7Úreljoinr¸)rLrÏrys rQÚwjoinzlocalrepository.wjoin s$€Øˆt�x‰x×Ñ § ¡ ¨1Ð7¨wÒ7Ð7rUcój—|€ |j}|dj||«|j«yrD)rBÚ setparentsr)rLrùÚp2s rQr~zlocalrepository.setparents s0€Ø ˆ:Ø—‘ˆBØ ˆT‰ ×јb "Ô%Ø ×.Ñ.Õ0rUrecó6—tj|||||¬«S)zcchangeid must be a changeset revision, if specified. fileid can be a file revision or node.)r)rÚfilectx)rLrerÚfileidrs rQr�zlocalrepository.filectx s €ô�‰Ø �$˜ &°Iô ð rUcó6—|jj«SrD)rÚgetcwdr»s rQr„zlocalrepository.getcwd s€Ø�}‰}×#Ñ#Ó%Ð%rUÚcwdcó:—|jj||«SrD)rÚpathto)rLrÏr…s rQr‡zlocalrepository.pathto s€Ø�}‰}×#Ñ# A sÓ+Ð+rUcóJ—||jv�rg}|jj|«D]×\}}|dk(rŒ tj|j d|g«}d}|}|j j«D]6\}} |j|«sŒ| }|t|«dj«}n|s d„}d|_ tj|«ds|} | fd„}d| jz|_ |j|||f«ŒÙ||j|<|j|S)Nó!rUcó.—tj||«SrD)r;Úfilter)ÚsÚcr§s rQrwz-localrepository._loadfilter..) s€´·±ÀÀ1Ô0ErUÚ commandfilterrøcó—|||«SrDr )rŒr�Úoldfnr§s rQrwz-localrepository._loadfilter... s €¹UÀ1Àa¼[rUzcompat-)rNrÝÚ configitemsrÚrr¸rOrÀrrlÚlstriprVr(Ú getargspecr~) rLr‹rVÚpatÚcmdÚmfrÎÚparamsr”Úfilterfnr�s rQÚ _loadfilterzlocalrepository._loadfilter s €Ø ˜×)Ñ)Ò )؈AØ ŸG™G×/Ñ/°Ö7‘��Sؘ$’;ØÜ—^‘^ D§I¡I¨s°S°EÓ:�Ø�Ø�Ø&*×&7Ñ&7×&=Ñ&=Ö&?‘N�D˜(Ø—~‘~ dÕ+Ø%˜Ø!$¤S¨£Y [Ð!1×!8Ñ!8Ó!:˜Ùð '@ñ ÙE�BØ"1�B”Kä×*Ñ*¨2Ó.¨qÒ1Ø�EØ,1ÒH�BØ"+¨e¯n©nÑ"<�B”KØ—‘˜"˜b &Ð)Õ*ð'8ð(()ˆD× Ñ ˜VÑ $Ø×Ñ Ñ'Ð'rUcóâ—|D]i\}}}||«sŒ|jjd||xstj|j«fz«||||j||¬«}|S|S)Nsfiltering %s through %s )rÝrMÚfilename)rÝÚdebugr(ÚsysbytesrV)rLÚ filterpatsr›Údatar–rÎr•s rQÚ_filterzlocalrepository._filter4 su€Û%‰KˆB��CÙ�(�|Ø—‘— ‘ Ø0Ø Ò!F¬×(9Ñ(9¸"¿+¹+Ó(FÐGñHôñ˜$ ¨¯©°dÀXÔN�Øàˆ ð&ðˆ rUcó$—|jd«S)Nsencode©r™r»s rQÚ_encodefilterpatsz!localrepository._encodefilterpats@ ó€à×Ñ  Ó*Ð*rUcó$—|jd«S)Nsdecoder¢r»s rQÚ_decodefilterpatsz!localrepository._decodefilterpatsD r¤rUcó"—||j|<yrD)rO)rLr”r‹s rQÚ adddatafilterzlocalrepository.adddatafilterH s€Ø"(ˆ×ј$ÒrUr›cóà—|jj|«r|jj|«}n|jj|«}|j |j ||«SrD)r@ÚislinkÚreadlinkrTr r£©rLr›rŸs rQÚwreadzlocalrepository.wreadK sS€Ø �9‰9× Ñ ˜HÔ %Ø—9‘9×%Ñ% hÓ/‰Dà—9‘9—>‘> (Ó+ˆDØ�|‰|˜D×2Ñ2°H¸dÓCÐCrUrŸÚflagsc óz—|j|j||«}d|vr'|jj||«t |«S|jj||fd|i|¤Žd|vr(|jj |dd«t |«S|jj |dd«t |«S)z€write ``data`` into ``filename`` in the working directory This returns length of written (maybe decoded) data. ólÚbackgroundcloseóxFT)r r¦r@Úsymlinkr‚Úsetflagsrl)rLr›rŸr®r±r§s rQÚwwritezlocalrepository.wwriteR s¹€ð�|‰|˜D×2Ñ2°H¸dÓCˆØ �5‰=Ø �I‰I× Ñ ˜d HÔ -ô�4‹yÐð ˆD�I‰I�O‰Oؘ$ñ Ø0?ð ØCIò ð�u‰}Ø— ‘ ×"Ñ" 8¨U°DÔ9ô�4‹yÐð— ‘ ×"Ñ" 8¨U°EÔ:Ü�4‹yÐrUcó<—|j|j||«SrD)r r¦r¬s rQÚ wwritedatazlocalrepository.wwritedatak s€Ø�|‰|˜D×2Ñ2°H¸dÓCÐCrUcój—|jr|j«}nd}|r|j«r|Sy)z4return the current transaction or None if non existsN)rPÚrunning)rLÚtrs rQr*z"localrepository.currenttransactionn s-€à �>Š>Ø—‘Ó!‰BàˆBá �"—*‘*”,؈IØrUc óV‡‡‡‡‡‡—|jjdd«s|jjdd«r0|j|j«€t j d«‚|j «Š‰�‰j‰¬«S|jjd«r)t jtd«td«¬ «‚|jjrd }t j |«‚d tj«tj«fz}t!t#j$|«j'««}d |z}|j)d d‰|¬«|j+‰«|r|}n|jj,}|j.}t1j2|«Šd„Š|jjdd«} ‰dk7r"| r |j4j7«Šˆˆfd„Šˆˆˆˆfd„} ˆfd„} t9j8||j|ddd„|j:j<| | t>‰¬« Š|jA«D]\} } ‰jC| | «ŒtE|«‰jFd<tI«‰jFd<g‰jFd<i‰jFd<|‰jJd<‰‰jJd<‰jF‰jJd <‰jMd!|j:jN«ˆˆfd"„}‰jMd#|«‰jQd$|jS‰««ˆfd%„}‰jUd&|«‰jQd'|jV«t1j2‰«|_,t[j\|‰‰«|j_«�P|jŠ|j`jd(«s‰jcd)d«ˆfd*„}‰jed+|«‰S),Nrýr>r?stransaction requires locking)r”ójournalsabandoned transaction founds(run 'hg recover' to clean up transactionrrz/cannot open a transaction with a dirty dirstates%.40f#%fsTXN:s pretxnopenT)r9ÚtxnnameÚtxnidcó—yrDr )Úxs rQrwz-localrepository.transaction..Ç s€˜drUréshook-track-tagsóstripc󺕗‰«}|€J‚tj|j|‰«}|jj «}tj|j||«}tj |j|||«}|rCd|j d<|jddd¬«5}tj||«ddd«yy#1swYyxYw)Nó1s tag_movedschanges/tags.changesówT)Ú atomictemp) rKÚ fnoderevsrÝr¬ÚheadrevsÚdifftagsÚhookargsr7Ú writediff) Útr2rMÚ oldfnodesÚnewheadsÚ newfnodesÚchangesÚ changesfileÚoldheadsÚreporefs €€rQÚ tracktagsz.localrepository.transaction..tracktagsÏ sÌø€Ù“y�ØÐ'Ð'Ð'Ü#×-Ñ-¨d¯g©g°t¸XÓF� ØŸ>™>×2Ñ2Ó4�Ü#×-Ñ-¨d¯g©g°t¸XÓF� ô"×*Ñ*¨4¯7©7°D¸)ÀYÓO�ÙØ15�C—L‘L Ñ.ØŸ™Ø/°À$ð"ôà$ô ×)Ñ)¨+°wÔ?÷ ðð÷ðús Â0CÃCc 󲕗‰|«‰«}|€J‚d}|jj|Ž}|r^|jj|Žd}|jdd«}|jdd«rd}nd}t j ||‰||«t j|jd «r™t‰jd j««D]p\}\}} ‰jj«} | jtj||| ««|j dd d it!j"| «¤ŽŒrt j|jd «r½|j%«j&} ‰jdD]‘\} \}} | D]„} ‰jj«} t)| j+| ««}| jt-j||| ««|j dd d it!j"| «¤ŽŒ†Œ“|j dd d it!j"‰j«¤Žy)zwill run pre-closing hooksN)réssingle-head-per-branchrsaccount-closed-headsFspublic-changes-onlys immutablervópretxnclose-bookmarkr¦r9Tópretxnclose-phaserr)rÕ)rÖ)s pretxnclose)rÝrŒÚconfigsuboptionsr}r/ÚenforcesingleheadrÚhashookr£rÏrÀrÉrßr‹rÚpreparehookargsr(rÇrEr¬rrÐr&)rËrMÚ singleheadoptÚ singleheadÚ singleheadsubÚ accountclosedrCr”r!r"r¦rûr+rÌrÐÚdescrÒrºrÓs €€€€rQÚvalidatez-localrepository.transaction..validateâ s.ø€ñ$ �cŒNÙ“9ˆDØÐ#Ð #Ð#àHˆMØ+˜Ÿ™×+Ñ+¨]Ð;ˆJÙØ 8 §¡× 8Ñ 8¸-Ð HÈÑ K� Ø -× 1Ñ 1Ø+¨Uó!� ð!×$Ñ$Ð%;¸UÔCØ!-‘Jà!+�JÜ×)Ñ)ؘ#˜t ]°Jôô�|‰|˜DŸG™GÐ%<Ô=Ü(.Ø—J‘J˜|Ñ,×2Ñ2Ó4ö)Ñ$�D™*˜3 ðŸ;™;×+Ñ+Ó-�DØ—K‘K¤ × 9Ñ 9¸$ÀÀSÓ IÔJØ�D—I‘IØ/ñà"ðô#×,Ñ,¨TÓ2óð )ô�|‰|˜DŸG™GÐ%9Ô:Ø—_‘_Ó&×0Ñ0�Ø(*¯ © °9Ô(=Ñ$�D™*˜3 Û#˜Ø!Ÿ{™{×/Ñ/Ó1˜Ü" 2§7¡7¨3£<Ó0˜ØŸ ™ ¤F×$:Ñ$:¸4ÀÀcÓ$JÔKØ!˜Ÿ ™ Ø0ñà"&ðô'×0Ñ0°Ó6óñ $ð)>ð ˆD�I‰IØñ Ø&*ð Ü.6×.@Ñ.@ÀÇÁÓ.Mó rUcóz•—‰«}|€y|r|jjd«y|jd¬«yrê)rr‚rÏ)rºÚsuccessrMrÒs €rQÚ releasefnz.localrepository.transaction..releasefn" s;ø€Ù“9ˆD؈|ð Ùð — ‘ ×#Ñ# DÕ)𗑨t�Õ4rUóundocó—yrDr r rUrQrwz-localrepository.transaction..< s€�DrU)Ú validatorrãÚcheckambigfilesr”ó origrepolens obsmarkersrrr¦stxnidstxnnameschangess flush-fncachecóf•‡—|jŠˆˆˆfd„}‰«}|€J‚|j|«y)z@To be run if transaction is successful, will schedule a hook runc 󸕗‰ «}|€J‚tj|jd«r›t‰jdj ««}|D]p\}\}}‰j j«}|jtj|||««|j d dditj|«¤ŽŒrtj|jd«rË|j«j}t‰jdd„¬«}|D]‘\} \}}| D]„} ‰j j«}t|j!| ««} |jt#j| ||««|j d dditj|«¤ŽŒ†Œ“|j d dditj‰ «¤Žy) Nótxnclose-bookmarkr¦r9Fótxnclose-phaserrcó—|ddS)Nrr )rs rQrwzUlocalrepository.transaction..txnclosehook..hookfunc..l s €¸Q¸q¹TÀ!ºWrU)r)rë)rì)stxnclose)rrÙrÝr£rÏrÀrÉrßr‹rrÚr(rÇrEr¬rrÐr&)Úunused_successrMÚ bmchangesr”r!r"r¦rûÚphasemvr+rÌrÐrÉrÒrºs €€€rQÚhookfunczClocalrepository.transaction..txnclosehook..hookfuncZ s­ø€Ù“y�ØÐ'Ð'Ð'ä—<‘< §¡Ð)=Ô>Ü & r§z¡z°,Ñ'?×'EÑ'EÓ'GÓ H�IÛ,5Ñ(˜™j˜s CØ!Ÿ{™{×/Ñ/Ó1˜ØŸ ™ ¤I×$=Ñ$=¸dÀCÈÓ$MÔNØ!˜Ÿ ™ Ø0ñà"'ðô'×0Ñ0°Ó6óð-6ô—<‘< §¡Ð):Ô;ØŸ™Ó*×4Ñ4�BÜ$ØŸ ™  9Ñ-Ñ3Dô�Gó-4Ñ(˜™j˜s CÛ#'˜CØ#%§;¡;×#3Ñ#3Ó#5˜DÜ#& r§w¡w¨s£|Ó#4˜DØ ŸK™K¬×(>Ñ(>¸tÀSÈ#Ó(NÔOØ%˜DŸI™IØ 1ñà&+ðô#+×"4Ñ"4°TÓ":óñ $(ð-4ð�— ‘ ØñØ',ðÜ08×0BÑ0BÀ8Ó0LórUN)rÉÚ _afterlock)rËrñrMrÉrÒrºs @€€rQÚ txnclosehookz1localrepository.transaction..txnclosehookR s5ù€ð —|‘|ˆHö! ñF“9ˆDØÐ#Ð #Ð#Ø �O‰O˜HÕ %rUs txnclose-hooks -warm-cachec󀕗‰«}|€J‚|j ddditj|j«¤Žy)z#To be run if transaction is abortedNr9F)stxnabort)rr(rÇrÉ)rËrMrÒs €rQÚ txnaborthookz1localrepository.transaction..txnaborthookˆ sFø€á“9ˆDØÐ#Ð #Ð#Ø ˆD�I‰IØñ Ø#(ð Ü,4×,>Ñ,>¸s¿|¹|Ó,Ló rUs txnabort-hooksrefresh-filecachestatssbranchsdefaultcóX•—‰j«D]}|j|dd¬«Œy)NTr_)Úhardlinkr�)Úall_file_namesÚ addbackup)rºrÏÚdss €rQÚbackup_dirstatez4localrepository.transaction..backup_dirstate« s*ø€Ø×*Ñ*Ö,�Að—L‘L ¨T¸H�LÕEñ -rUsdirstate-backup)3rÝrŒrorQrrŽr*Únestr,rZr[rrÚ_dirtyÚrandomÚtimerr:Úsha1ÚdigestrÚ _writejournalr r~rvrwr¬rÇr4r1ršraÚ _journalfilesÚ add_journalrlrÏrSrÉÚ addfinalizer‚Ú addpostcloseÚ_buildcacheupdaterÚaddabortÚ_refreshfilecachestatsrPr/ÚregistersummarycallbackÚ currentwlockr7Ú setbranchÚ addvalidator)rLrßÚreportr­ÚidbaseÚhar¾ÚrpÚvfsmapÚshouldtracktagsràrãÚvfs_idrerórõrûrúrÑrÒrºrÓs ` @@@@@rQr4zlocalrepository.transactiony sxý€Ø �7‰7× Ñ ˜h¨Ô 8¸D¿G¹Gר—7‘7 �7Ó%Ð %ð �9‰9× Ñ ˜JÔ 'Ü—/‘/ÜÐ0Ó1ÜÐBÓCôð ð �=‰=× Ò ØAˆAÜ×(Ñ(¨Ó+Ð +ध ¡ £´·±³Ð=Ñ=ˆÜ ”—‘˜vÓ&×-Ñ-Ó/Ó 0ˆØ˜"‘ ˆØ � ‰ �- t°TÀˆ ÔGà ×ј4Ô Ù Ø‰Bà—‘—‘ˆBØ—‘ˆä—+‘+˜dÓ#ˆñD#ˆ àŸ'™'×,Ñ,Ø Ð/ó ˆð �8Ò ¡Ø—~‘~×.Ñ.Ó0ˆHõ @÷&> ô@ 5ô(× $Ñ $Ø Ø �I‰IØ Ø Ø Ù Ø �J‰J× !Ñ !ØØÜ(Øô  ˆð!×.Ñ.Ö0‰LˆF�DØ �N‰N˜6 4Õ (ð1ä%(¨£Yˆ� ‰ �>Ñ"Ü$'£Eˆ� ‰ �=Ñ!Ø "ˆ� ‰ �9ÑØ#%ˆ� ‰ �<Ñ à %ˆ� ‰ �HÑØ"&ˆ� ‰ �JÑØ"$§*¡*ˆ� ‰ �JÑð �‰Ð'¨¯©×)9Ñ)9Ô:õ- &ð^ �‰Ð'¨Ô6ð �‰˜¨×(?Ñ(?ÀÓ(CÔDô ð � ‰ Ð$ lÔ3ð �‰Ð1°4×3NÑ3NÔOÜ Ÿ™ R›ˆŒÜ×'Ñ'¨¨b°$Ô7ð × Ñ Ó Ð *Ø—‘ˆBØ—8‘8—?‘? 9Ô-à— ‘ ˜Z¨Ô.ô Fð �O‰OÐ.°Ô @؈ rUcó:—|jdf|jdffS)Nr¼ó journal.descr}r»s rQrzlocalrepository._journalfilesµ s$€à �Y‰Y˜ Ð #Ø �X‰X�Ð 'ð ð rUcój—|j«D��cgc]\}}|t|«f‘Œc}}Scc}}wrD)rÚundoname)rLr7rÀs rQÚ undofileszlocalrepository.undofiles» s2€Ø15×1CÑ1CÔ1EÔFÑ1E¡v s¨A�”h˜q“kÒ"Ð1EÒFÐFùÓFs”/cóX—|jjddt|«|fz«y)Nrs%d %s )r7r‚rl)rLrßs rQrzlocalrepository._writejournal¾ s"€à �‰�‰�¨ ´s¸4³yÀ$Ð6GÑ(GÕHrUcóÚ—|j«5|jjd«r†|jj t d««|j }tj|j|d|jjt¬«|j« ddd«y|jjt d«« ddd«y#1swYyxYw)Nr¼s%rolling back interrupted transaction )rçTs%no interrupted transaction available F) rr,rZrÝÚstatusrr~r4Úrollbackr rarÏ)rLrs rQÚrecoverzlocalrepository.recover s €Ø �Y‰Y�[Ø�y‰y×Ñ  Ô+Ø—‘—‘œqÐ!JÓKÔLØŸ™�Ü×$Ñ$Ø—I‘IØØØ—G‘G—L‘LÜ$0õ ð—‘Ô!Ø÷ˆ[ð—‘— ‘ œQÐHÓIÔJØ÷�[‰[ús‘BC!Â3%C!Ã!C*cóD—dx}} |j«}|j«}|jjd«r|j ||«t ||«S|j jtd«« t ||«y#t ||«wxYw)Nräs"no rollback information available r) Úwlockrr,rZÚ _rollbackÚreleaserÝr r)rLÚdryrunÚforcer rs rQrzlocalrepository.rollbackÔ sƒ€ØÐˆ�ð !Ø—J‘J“LˆEØ—9‘9“;ˆDØ�y‰y×Ñ Ô(Ø—~‘~ f¨eÓ4ô �D˜%Õ ð—‘— ‘ œQÐEÓFÔGØä �D˜%Õ øŒG�D˜%Õ ús†A BÁ$BÂBcóN‡‡‡—‰j}‰jj«} ‰jj d«j «}t |d«|dd}}}t|«dk\r|d}|dz Š|r|jrtd«‰||fz} ntd«‰|fz} tˆˆfd„|D««} |s9‰d ‰d k7r.|d k(r)tjtd«td«¬«‚|j| «|ry‰j«‰j } d} | st"} t%j&‰j(| d|j*t,| ¬«‰j/«‰jj/«| �rK‰j0j2j4Št7ˆfd„‰jj8D««sc‰jj;‰«5‰jj=‰j>«‰jjA«ddd«tC‰dj«D� cgc]} | jE«‘Œc} «}t|«dkDr|jtd«|z«n|jtd«|z«tFjHjK‰«‰jM«y#t$rtd «} d}d } Y�ŒLwxYw#1swYŒÙxYwcc} w)Ns undo.descrrrfrøs8repository tip rolled back to revision %d (undo %s: %s) s4repository tip rolled back to revision %d (undo %s) c3óJ•K—|]}‰|j«‰kD–—Œy­wrD)rÌ)riÚpÚoldtiprLs €€rQrjz,localrepository._rollback..ö s!øèø€ÐE¹W¸˜T !™WŸ[™[›]¨VÕ3¹Wùsƒ #s!rolling back unknown transaction Trôrócommits;rollback of last commit while not checked out may lose datasuse -f to forcerrrä)rçÚskip_journal_patternc3ó.•K—|] }‰|«–—Œy­wrDr )rir'Úhas_nodes €rQrjz,localrepository._rollback.. søèø€Ð>Ñ,= q‘x —{Ñ,=ùsƒs3working directory now based on revisions %d and %d s+working directory now based on revision %d )'rÝrrõr7rTrdrrlÚverboserrnr»rr$rÚ destroyingr~ÚRE_SKIP_DIRSTATE_ROLLBACKr4rr,r rarÏr¬rör,ÚallÚ_plÚchanging_parentsr~rBÚclearr¤rÌÚ mergestatemodr ÚcleanÚ destroyed)rLr#r$rÝrõr¦ÚoldlenrßÚdetailrÚ parentgonerr*r'r,r(s` @@rQr!zlocalrepository._rollbacká sÌú€à �W‰Wˆà—-‘-×'Ñ'Ó)ˆð Ø—8‘8—=‘= Ó.×9Ñ9Ó;ˆDÜ&)¨$¨q©'£l°D¸±G¸T˜6�TˆVÜ�4‹y˜AŠ~ؘa™�ؘa‘ZˆFá˜"Ÿ*š*Üð(óð˜T 6Ð*ñ+‘ô ØLóà˜T�Nñ#�ôÔE¹WÓEÓEˆJñ ˜˜d™ t¨F¡|Ò3¸À Ò8IÜ—+‘+Üð%óôÐ)Ó*ô ð ð � ‰ �#ŒÙ Øà �‰ÔØ—‘ˆØ#ÐÙÜ#<Ð Ü×ÑØ �I‰IØ Ø Ø �G‰GÜ(Ø!5õ  ð �‰ÔØ � ‰ × Ñ Ô"â à—~‘~×+Ñ+×4Ñ4ˆHÜÓ>¨D¯M©M×,=Ò,=Ó>Ô>ð—]‘]×3Ñ3°DÕ9Ø—M‘M×,Ñ,¨T¯[©[Ô9Ø—M‘M×'Ñ'Ô)÷:ô¨d°4©j×.@Ñ.@Ô.BÓCÑ.B¨˜QŸU™U�WÐ.BÑCÓDˆGÜ�7‹|˜aÒØ— ‘ Üð1óðñ õð— ‘ ÜÐEÓFÈÑPôô × $Ñ $× *Ñ *¨4Ô 0ð �‰ÔØøôò ÜÐ9Ó:ˆC؈DØ‹Jð ú÷P:Ð9üòDs%«BK7Ç>ALÉ L"Ë7LÌLÌLcó<‡—tj|«Šˆfd„}|S)zócalled during transaction to build the callback updating cache Lives on the repository to help extension who might want to augment this logic. For this purpose, the created transaction is passed to the method. có>•—‰«}|€J‚|j|«yrD)Ú updatecaches)rºrMrÒs €rQÚupdaterz3localrepository._buildcacheupdater..updaterB s$ø€Ù“9ˆDØÐ#Ð #Ð#Ø × Ñ ˜bÕ !rUru)rLÚnewtransactionr=rÒs @rQrz"localrepository._buildcacheupdater8 sø€ô—+‘+˜dÓ#ˆô "ð ˆrUcó2—|�|jjd«dk(ry|j«}|rTd}|jj |d«t j }|dk(rt j}t j }n|€t j}t j|vr‘|�|jdt|«krt|jjd«|jd «j«|jd «j«|jj!|«t j"|vr|j$j'|¬ «t j(|vr‰|j*j'|¬ «|j,j/«D]P}|j0sŒ|j2sŒ|j5|«j7«}|€Œ?|j'|¬ «ŒRt j8|vrB|j;«}|j$D]} |j=| «Œ|j?«t j@|vr(|d jC«D]} | jE«Œt jF|vr9tIjJ|j||j$jM««t jN|vr|jQ«t jR|vr|jd «jQ«t jT|vrTtVjXj[«D]2} |j| «} | j«j?| «Œ4yy) aÂwarm appropriate caches If this function is called after a transaction closed. The transaction will be available in the 'tr' argument. This can be used to selectively update caches relevant to the changes in that transaction. If 'full' is set, make sure all caches the function knows about have up-to-date data. Even the ones usually loaded more lazily. The `full` argument can take a special "post-clone" value. In this case the cache warming is made after a clone and of the slower cache might be skipped, namely the `.fnodetags` one. This argument is 5.8 specific as we plan for a cleaner way to deal with this for 5.9. NssourcerÁza`full` argument for `repo.updatecaches` is deprecated (use `caches=repository.CACHE_ALL` instead)s5.9s post-clonerèsupdating the branch cache rÜrÛ)r4rô).rÉr}rErÝÚ deprecwarnr9Ú CACHES_ALLÚCACHES_POST_CLONEÚCACHES_DEFAULTÚCACHE_BRANCHMAP_SERVEDrÏrlrœràrrLÚ write_delayedÚCACHE_CHANGELOG_CACHEr¬Ú update_cachesÚCACHE_MANIFESTLOG_CACHEr¼r1ÚwalkÚ is_revlogÚis_manifestlogÚget_revlog_instanceÚ get_revlogÚCACHE_REV_BRANCHr`Ú branchinfor‚ÚCACHE_FULL_MANIFESTrõÚmanifestÚCACHE_FILE_NODE_TAGSrKrÆr+ÚCACHE_TAGS_DEFAULTr3ÚCACHE_TAGS_SERVEDÚCACHE_BRANCHMAP_ALLr*Ú filtertableÚkeys) rLrºÚfullÚcachesrOrÚentryÚmanifestrevlogÚrbcrržÚfiltràs rQr<zlocalrepository.updatecachesI sÓ€ð ˆ>˜bŸk™kŸo™o¨iÓ8¸HÒDð à�‰Ó ˆá ð>ð ð �G‰G× Ñ ˜s FÔ +Ü×*Ñ*ˆFØ�}Ò$Ü#×5Ñ5�Ü×*Ñ*‰FØ ˆ^Ü×.Ñ.ˆFä × ,Ñ ,°Ñ 6؈z˜RŸZ™Z¨Ñ7¼#¸d»)ÒCà—‘— ‘ Ð<Ô=Ø— ‘ ˜iÓ(×2Ñ2Ô4Ø— ‘ Ð.Ó/×9Ñ9Ô;à×"Ñ"×0Ñ0°Ô6ä × +Ñ +¨vÑ 5Ø �N‰N× (Ñ (°RÐ (Ô 8ä × -Ñ -°Ñ 7Ø × Ñ × *Ñ *°rÐ *Ô :ØŸ™Ÿ™Ö*�Ø—’ØØ×+Ò+ØØ!&×!:Ñ!:¸4Ó!@×!KÑ!KÓ!M�Ø!Ñ-Ø"×0Ñ0¸RÐ0Õ@ð+ô × &Ñ &¨&Ñ 0Ø×%Ñ%Ó'ˆCØ—^”^�Ø—‘˜qÕ!ð$à �I‰IŒKä × )Ñ )¨VÑ 3à˜D‘z×)Ñ)Ö+�Ø— ‘ •ð,ô × *Ñ *¨fÑ 4ä × Ñ ˜dŸg™g t¨T¯^©^×-@Ñ-@Ó-BÔ Cä × (Ñ (¨FÑ 2à �I‰IŒKÜ × 'Ñ '¨6Ñ 1Ø �M‰M˜)Ó $× )Ñ )Ô +ä × )Ñ )¨VÑ 3ô !×,Ñ,×1Ñ1Ö3�ØŸ=™=¨Ó.�Ø×"Ñ"Ó$×*Ñ*¨8Õ4ñ4ð 4rUcóÀ—dt|«vr |jd=|jj«|j «|j j«y)NrD)r¢rFrLr3ÚinvalidatevolatilesetsrXr»s rQÚinvalidatecachesz localrepository.invalidatecaches£ sJ€Ø œ4 ›:Ñ %à— ‘ ˜lÐ+à ×Ñ× Ñ Ô"Ø ×#Ñ#Ô%Ø ×"Ñ"×(Ñ(Õ*rUcó‚—|jj«tj|«|j «yrD)rSr3r$Úclearobscachesrr»s rQr_z&localrepository.invalidatevolatilesets¬ s.€Ø ×Ñ×#Ñ#Ô%Ü×Ñ Ô%Ø ×.Ñ.Õ0rUcóŒ—|j«}d|jvr&|jjrJ‚|jd=yy)a™Invalidates the dirstate, causing the next call to dirstate to check if it was modified since the last time it was read, rereading it if it has. This is different to dirstate.invalidate() that it doesn't always rereads the dirstate. Use dirstate.invalidate() if you want to explicitly read the dirstate again (i.e. restoring it to a previous known good state).rN)rErFrÚis_changing_anyr!s rQÚinvalidatedirstatez"localrepository.invalidatedirstate± s@€ð�‰Ó ˆØ ˜Ÿ™Ñ &Ø—}‘}×4Ò4Ð 4Ð4Ø— ‘ ˜jÑ)ð 'rUcó˜—|j«}t|jj««D]J}|dk(r'|j «r|j j rŒ/|r |j|= t||«ŒL|j«|j «s|jj«yy#t$rYŒ”wxYw)a9Invalidates both store and non-store parts other than dirstate If a transaction is running, invalidation of store is omitted, because discarding in-memory changes might cause inconsistency (e.g. incomplete fncache causes unintentional failure, but redundant one doesn't). r¶N) rEÚlistr“rWr*r¬Ú_delayedr ÚAttributeErrorr`r1)rLrërErHs rQrÏzlocalrepository.invalidate¿ sµ€ð—_‘_Ó&ˆ Ü�d—o‘o×*Ñ*Ó,Ö-ˆAà�\Ò!Ø×+Ñ+Ô-Ø—N‘N×+Ò+ð áØ—O‘O AÐ&ð ܘ  AÕ&ð.ð" ×ÑÔØ×&Ñ&Ô(ð �J‰J× 'Ñ 'Õ )ð )øô"ò Ùð úsÁ3 B=Â= C ÃC cóD—|j«|j«y)zyFully invalidates both store and non-store parts, causing the subsequent operation to reread any outside changes.N)rÏrer»s rQÚ invalidateallzlocalrepository.invalidateallà s€ð �‰ÔØ ×ÑÕ!rUcóº—|jj«D]>\}}tj|«}|dk(s||jvrŒ/|j «Œ@y)z>Reload stats of cached files so that they are flagged as validrN)r“rÀr(rÅrFr¿)rLrºrHÚces rQr z&localrepository._refreshfilecachestatsç sK€ð—_‘_×*Ñ*Ö,‰EˆAˆrÜ—‘ Ó"ˆAØ�JŠ !¨4¯=©=Ñ"8ØØ �J‰J�Lñ -rUc ó —d}d}|r8|jjdd«}|jjdd«}|jjdd«} tj|j|||||||| ¬« } | S)Nróuistimeouts timeout.warnssignal-safe-lock)rãÚ acquirefnrßÚ signalsafe)rÝrërŒÚlockmodÚtrylock) rLr7ÚlocknameÚwaitrãrprßÚtimeoutÚ warntimeoutrqrVs rQÚ_lockzlocalrepository._lockð sˆ€ðˆØˆ Ù Ø—g‘g×'Ñ'¨¨zÓ:ˆGØŸ'™'×+Ñ+¨E°?ÓCˆKà—W‘W×'Ñ'¨Ð/BÓCˆ ä �O‰OØ �G‰GØ Ø Ø Ø ØØØØ!ô ˆðˆrUcó¼—|j|jfD]9}|xr|«}|sŒ|jsŒ|jj |«y|d«y)z¾add a callback to be run when the repository is fully unlocked The callback will be executed when the outermost lock is released (with wlock being higher level than 'lock').TN)rRrQÚheldÚ postreleaser~)rLrŒrwrVs rQròzlocalrepository._afterlock sM€ð —N‘N D§M¡MÓ2ˆCØ’ ™›ˆAÚ�Q—V“VØ— ‘ ×$Ñ$ XÔ.Ùð 3ñ �T�NrUc ó—|j|j«}|�|j«|S|j|jd|d|j t d«|jz¬«}tj|«|_|S)a]Lock the repository store (.hg/store) and return a weak reference to the lock. Use this before modifying the store (e.g. committing or stripping). If you are opening a transaction, get a lock as well.) If both 'lock' and 'wlock' must be acquired, ensure you always acquires 'wlock' first to avoid a dead-lock hazard.Nslocks repository %s)r7rtrurãrprß) rorQrrxr,rÏrr„rvrw)rLrurVs rQrzlocalrepository.lock s}€ð × Ñ ˜dŸm™mÓ ,ˆØ ˆ=Ø �F‰FŒH؈Hà �J‰JØ— ‘ ØØØØ—o‘oÜÐ#Ó$ t§}¡}Ñ4ð ó ˆô Ÿ ™  A›ˆŒ ؈rUc ó"‡—‰jr‰j«nd}|�|jr|j«|S|rn‰jj dd«s‰jj dd«r6‰j ‰j «�‰jjd«ˆfd„}‰j‰jd||‰jtd«‰jz«}tj|«‰_|S) a8Lock the non-store parts of the repository (everything under .hg except .hg/store) and return a weak reference to the lock. Use this before modifying files in .hg. If both 'lock' and 'wlock' must be acquired, ensure you always acquires 'wlock' first to avoid a dead-lock hazard.Nrýr>r?s"wlock" acquired after "lock"có–•—‰jjr8d}‰jj|«‰jj «nN‰jj rd}‰jj|«‰jj d«‰j«}d|jvr|jd=yy)Ns1wlock release in the middle of a changing parentssdirty dirstate on wlock releaser) rrdrÝrmrÏrýr‚rErF)rrOrLs €rQÚunlockz%localrepository.wlock..unlockH s–ø€Ø�}‰}×,Ò,ØJ�Ø—‘×!Ñ! #Ô&Ø— ‘ ×(Ñ(Õ*à—=‘=×'Ò'Ø<�CØ—G‘G×%Ñ% cÔ*Ø— ‘ ×#Ñ# DÔ)à—?‘?Ó$ˆDؘTŸ]™]Ñ*Ø—M‘M *Ñ-ð+rUswlocksworking directory of %s)rRrzrrÝrŒrorQrmrxr7rerr„rvrw)rLrurVrs` rQr zlocalrepository.wlock2 sÝø€ð!%§¢ˆD�N‰NÔ °DˆØ ˆ=˜QŸVšVØ �F‰FŒH؈Hñ Ø �G‰G× Ñ ˜x¨Ô 9Ø�w‰w×!Ñ! (¨NÔ;à× Ñ  §¡Ó/Ð;Ø—‘×!Ñ!Ð"BÔCô .ð �J‰JØ �H‰HØ Ø Ø Ø × #Ñ #Ü Ð(Ó )¨D¯M©MÑ 9ó  ˆô!Ÿ™ Q›ˆŒØˆrUcó8—|€y|«}|� |jsy|S)ú3Returns the lock if it's held, or None if it's not.N)rz)rLÚlockrefrVs rQrozlocalrepository._currentlockb s$€à ˆ?ØÙ ‹IˆØ ˆ9˜AŸFšFØØˆrUcó8—|j|j«S)z4Returns the wlock if it's held, or None if it's not.)rorRr»s rQr zlocalrepository.currentwlockk s€à× Ñ  §¡Ó0Ð0rUcó8—|j|j«S)r�)rorQr»s rQrÎzlocalrepository.currentlocko s€à× Ñ  §¡Ó/Ð/rUcó�—|j«s|j«�r%t|j|jz|j z«}|j «D]â}|jj|«}|dk(s||vs||jvrŒ6||jvr||td««|jj|«s|j«j|«r2|dz}|D]}|j!|«sŒŒ®||td««ŒÂ||jvsŒÑ||td««Œäyy)z2check for commit arguments that aren't committablerôsfile not found!r(sno match under directory!sfile not tracked!N)ÚisexactrrSÚmodifiedÚaddedÚremovedrârÚ normalizer˜Údeletedrr@r†rùÚhasdirr) rLÚwctxrrÚfailÚmatchedrÏÚdr–s rQÚcheckcommitpatternsz#localrepository.checkcommitpatternss s€à �=‰=Œ?˜eŸl™l�nܘ&Ÿ/™/¨F¯L©LÑ8¸6¿>¹>ÑIÓJˆGà—[‘[–]�Ø—M‘M×+Ñ+¨AÓ.�ؘ’9  W¡ °°T·]±]Ñ0BØØ˜Ÿ™Ñ&Ù˜œAÐ0Ó1Ô2à—9‘9—?‘? 1Ô%¨¯©«×)9Ñ)9¸!Ô)<ؘD™�AÛ%˜ØŸ=™=¨Õ+Ù!ð&ñ˜Q¤Ð">Ó ?Õ@ؘdŸm™mÒ+Ù˜œAÐ2Ó3Õ4ñ#ð-rUc 󸇇‡‡—|€i}d„}|stj«}|s||_‰j«5‰j «5‰d} t | j ««dkD} |s0| r.|j«stjtd««‚‰j||¬«} |r%| jj| j«tj‰j | | ||¬«\} } }|s‰j#| || |«t%j&‰| ||||«}t(j*j-‰«}t/j0|«|j3«rY‰j j5dd«s=‰j j7d «|j9« ddd«ddd«y| r.|j;«rtjtd ««‚|r|‰|| «|_||j<k7}‰j?|j<«}| r¶tAjB‰«}tE| «D]}}| jG|«}‰j jtd «|tjH|««z«|jK|j<||«}||d |f||<ŒtjL‰|«‰jNj «\}}tQ|«|‰jRk7xr tQ|«xsd cŠŠ ‰jUdd‰‰¬«‰jWd«5‰jY|d«Št[j\‰||g‰«|j_‰«|j9«ddd«ddd«ddd«ˆˆˆˆfd„}‰jc|«‰S#1swYŒ4xYw#|rN‰j jatd«|z«‰j jatd«|z«‚xYw#1swYŒŽxYw#1swYŒ’xYw)zöAdd a new revision to current repository. Revision information is gathered from the working directory, match can be used to filter the committed files. If editor is supplied, it is called to get a commit message. Ncó6—tjd||fz«‚)Ns%s: %s)rÚ InputError)rÏrs rQrŽz$localrepository.commit..fail� s€Ü×"Ñ" 9°°3¨xÑ#7Ó8Ð 8rUrsBcannot partially commit a merge (do not specify files or patterns))rr5)r$rosallowemptycommits(nothing to commit, clearing merge state s&cannot commit merge with missing filesscommitting subrepository %s rrUs precommitT)r9Úparent1Úparent2r)s!note: commit message saved in %s s6note: use 'hg commit --logfile %s --edit' to reuse it cóz•—‰jj‰«r‰jdt‰«‰‰¬«yy)Nr))rÐr•r–)r¬Úhasnoderr)rîÚhookp1Úhookp2r3rLs €€€€rQÚ commithookz*localrepository.commit..commithook s:ø€ð�~‰~×%Ñ% cÔ*Ø— ‘ ؤC¨£H°fÀfðõð+rU)2rÚrÛÚbadr rrlrõrr$rrr‡Úextendr5r2Ú precommitrÝr‘rÚworkingcommitctxr4r rTr!ÚcheckunresolvedÚisemptyrŒrœÚresetr‹Ú_textÚsavecommitmessager/Ú getuipathfnr£r™Ú subrelpathrÚ writestaterrrBrr4Ú commitctxrr‹Ú markcommittedr‚rò)rLÚtextr3Údaterr$ÚeditorÚextrarŽr�ÚmergerÚsubsÚ commitsubsÚnewstateÚcctxÚmsÚeditedÚmsg_pathÚuipathfnrŒr™Úsrrùrr›r™ršr3s` @@@rQrzlocalrepository.commit‰ sÁû€ð" ˆ=؈Eò 9ñÜ—O‘OÓ%ˆEáØˆEŒIð�Z‰Z�\˜4Ÿ9™9�;ؘ‘:ˆDܘŸ ™ ›Ó'¨!Ñ+ˆEá™U¨5¯<©<¬>Ü—k‘kÜð>óóðð—[‘[ u°E�[Ó:ˆFÙØ—‘×&Ñ&Ø—L‘Lôô *5×)>Ñ)>Ø—‘˜˜v u°Eô*Ñ &ˆD�*˜hñ Ø×(Ñ(¨¨u°f¸dÔCä×+Ñ+Ø�f˜d D¨$°óˆDô×)Ñ)×.Ñ.¨tÓ4ˆBÜ × %Ñ % bÔ )ð�|‰|Œ~ d§g¡g×&8Ñ&8ØÐ*ô'ð—‘— ‘ ÐJÔKØ—‘” Ø÷Q'�\ˆ\ñT˜Ÿ™œÜ—k‘k¤!Ð$MÓ"NÓOÐOáÙ# D¨$°Ó5�” ؘTŸZ™ZÑ'ˆFð ×-Ñ-¨d¯j©jÓ9ˆHñÜ"×.Ñ.¨tÓ4�Ü  Ö+�AØŸ(™( 1›+�CØ—G‘G—N‘NÜÐ:Ó;Ù"¤;×#9Ñ#9¸#Ó#>Ó?ñ@ô🙠D§J¡J°°dÓ;�BØ#+¨A¡;¨q¡>°2Ð"6�H˜Q’Kð,ô×&Ñ& t¨XÔ6à—]‘]×*Ñ*Ó,‰FˆB�Ü  ›W r¨T¯[©[Ñ'8Ò'D¼SÀ»WÒ'KȈNˆF�Fð Ø— ‘ Ø ¨°fÀfðôð×%Ñ% iÕ0ØŸ.™.¨¨tÓ4�Cä×$Ñ$ T¨B°¨8°SÔ9Ø×&Ñ& sÔ+Ø—H‘H”J÷ 1÷S'�\÷z ð �‰˜ Ô#؈ ÷;1Ð0ûð ÙØ—G‘G—M‘MÜÐ?Ó@À8ÑKôð—G‘G—M‘MÜð8óð#ñ #ôðú÷w'˜;ú�\ˆ\ús]»QÁ E2QÆ>QÇE,QÌ<&O.Í"A O"Î/O.Î7QÏ"O+ Ï'O.Ï.AQÑQÑQ Ñ QÑQcó4—tj||||¬«S)N)rÚorigctx)rr¨)rLržrr¹s rQr¨zlocalrepository.commitctx s€ä×Ñ  c°ÀÔHÐHrUcóT—dt|«vr|jj«yy)aInform the repository that nodes are about to be destroyed. Intended for use by strip and rollback, so there's a common place for anything that has to be done before destroying history. This is mostly useful for saving state that is in memory and waiting to be flushed when the current lock is released. Because a call to destroyed is imminent, the repo will be invalidated causing those changes to stay in memory (waiting for the next unlock), or vanish completely. r²N)r¢r²r‚r»s rQr.zlocalrepository.destroying s'€ð œD ›JÑ &Ø × Ñ × "Ñ "Õ $ð 'rUcó®—|jj|«|jj«|j«|j «y)zËInform the repository that nodes have been destroyed. Intended for use by strip and rollback, so there's a common place for anything that has to be done after destroying history. N)r²Ú filterunknownr‚r<rÏr»s rQr6zlocalrepository.destroyed% sD€ð ×Ñ×&Ñ& tÔ,Ø ×Ñ×ÑÔ ð ×ÑÔð �‰ÕrUcó4—||j||||||«S)z3a convenience method that calls node1.status(node2))r)rLÚnode1Únode2rÚignoredr5ÚunknownÚ listsubreposs rQrzlocalrepository.statusE s(€ð�E‰{×!Ñ!Ø �5˜' 5¨'°<ó ð rUcó:—|jj|«y)añAdd a callback to run within the wlock, at the point at which status fixups happen. On status completion, callback(wctx, status) will be called with the wlock held, unless the dirstate has changed from underneath or the wlock couldn't be grabbed. Callbacks should not capture and use a cached copy of the dirstate -- it might change in the meanwhile. Instead, they should access the dirstate via wctx.repo().dirstate. This list is emptied out after each status run -- extensions should make sure it adds to this list each time dirstate.status is called. Extensions should also make sure they don't call this for statuses that don't involve the dirstate. N)rUr~)rLÚpss rQÚaddpostdsstatuszlocalrepository.addpostdsstatusT s€ð( ×Ñ×!Ñ! "Õ%rUcó—|jS)zAUsed by workingctx to get the list of post-dirstate-status hooks.©rUr»s rQÚ postdsstatuszlocalrepository.postdsstatusj s€à×!Ñ!Ð!rUcó"—|jdd…=y)z7Used by workingctx to clear post-dirstate-status hooks.NrÇr»s rQÚclearpostdsstatusz!localrepository.clearpostdsstatusn s€à × Ñ šqÑ !rUcó—|€D|j}t|j««}|D�cgc]}|j|«‘Œc}S|jj |«}t ||jj d¬«Scc}w)NT)rÚreverse)r¬ÚreversedrÇrÐrr£rÌ)rLÚstartrûrÇrÌrs rQrzlocalrepository.headsr so€Ø ˆ=Ø—‘ˆBÜ § ¡ £ Ó.ˆHÙ,4Ó5©H S�B—G‘G˜C•L¨HÑ5Ð 5à—‘×$Ñ$ UÓ+ˆä�e §¡×!3Ñ!3¸TÔBÐBùò 6s¬BcóH—|€|dj«}|j«}|j|«sgStt |j ||¬«««}|�=t |jj|g|«d«}|D�cgc] }||vsŒ|‘Œ }}|Scc}w)aVreturn a (possibly filtered) list of heads for the given branch Heads are returned in topological order, from newest to oldest. If branch is None, use the dirstate branch. If start is not None, return only heads reachable from start. If closed is True, return heads that are marked as closed as well. N)Úclosedrø) rgrrlrgrÍÚ branchheadsrSr¬Ú nodesbetween)rLrgrÎrÐrFÚbheadsÚfbheadsÚhs rQrÑzlocalrepository.branchheads| s¥€ð ˆ>ؘ$‘Z×&Ñ&Ó(ˆFØ—>‘>Ó#ˆØ×!Ñ! &Ô)؈Iä”h˜x×3Ñ3°FÀ6Ð3ÓJÓKÓLˆØ Ð ä˜$Ÿ.™.×5Ñ5°u°g¸vÓFÀqÑIÓJˆGÙ!'Ó8¡˜A¨1°ª<’a ˆFÐ8؈ ùò9s  BÂBcó—|s|jj«g}g}|D]e}|} |jj|«}|d|jk7s|d|jk(r|j |||d|df«Œa|d}Œa|S)Nrr)r¬rrõrBr~)rLrr9r¬rFr's rQrFzlocalrepository.branches‘ s™€ÙØ—^‘^×'Ñ'Ó)Ð*ˆEØ ˆÛˆA؈AØØ—N‘N×*Ñ*¨1Ó-�Ø�Q‘4˜4Ÿ;™;Ò&¨!¨A©$°$·+±+Ò*=Ø—H‘H˜a  A a¡D¨!¨A©$Ð/Ô0ØØ�a‘D�ð ððˆrUcó"—g}|D]‡\}}|gd}}}d}||k7rd||jk7rU|jj|«d} ||k(r|j|«|dz}| }|dz }||k7r||jk7rŒU|j|«Œ‰|S)Nrrrø)rBr¬rõr~) rLrDrÚtopÚbottomr¬rVrrÏr's rQrCzlocalrepository.betweenŸ s£€Ø ˆã ‰KˆC�ؘ2˜q�!ˆqˆA؈Aà�v’+ ! t§{¡{Ò"2Ø—N‘N×*Ñ*¨1Ó-¨aÑ0�ؘ’6Ø—H‘H˜Q”KؘA™�AØ�Ø�Q‘�ð �v’+ ! t§{¡{Ó"2ð �H‰H�Q�Kð!ðˆrUcó—y)z¢Extensions can override this function if additional checks have to be performed before pushing, or call it if they override push command. Nr )rLÚpushops rQÚ checkpushzlocalrepository.checkpush² s�rUcó*—tj«S)zˆReturn util.hooks consists of a pushop with repo, remote, outgoing methods, which are called before pushing changesets. )r6Úhooksr»s rQÚprepushoutgoinghooksz$localrepository.prepushoutgoinghooks¸ s€ô �z‰z‹|ÐrUc󜇇‡‡‡‡ — ‰j«}i}|�|j|j«tj|«}‰|d<‰|d<‰|d<‰|d<‰j d ddi|¤Ž‰jjd ‰‰fz«tj‰‰‰‰‰«Š ˆˆˆˆˆ ˆfd „}‰j|«‰ S#t j$rn}‰jjtd«|z«|jr1‰jjtd«|jz«Yd}~y d}~wwxYw) Nrrr!r"r9Tspushkey-abort: %s s(%s) Fspushing key for "%s:%s" có4•—‰jd‰‰‰‰‰¬«y)Nr²)rrr!r"r3)r)rîrrr"r!r3rLs €€€€€€rQÚrunhookz(localrepository.pushkey..runhookÓ s&ø€Ø �I‰IØØ#ØØØØð õ rU)s prepushkey)r*r‹rÉr(rÇrrÚ HookAbortrÝÚ write_errrrsrœr'Úpushrò) rLrrr!r"rºrÉr5râr3s ````` @rQr'zlocalrepository.pushkey¿ s'ý€ð Ø×(Ñ(Ó*ˆB؈H؈~Ø—‘ § ¡ Ô,Ü×)Ñ)¨(Ó3ˆHØ$-ˆH�[Ñ !Ø!ˆH�U‰OØ!ˆH�U‰OØ!ˆH�U‰OØ ˆD�I‰IÑ <¨4Ð <°8Ò <ð �‰� ‰ Ð2°iÀÐ5EÑEÔFÜ�l‰l˜4 ¨C°°cÓ:ˆ÷ ñ ð �‰˜Ô ؈ øô'�‰ò Ø �G‰G× Ñ œaÐ 6Ó7¸#Ñ=Ô >Ø�xŠxØ—‘×!Ñ!¤! I£,°·±Ñ"9Ô:Üûð  úsˆA,C à E ÃA$EÅE có¾—|jdd|¬«|jjd|z«tj||«}|jd||¬«|S)Ns prelistkeysT)r9rslisting keys for "%s" slistkeys)rrY)rrÝrœr'rg)rLrrYs rQrzlocalrepository.listkeysà sQ€Ø � ‰ �.¨¸ ˆ ÔBØ �‰� ‰ Ð0°9Ñ<Ô=Ü—‘˜d IÓ.ˆØ � ‰ �+¨¸6ˆ ÔB؈ rUcóˆ—d||tj|«tj|«tj|«fzS)z+used to test argument passing over the wirerûrürþs rQrzlocalrepository.debugwireargsç rrUcóü—|jdd«} |j|«|j«|j|jt |j «dzd«S#|j«wxYw)Nslast-message.txtswbr)r7r‚r¿r‡r”rlr¸)rLrªÚfps rQr¤z!localrepository.savecommitmessageñ sa€Ø �X‰XÐ)¨5Ó 1ˆð Ø �H‰H�TŒNà �H‰HŒJØ�{‰{˜2Ÿ7™7¤3 t§y¡y£>°AÑ#5Ð#7Ð8Ó9Ð9øð �H‰H�Jús ”A)Á)A;cóš—tj|jvry|jj t j |««yrD)r9ržryrârbr(rý)rLÚcategorys rQÚregister_wanted_sidedataz(localrepository.register_wanted_sidedataù s6€Ü × ,Ñ ,°D·M±MÑ Aà Ø ×Ñ×!Ñ!¤(×"2Ñ"2°8Ó"<Õ=rUcóÒ—|tjvr#td«}tj||z«‚t j |«}||jj|g«v}|r%|s#td«}tj||z«‚|r%|s#td«}tj||z«‚|jj|i«|||f|j||<y)Nsunexpected revlog kind '%s'.s<cannot register a sidedata computer twice for category '%s'.sKcannot replace a sidedata computer that isn't registered for category '%s'.) rÚ ALL_KINDSrrrŽr(rýr]r}rX) rLÚkindrërWÚcomputerr®ÚreplacerÚalready_registereds rQÚregister_sidedata_computerz*localrepository.register_sidedata_computerÿ sç€ð ”{×,Ñ,Ñ ,ÜÐ3Ó4ˆCÜ×(Ñ(¨¨t©Ó4Ð 4Ü×#Ñ# HÓ-ˆØ%¨×)AÑ)A×)EÑ)EÀdÈBÓ)OÐOÐÙ ¡gÜØOóˆCô×(Ñ(¨¨x©Ó8Ð 8Ù Ñ-Üð&óˆCô×(Ñ(¨¨x©Ó8Ð 8Ø × Ñ ×+Ñ+¨D°"Ô5Ø48¸(ÀEÐ3Jˆ× Ñ  Ñ& xÒ0rUrDr’)FN)Fr=)FF)NFN)T)rUNNNFNN)rôNNFFFFr<) rVrWrXrYrVÚARCHIVED_PHASE_REQUIREMENTÚBOOKMARKS_IN_STORE_REQUIREMENTr�rîrÅr rÞrÝrþÚINTERNAL_PHASE_REQUIREMENTrrWrìrœrŠr‹rÙrrÜrêrÊrpÚbytesrYr7r`rDrIÚpropertyr~r¿r€rär�r”r�r¹rEràr‰rªr¨r¯rmr²r´rrr¬rƒr¼r˜rr¾rÆr#ÚFILENAMErÕr4rßrèrïròrþr¬rrrrrÚ__bool__r"r%r+rSr5rérr›rDr3rBrTr@r[r]rr`rdrfrrmrrërtrwr¦r|r~r�r„rr‡r™r r£r¦r¨r­rrµr·r*r4rrrrrr!rr<r`r_rerÏrkr rxròrr ror rÎr‘rr¨r.r6rrÅrÈrÊrrÑrFrCrÜrßr'rrr¤rìrór rUrQrÉrÉs„„ñ ð ×2Ñ2Ø×6Ñ6Ø×/Ñ/Ø×-Ñ-Ø×0Ñ0Ø×/Ñ/Ø×-Ñ-Ø×+Ñ+Ø×0Ñ0Ø×2Ñ2Ø×+Ñ+Ø×3Ñ3Ø×,Ñ,Ø×,Ñ,Ø×*Ñ*Ø×-Ñ-Ø×*Ñ*Ø×0Ñ0Ø×)Ñ)Ø×0Ñ0ð)€Nò2Ðð<ñ]5ðð ]5ð —‘ð ]5ð �z‰zð ]5ðð]5ð—*‘*ð]5ð—:‘:ó]5ò~1òfð,ñ óð òò)ò ðñKóðKð ñ óð ò$óL ò ó 5ñ$Ø Ø(ØØó ñ 2'ó ð 2'òhð ñ&óð&ñ � Ð/Ó0ñ<ó1ð<ñ� Óñ1óð1ñÓñ óð ñÓñDóðDðñóðò ò*ñ@� ×#Ñ#Ó$ñ ó%ð ñ� ×#Ñ#Ó$ñMó%ðMñ � ×#Ñ#Ó$ñMó%ðMó!ò&-ðñ óð ðñóðð<ñ;óð;ðñ0óð0òM,ò^òð€Hò#ò $ð.˜ó.ð ˜ó ñ˜Uóð2$�Uó$ó=ðñóðò,ò"! òF 5ò(ò ;ò+ò(ð ñ$óð$ò >óò ò 5ò òòIò Dòð 8�uð8¨ð8°%ó8ó1ñ  ˜Eó ð&˜ó&ñ,˜ð, H¨U¡Oð,¸uó,ò(ò4 ðñ+óð+ðñ+óð+ò)ðD˜eðD¨óDðñ àððððð ð óð2D 5ðD°ðD¸%óDò ózòx  ò GðñIóðIòó$ !ðñTóðTòlð"òW5óðW5òr+ò1ò *ó*òB"ðñóðòò< óó..ò`ò1ò0ò5ð,ðØ Ø ØØØØòCóðCðJòIóðIðñ%óð%ð"ñóððBØØØØØØó  ò&ò,"ò"óCóò* òò& ð ñóðò òBó ò:ò>ð>CôKrUrÉrÎr6cóΗtjj|«\}}|jd«sJ‚tjj ||j ddd««S)Nr¼rär)Úosrerrrgrñ)rÎr\r”s rQrrsL€Ü—‘—‘˜rÓ"�J€Dˆ$Ø �?‰?˜:Ô &Ð&Ð &Ü �7‰7�<‰<˜˜dŸl™l¨:°wÀÓBÓ CÐCrUc󢇇‡—ddlm}tj|«Š|rt ‰‰|¬«ˆˆˆfd„}|«}|j ||«}|S)Nrro©Ú createoptscó •—t‰‰‰¬«S)N)rx)r´)rxÚ localpathrÝs€€€rQÚ repo_makerzinstance..repo_maker$sø€Ü" 2 y¸'ÔBÐBrU)rŽrpr=Ú urllocalpathÚcreaterepositoryÚmay_auto_upgrade) rÝreÚcreaterxrÿrprrMrs ` ` @rQÚinstancersKú€åä×$Ñ$ TÓ*€I٠ܘ˜Y°:Õ>öCñ ‹<€DØ × #Ñ # D¨*Ó 5€DØ €KrUcó—yrÓr )res rQÚislocalr ,s€Ø rUcóV—t|xsi«}d|vr|jdd«|d<|S)z­Populate the default creation options for a repository. A dictionary of explicitly requested creation options can be passed in. Missing keys will be populated. óbackendrõsnew-repo-backend)Údictr�)rÝrÿs rQÚdefaultcreateoptsr 0s7€ô �jÒ& BÓ'€Jà˜Ñ#à!#§¡¨:Ð7JÓ!Kˆ �:Ñà ÐrUcó$—t«}|js|St||¬«}t||«D]&}|tj vsŒ|j |«Œ(|jD]&}|tj vsŒ|j |«Œ(|S)z¬clone the requirements of a local repo for a local clone The store requirements are unchanged while the working copy requirements depends on the configuration rþ)rSr+r ÚnewreporequirementsrVÚWORKING_DIR_REQUIREMENTSrb)rÝrÿÚsrcrepoÚtarget_requirementsrs rQÚclone_requirementsr?sŒ€ô ›%ÐØ × Ò ð#Ð"Ü" 2°*Ô=€JÜ   ZÖ 0ˆØ ”×8Ñ8Ò 8Ø × #Ñ # AÕ &ð1ð× !Ô !ˆØ ”O×<Ñ<Ò <Ø × #Ñ # AÕ &ð"ð ÐrUcóÈ —d|vrtjd«‚|ddk7r$tjtd«|dz«‚tj h}|j dd«r�|jtj«|j dd«rP|jtj«|j dd«r|jtj«|jdd «}|D]K}|tjvsŒtj|}|j«sŒ:|j«sŒKnCtjtd «d j!d „|D««ztd «¬«‚|dk(r|jd«n|dk7r|jd|z«t#j$|«rP|jtj&«|j dd«r|jtj(«|j dd«r|jtj*«|j dd«r>|jtj,«|jtj.«|j dd«r|jtj0«|j3dd«}|dk(r|jtj,«|j3dd«}|dk(r>|j5tj «|jtj6«|j dd«r|jtj8«|j dd«r|jtj:«|j=d«r|jtj>«|j=d«r|jd«|j dd«r|jtj@«|j dd «r|jtjB«|j dd!«r|jtjD«d"|vrÁtG|d"jH«}tjD|vr|}nDtG«} |D]+} | tjJvrŒ| |vrŒ| j| «Œ-|| z}||z}|j=d#«r |jtjL«n|jtjN«|j dd$«rd|jQdd%«} td&«} td'«} | d(k7r|jS| | z| ¬«|S|jtjT«|S))z¢Determine the set of requirements for a new local repository. Extensions can wrap this function to specify custom requirements for new repositories. r sFbackend key not present in createopts; was defaultcreateopts() called?rósCunable to determine repository requirements for storage backend: %srçsusestores usefncaches dotencodesrevlog-compressionsIcompression engines %s defined by format.revlog-compression not availableó, c3ó&K—|] }d|z–—Œ y­w)s"%s"Nr )rir§s rQrjz&newreporequirements..sèø€Ð:©k¨˜ 1�©kùs‚s;run "hg debuginstall" to list available compression enginesrrrÈsrevlog-compression-zstdszlibrÇrösuse-dirstate-v2s"exp-use-copies-side-data-changesetréræsexp-use-changelog-v2s*enable-unstable-format-and-corrupt-my-datarôsuse-internal-phasesexp-archived-phaseó narrowfilesr¿sbookmarks-in-storesuse-persistent-nodemapóuse-share-safeó sharedrepoósharedrelativesuse-dirstate-tracked-hints!use-dirstate-tracked-hint.versions)ignoring unknown tracked key version: %d s<see `hg help config.format.use-dirstate-tracked-hint-versionr)+rrŽr$rrVrìrŒrbrÜrÝrÞÚ configlistr6rÌrÍrÎrgr/Ú gdinitconfigrþrr r�rîrêr�rŸrœrörôr}rrõrr‹rSr+rrWrŠrër rÅ)rÝrÿr+rÌÚ compenginerÒÚ changelogv2Úrevlogv2Úsource_requirementsÚto_dropÚreqÚversionrrss rQrrUsþ€ð˜Ñ#Ü×$Ñ$ð /ó ð ð �*Ñ Ò,Ü�k‰kÜ ð'ó ð˜Ñ$ñ  %ó ð ô$×8Ñ8Ð9€LØ ‡}�}�Y  Ô,Ø×Ñœ×:Ñ:Ô;Ø �=‰=˜ MÔ 2Ø × Ñ œ_×@Ñ@Ô AØ�}‰}˜Y¨ Ô5Ø× Ñ ¤×!FÑ!FÔGà—-‘-  Ð+@ÓA€KÛ!ˆ Ø œ×)Ñ)Ò )Ü×%Ñ% jÑ1ˆFØ×ÑÕ! f×&9Ñ&9Õ&;Ùð "ô �k‰kÜ ð;ó ð�j‰jÑ:©kÓ:Ó:ñ  ;ô ð'óô  ð ð�WÒØ×ÑÐ3Õ4Ø �wÒ Ø×ÑÐ.°Ñ;Ô<ä×јBÔØ×Ñœ×AÑAÔBØ �=‰=˜Ð$4Ô 5Ø × Ñ œ_×EÑEÔ Fð ‡}�}�YÐ 2Ô3Ø×Ñœ×@Ñ@ÔAð ‡}�}�YÐ EÔFØ×Ñœ×@Ñ@ÔAØ×Ñœ×>Ñ>Ô?Ø ‡}�}�_ oÔ6Ø×Ñœ×AÑAÔBà—)‘)˜IÐ'>Ó?€KØÐCÒCØ×Ñœ×@Ñ@ÔAà�y‰y˜¨+Ó6€HØÐ@Ò@Ø×Ñœ_×AÑAÔBØ×Ñœ×=Ñ=Ô>à ‡}�}�YÐ 5Ô6Ø×Ñœ×CÑCÔDð ‡}�}�YÐ 5Ô6Ø×Ñœ×CÑCÔDà‡~�~�nÔ%Ø×Ñœ×;Ñ;Ô<à‡~�~�fÔØ×Ñ˜Ô à ‡}�}�YÐ 5Ô6Ø×Ñœ×GÑGÔHà ‡}�}�YÐ 9Ô:Ø×Ñœ×<Ñ<Ô=ð ‡}�}�YÐ 1Ô2Ø×Ñœ×>Ñ>Ô?ð˜ Ñ"Ü! *¨]Ñ";×"HÑ"HÓIÐä × 0Ñ 0Ð8KÑ Kð/‰Lô“eˆGÛ#�Øœ/×BÑBÑBØØÐ-Ñ-ØØ— ‘ ˜CÕ ð $ð ˜GÑ #ˆLØ Ð/Ñ /ˆLà �>‰>Ð+Ô ,Ø × Ñ œ_×HÑHÕ Ià × Ñ œ_×?Ñ?Ô @à ‡}�}�YÐ <Ô=Ø—,‘,˜yÐ*NÓOˆÜÐ=Ó>ˆÜØ Kó ˆð �aŠ<Ø �G‰G�C˜'‘M¨ˆGÔ -ð Ðð × Ñ œ_×EÑEÔ Fà ÐrUcó—t«}tj|vrìtj|vr9|j t d««|j tj«tj|vstj|vrtjt d««‚tj|vrM|jdd«rt d«}|j |«|j tj«|S)zÐChecks compatibility of repository requirements enabled and disabled. Returns a set of requirements which needs to be dropped because dependend requirements are not enabled. Also warns users about itsvignoring enabled 'format.bookmarks-in-store' config beacuse it is incompatible with disabled 'format.usestore' config s\cannot create shared repository as source was created with 'format.usestore' config disabledrçrsrignoring enabled 'format.use-share-safe' config because it is incompatible with disabled 'format.usestore' config ) rSrVrÜrõr rrbrŠrWrr$r‹rÁ)rÝr+Údroppedrs rQÚcheckrequirementscompatr&êsâ€ô ‹e€Gä×(Ñ(° Ñ<Ü × 9Ñ 9¸\Ñ IØ �G‰GÜð4óô ð �K‰Kœ×FÑFÔ Gô × .Ñ .°,Ñ >Ü×:Ñ:¸lÑJä—+‘+Üð?óóð ô × 0Ñ 0°LÑ @Ø�|‰|˜IÐ'8Ô9Üð!ó�ð —‘˜” Ø �K‰Kœ×=Ñ=Ô >à €NrUcóh—hd£}|j«D��cic] \}}||vsŒ ||“Œc}}Scc}}w)a%Filters a dict of repo creation options against options that are known. Receives a dict of repo creation options and returns a dict of those options that we don't know how to handle. This function is called as part of repository creation. If the returned dict contains any items, repository creation will not be allowed, as it means there was a request to create a repository with options not recognized by loaded code. Extensions can wrap this function to filter out creation options they know how to handle. >óshallowfilestorer¿r rró shareditemsr)rÀ)rÝrÿrrHrIs rQÚfilterknowncreateoptsr*s<€ò €Eð(×-Ñ-Ô/Ô BÑ/‘T�Q˜°1¸E²>ˆAˆq‰DÐ/Ò BÐBùÓ Bs˜ .¥.cóp—|�|�d}tj|«‚i}n t||¬«}t||«}t |t «stjd«‚|rDtj td«djt|««ztd«¬«‚t||¬«}|t||«z}tj|d d ¬ «}tj|jd ««}|j«r!tjtd «|z«‚d |vr`|d j }|j#d«r@ t$j&j)||j*«}t-j.|«}|j«s|j9«|j;d ¬«d |vr|j=d«|j=d«t>j@|v} | r'd |vr#|j=d«|jCdd«tEjF|«\} } tEjH|| «| r@d |vrô ð ô+¨2¸*ÔEˆ ØÔ/°°LÓAÑAˆ ä�j‰j˜¨$¸Ô>€Gä �J‰J�w—|‘| FÓ+Ó ,€EØ ‡|�|„~Ü�o‰oœaÐ ?Ó@À4ÑGÓHÐHà˜ Ñ"Ø  Ñ.×9Ñ9ˆ à �>‰>Ð+Ô ,ð ÜŸW™WŸ_™_¨Z¸¿¹ÓD� Ü!Ÿ]™]¨:Ó6� ð �>‰>Ô Ø×ÑÔà ‡M�M˜T€MÔ"ؘJÑ&Ø � ‰ �HÔØ ‡K�K� Ôä×1Ñ1°\ÐA€IÙ�]¨*Ñ4Ø � ‰ �HÔð � ‰ Ø ð ô ô×0Ñ0°Ó>�O€Eˆ8ä ×ј% Ô'ñ �M¨Ñ3Ü—:‘:˜eŸj™j¨Ó2ÀÔFˆÜ×јh¨Ô1ð˜ Ñ"Ø � ‰ �M :Ô.à‡~�~�nÔ%Ø—‘œF :¨nÑ#=Ó>Ó?À%ÑGˆØ � ‰ �I˜vÕ&ð&øôeœZÐ(ò ô—k‘kÜÐ7Ó8Ü#×0Ñ0°Ó3ôðûð úsÅ?K.Ë.L5Ë=3L0Ì0L5cóf—|j«Gd„d«}tj|d|«y)z9Poison a repository instance so it can no longer be used.có—eZdZd„Zd„Zy)ú,poisonrepository..poisonedrepositorycób—|dk(rtj||«Stjd«‚)Nr¿s/repo instances should not be used after unshare)r�Ú__getattribute__rrŽ)rLÚitems rQr;z=poisonrepository..poisonedrepository.__getattribute__¹s2€Ø�wŠÜ×.Ñ.¨t°TÓ:Ð:ä×(Ñ(ØBóð rUcó—yrDr r»s rQr¿z2poisonrepository..poisonedrepository.closeÁs€Ø rUN)rVrWrXr;r¿r rUrQÚpoisonedrepositoryr9¸s „ò ó rUr>rPN)r¿r�rž)rMr>s rQÚpoisonrepositoryr?®s,€ð ‡J�J„L÷ ñ ô ×Ñ�t˜[Ð*<Õ=rUrD)NN)–rªrürþÚrerËrÿrvÚ concurrentrÚtypingrÚi18nrrÐrrr r r r(r r rŽrrrrrrrrrrrrrrrrrrrrrÚr r4r!r"r#r$r%r&r'r)r*r+rVr,r-r.r/r0r1rßr2r3rKr4r5r6r7rYr8Ú interfacesr9Ú interfaceutilÚutilsr:r;r<r=Ú revlogutilsr>r¹r?rr@r^r"Úurlerrr‡Úcompiler/rSraÚ filecacherBr]rmrrrƒr‰r–Ú propertycacher˜r›r£r¬rÞÚunionrAÚ implementerÚipeercommandexecutorr´Ú ipeercommandsr¹r×Úipeerlegacycommandsr?rËr`rfr÷r´r‘r’r•r–r—r™r›rír#Úilocalrepositoryfilestorager%r1r7Úilocalrepositorymainr¡rÉrrÚboolr r rrr&r*rr?r rUrQÚrTs§ðóÛ Û Û Û Û Ûåõõ÷õ÷÷,÷,÷,÷,÷,÷,÷,÷,÷,÷,÷,ñ,÷\÷ ó÷ñð �/‰/€Ø �‰€Ø �‰€à&˜BŸJ™JØ2óÐñ‹u€ ôI�W×&Ñ&ôIô$ #�Nô #ô  �ô  ô �Zô ô �zô ô$˜.ô$ò* ô(˜d×0Ñ0ô(ô2˜D×.Ñ.ô2ò+ò ò€ ð× Ñ Ð3Ð4Ó 5€ ð€×ј:×:Ñ:Ó;÷*ð*ó<ð*ðZ€×ј:×3Ñ3Ó4ôU*� —‘óU*ó5ðU*ðt€×ј:×9Ñ9Ó:ôP�ióPó;ðPñN“EÐòò2 /ñ{ eó{ðF '+ñ -à �Z‰Zð-ð �:‰:ð-𠘟 ™ Ñ#ó -ò`Kò6ò0 ò> ò4 .ò$òNiòXð €×ј:×AÒAÓB÷ Eð EóCð Eð€×ј:×AÒAÓB÷  ð  óCð  ò !ð"×$Ò$Ñ&6Ð7Ø×+Ò+Ñ-DÐEð€ð €×ј:×:Ò:Ó;÷~#Kð~#Kó<ð~#KðBHD�ðD˜5óDñ �uó ð �%ð˜Dóó òò,Ròj(òVCñ6{'˜uó{'ó|>rU