Ë ÷U¬ö÷ãó—dZddlZddlZddlmZddlmZmZmZm Z m Z m Z ddl m Z iZe je«ZdZej"d«ZGd„d «Zd „Zd d d dddœZdeddfd„Zd„Zedd¬«d„«Zy)a'extend schemes with shortcuts to repository swarms This extension allows you to specify shortcuts for parent URLs with a lot of repositories to act like a scheme, for example:: [schemes] py = http://code.python.org/hg/ After that you can use it like:: hg clone py://trunk/ Additionally there is support for some more complex schemas, for example used by Google Code:: [schemes] gcode = http://{1}.googlecode.com/hg/ The syntax is taken from Mercurial templates, and you have unlimited number of variables, starting with ``{1}`` and continuing with ``{2}``, ``{3}`` and so on. This variables will receive parts of URL supplied, split by ``/``. Anything not specified as ``{part}`` will be just appended to an URL. For convenience, the extension adds these schemes by default:: [schemes] py = http://hg.python.org/ bb = https://bitbucket.org/ bb+ssh = ssh://hg@bitbucket.org/ gcode = https://{1}.googlecode.com/hg/ kiln = https://{1}.kilnhg.com/Repo/ You can override a predefined scheme by defining a new scheme with the same name. éN)Ú_)ÚerrorÚ extensionsÚhgÚpycompatÚ registrarÚ templater)Úurlutilsships-with-hg-cores{(\d+)\}có,—eZdZd„Zd„Zd„Zdd„Zd„Zy)ÚShortRepositorycóÒ—||_||_||_ tt t t j|j«««|_y#t$r d|_YywxYw)Nr) Úschemer ÚurlÚmaxÚmapÚintÚ_partreÚfindallÚpartsÚ ValueError)Úselfrrr s ú1usr/lib/python3.12/site-packages/hgext/schemes.pyÚ__init__zShortRepository.__init__GsR€ØˆŒ Ø"ˆŒØˆŒð ÜœS¤¤g§o¡o°d·h±hÓ&?Ó@ÓAˆD�JøÜò ؈DŽJð ús—;AÁA&Á%A&có —d|jzS)Ns)r)rs rÚ__repr__zShortRepository.__repr__Ps€Ø'¨$¯+©+Ñ5Ð5ócóö—|j|j«}|j|¬«}tjj |j j«}|�|j||g|¢­i|¤ŽSy)N)Únew_raw_location) ÚresolveÚrawlocÚcopyrÚ peer_schemesÚgetrrÚ make_peer)rÚuiÚpathÚargsÚkwargsÚnew_urlÚclss rr$zShortRepository.make_peerSse€Ø—,‘,˜tŸ{™{Ó+ˆØ�y‰y¨'ˆyÓ2ˆÜ�o‰o×!Ñ! $§(¡(§/¡/Ó2ˆØ ˆ?Ø �3—=‘=  TÐ;¨DÒ;°FÑ;Ð ;ØrNcóR—|j|«}tj|«}|jxsd}|tj vrtj |}n6|tj vrtj |}ntj}|j|||||¬«S)Nsfile)ÚintentsÚ createopts) rr rrrr"Ú repo_schemesÚ LocalFactoryÚinstance) rr%rÚcreater,r-Úurr*s rr0zShortRepository.instance[sŠ€Ø�l‰l˜3ÓˆÜ �K‰K˜Ó ˆØ—‘Ò$˜WˆØ ”R—_‘_Ñ $Ü—/‘/ &Ñ)‰CØ ”r—‘Ñ &Ü—/‘/ &Ñ)‰Cä—/‘/ˆCØ�|‰|Ø ��V W¸ðó ð rcóЗ |jdd«d}|jd|j «}t |«|j kDr |d}|dd}nd}t|«D��cic]\}}d|dzz|“Œ}}}dj|jj|j|««|zS#t$r"tjt d«|z«‚wxYwcc}}w)Ns://ésno '://' in scheme url '%s'ó/éÿÿÿÿrs%d) ÚsplitÚ IndexErrorrÚAbortrrÚlenÚ enumerateÚjoinr Úprocessr)rrrÚtailÚiÚvÚcontexts rrzShortRepository.resolveisã€ð GØ—)‘)˜F AÓ& qÑ)ˆCð— ‘ ˜$ § ¡ Ó+ˆÜ ˆu‹:˜Ÿ ™ Ò "ؘ‘9ˆDؘ#˜2�J‰EàˆDÜ2;¸EÔ2BÔCÑ2B©$¨!¨Q�5˜A ™E‘? AÑ%Ð2BˆÑCØ�x‰x˜Ÿ™×.Ñ.¨t¯x©x¸ÓAÓBÀTÑIÐIøôò GÜ—+‘+œaÐ >Ó?À#ÑEÓFÐ Fð GüóDs‚B4Á&C"Â4+C)NN)Ú__name__Ú __module__Ú __qualname__rrr$r0r©rrr r Fs„òò6òó  ó Jrr cóX—|r!tD]}|j|dz«sŒy||«S)Nó:F)ÚschemesÚ startswith)Úorigr&rs rÚhasdriveletterrKys.€Ù ߈FØ�‰˜v¨™}Õ-Ùðñ �‹:Ðrshttp://hg.python.org/shttps://bitbucket.org/sssh://hg@bitbucket.org/shttps://{1}.googlecode.com/hg/shttps://{1}.kilnhg.com/Repo/)spysbbsbb+sshsgcodeskilnrÚreturncó—tjrxt|«dk(ri|j«rXtj j d|z«r5td«}|||j«fz}tj|«‚yyyy)z6check if a scheme conflict with a Windows drive letterr4s%s:\s5custom scheme %s:// conflicts with drive letter %s:\ N) rÚ iswindowsr:ÚisalphaÚosr&ÚexistsrÚupperrr9)rÚmsgs rÚ_check_drive_letterrTŠs{€ô ×ÒÜ �‹K˜1Ò Ø �N‰NÔ Ü �G‰G�N‰N˜8 fÑ,Ô -äÐJÓKˆØ �˜Ÿ ™ ›Ð'Ñ'ˆÜ�k‰k˜#ÓÐð .ð ð ð rcó —tjt|jd«««t j tj «}tj«D]~\}}t|«tj|«j}|tjvrt|||«tj|<Œat|||«tj|<Œ€t!j"tdt$«y)Nsschemesshasdriveletter)rHÚupdateÚdictÚ configitemsr ÚengineÚparseÚitemsrTr rrrr"r r.rÚ wrapfunctionrK)r%ÚtrrÚ url_schemes rÚextsetupr_—s¯€Ü ‡N�N”4˜Ÿ™ zÓ2Ó3Ô4Ü×ÑœŸ™Ó)€AÜ—}‘}–‰ ˆ�ܘFÔ#Ü—[‘[ Ó%×,Ñ,ˆ Ø œŸ™Ñ (Ü&5°c¸6À1Ó&EŒB�O‰O˜FÒ #ä&5°c¸6À1Ó&EŒB�O‰O˜FÒ #ð 'ô×ÑœGÐ%6¼ÕGrsdebugexpandschemeT)Únorepoc ó:—tj|«j}|tjvrtj|}ntj j |«}|�!t|t«r|j|«}|j|dz«y)z3given a repo path, provide the scheme-expanded pathNó ) r rrrr"r.r#Ú isinstancer rÚwrite)r%rÚoptsrr*s rÚ expandschemerf¥sr€ô�[‰[˜Ó × $Ñ $€FØ ”—‘Ñ Ü�o‰o˜fÑ%‰ä�o‰o×!Ñ! &Ó)ˆØ €œ: c¬?Ô;Ø�k‰k˜#ӈ؇H�HˆS�5‰[Õr)Ú__doc__rPÚreÚmercurial.i18nrÚ mercurialrrrrrr Úmercurial.utilsr ÚcmdtableÚcommandÚ testedwithÚcompilerr rKrHÚbytesrTr_rfrErrÚrqs´ðñ #óJ Û å÷÷õð €Ø ˆ)× Ñ ˜HÓ %€ð #€ à ˆ"�*‰*�\Ó "€÷0Jñ0Jòfð $Ø $Ø)Ø/Ø ,ñ  €ð  ð ¨$ó ò Hñ Ð  dÔ+ñ ó,ñ r