Ë i‚ý¾‘0Áã óÐ —ddlZddlZddlZddlZddlZddlmZmZm Z m Z m Z m Z ddl mZddlmZmZmZddlmZmZmZddlmZddlmZmZmZmZmZm Z m!Z!m"Z"m#Z$m%Z&m'Z(m)Z)m*Z*m+Z+m,Z,m-Z-mZm.Z.m/Z/m0Z0m1Z1m2Z3m4Z4m5Z5m6Z6m7Z7m8Z9dd l:m;Z;mZ?ej€rdd lmAZBe7j†ZCd d ded«fgZDddded«fgZEddded«ed«fddded«ed«fddded«fgZFddged«ed«fddged «ed«fgZGd!d"ded#«ed$«fd%d&ded'«ed(«fgZHd)d*ded+«ed,«fd-d.ded/«ed0«fgZId1d2ded3«fd4d5ded6«fgZJd7d8ded9«ed:«fgZKdd;ded<«ed=«fd7d8ded9«ed:«fgZLd>d?ded@«fdAdBdedC«fd%dDdedE«edF«fdGdHdedI«fddJdedK«fdLdMdedN«fgeLzZMdOdPdedQ«fdAdBdedR«fddSdedT«fddUdedV«fgZNdWdXdedY«fdZd[ded\«fd]d^ded_«fd`dadedb«fgZOddcdedd«fd>dededf«fddgdedh«fgeOzd4didedj«edF«fddJdedK«fddkdedl«edm«fgzZPdndodedp«edq«fgZQdrdsdedt«edu«fgZRdvdwdedx«fgZSdydzd{ed|«fd!d}d{ed~«fddded€«fgZTd�ZUd‚e eefdƒed„e efd…„ZVd‚e eefd†ed‡e ed„dfdˆ„ZWd‰dŠd‚e eXefd„eYfd‹„ZZd‚e eXefd„dfdŒ„Z[d�„Z\dŽ„Z]d�„Z^d�„Z_d‘„Z`dÜd’„ZadÜd“„Zbd”„Zcd•„ZdGd–„d—«Zed˜„Zfd™„ZgejÐd𬛫Gdœ„d�««Zidž„ZjdÝdŸ„ZkdÞd „Zld¡„Zmd¢„Zndßd£„Zod‰dŠd‚e epefd„e epfd¤„Zqd¥„Zr dàd¦„Zsd§„Ztd¨„ZudÜd©„Zvdádª„Zwdâd«„Zxd¬„Zyd­„ZzGd®„d¯«Z{dãd°„Z|dÝd±„Z}d²„Z~dÝd‚e epeffd³„ZgZgZ€iZ�iZ‚d´„ZƒgZ„iZ…dµ„Z†d¶„Z‡d·„Zˆd¸„Z‰ däd¹„ZŠdådº„Z‹dÜd»„ZŒd¼„Z�d½„ZŽd¾„Z�d¿„Z�dÀ„Z‘ dÜdÁ„Z’d„Z“dÄZ”dÄ„Z•GdÅ„dÆ«Z–dÇ„Z—dÈ„Z˜d‚e eXeffdÉ„Z™dædÊ„Zš dçdË„Z›dÌ„ZœdÍ„Z�d΄ZždèdÏ„ZŸdЄZ dÑ„Z¡ dédÒ„Z¢e7�jF«Z¤e7�jF«Z¥e7�jF«Z¦dêdÓ„Z§dÔ„Z¨dÕ„Z©dÖ„ZªdׄZ«dØ„Z¬dÙ„Z­dÚ„Z®dÛ„Z¯y)ëéN)ÚAnyÚAnyStrÚDictÚIterableÚOptionalÚcasté)Ú_)ÚhexÚnullrevÚshort)ÚgetattrÚopenÚsetattr)Úattr)Ú bookmarksÚ changelogÚcopiesÚcrecordÚencodingÚerrorÚ formatterÚ logcmdutilÚmatchÚmergeÚ mergestateÚ mergeutilÚobsoleteÚpatchÚpathutilÚphasesÚpycompatÚrepairÚrevlogÚ rewriteutilÚscmutilÚstateÚ subrepoutilÚ templatekwÚ templaterÚutilÚvfs)ÚdateutilÚ stringutil)Ú constants)Úuiónsdry-runs)do not perform actions, just print outputósconfirmsask before applying actionsóessshsspecify ssh command to usesCMDs remotecmds,specify hg command to run on the remote sidesinsecures>do not verify server certificate (ignoring web.cacerts config)óIsincludes)include names matching the given patternssPATTERNóXsexcludes)exclude names matching the given patternsómómessagesuse text as commit messagesTEXTólólogfilesread commit message from filesFILEódódates(record the specified date as commit datesDATEóuóusers&record the specified user as committersUSERóDs currentdates&record the current date as commit dateóUs currentusers$record the current user as committeróTstemplatesdisplay with templatesTEMPLATEsstyles,display using template map file (DEPRECATED)sSTYLEópspatchs show patchógsgitsuse git extended diff formatslimits!limit number of changes displayedsNUMóMs no-mergessdo not show mergessstats(output diffstat-style summary of changesóGsgraphsshow the revision DAGóastextstreat all files as texts0use git extended diff format (DEFAULT: diff.git)sbinarys+generate binary diffs in git mode (default)snodatessomit dates from diff headersówsignore-all-spaces'ignore white space when comparing linesóbsignore-space-changes+ignore changes in the amount of white spaceóBsignore-blank-liness(ignore changes whose lines are all blankóZsignore-space-at-eols#ignore changes in whitespace at EOLsnoprefixs&omit a/ and b/ prefixes from filenamess show-functions>show which function each change is in (DEFAULT: diff.showfunc)sreverses&produce a diff that undoes the changessunifieds"number of lines of context to showsroots&produce diffs relative to subdirectorysDIRótstoolsspecify merge toolsTOOLósó similaritys-guess renamed files by similarity (0<=s<=100)s SIMILARITYóSósubrepossrecurse into subrepositoriesócó changelogFsopen changelogómanifests open manifestódirsopen directory manifests:^HG: ------------------------ >8 ------------------------$ÚoptsÚargsÚreturncó—dtdtfd„}d}|D]G}|j|«sŒ|r/tjt d«||«||«fz«‚|}ŒI|S)z�abort if more than one of the arguments are in opts Returns the unique argument or None if none of them were specified. ÚnamerUcóL—tj|«jdd«S)Nó_ó-)r"ÚsysbytesÚreplace©rWs ú5usr/lib/python3.12/site-packages/mercurial/cmdutil.pyÚ to_displayz)check_at_most_one_arg..to_displays €Ü× Ñ  Ó&×.Ñ.¨t°TÓ:Ð:r2Ns!cannot specify both --%s and --%s)rÚbytesÚgetrÚ InputErrorr )rSrTr_ÚpreviousÚxs r^Úcheck_at_most_one_argrest€ð;œð;¤Eó;ð€HÛ ˆØ �8‰8�A�;ÙÜ×&Ñ&ÜÐ:Ó;Ù! (Ó+©Z¸«]Ð;ñ<óðð‰Hðð €Or2ÚfirstÚotherscó,—|D]}t|||«Œy)zÐabort if the first argument is given along with any of the others Unlike check_at_most_one_arg(), `others` are not mutually exclusive among themselves, and they're passed as a single collection. N)re)rSrfrgÚothers r^Úcheck_incompatible_argumentsrj-s€óˆÜ˜d E¨5Õ1ñr2r0zuimod.uicó~—t|dd«t|dd«d}|jd«rdtj«z|d<nP|jd«s?|j dd«r-|jd«€dtj«z|d<d }|jd«r|j «|d<|S) z©modify commit options dict to handle related options The return value indicates that ``rewrite.update-timestamp`` is the reason the ``date`` option is set. ÚdateÚ currentdateÚuserÚ currentuserFs%d %dórewritesupdate-timestampT)rerar-ÚmakedateÚ configboolÚusername)r0rSÚ datemaydiffers r^Úresolve_commit_optionsru;s«€ô ˜$ ¨ Ô6ܘ$ ¨ Ô6à€Mà ‡x�x� ÔØ¤(×"3Ñ"3Ó"5Ñ5ˆˆVŠ à �H‰H�VÔ Ø �M‰M˜*Ð&9Ô :Ø �H‰H�]Ó #Ð +à¤(×"3Ñ"3Ó"5Ñ5ˆˆV‰ ؈ à ‡x�x� ÔØ—{‘{“}ˆˆV‰ à Ðr2cóÈ—|jd«}|syt|«dkDrtjt d««‚d|vrtjt d««‚y)z!make sure note is of valid formatÚnoteNéÿs*cannot store a note of more than 255 bytesó snote cannot contain a newline)raÚlenrrbr )rSrws r^Úcheck_note_sizer{Vs]€ð �8‰8�FÓ €DÙ Øä ˆ4ƒy�3‚Ü×ÑœqÐ!NÓOÓPÐPØ ��}Ü×ÑœqÐ!AÓBÓCÐCðr2cóZ—tjtjf}t ||«S©N)Ú crecordmodÚuihunkrÚ recordhunkÚ isinstance)rdÚ hunkclassess r^Úishunkrƒcs%€Ü×$Ñ$¤e×&6Ñ&6Ð7€KÜ �a˜Ó %Ð%r2cóZ—tjtjf}t ||«Sr})r~ÚuiheaderrÚheaderr�)rdÚ headerclassess r^Úisheaderrˆhs#€Ü×(Ñ(¬%¯,©,Ð7€MÜ �a˜Ó 'Ð'r2có,—t«}t«}|D]x}t|«sŒ|j«sŒ |j|j ««|j t|j ««|j «hz «Œz||fSr})ÚsetrˆÚ isnewfileÚaddÚfilenameÚupdateÚfiles)ÚchunksÚnewlyaddedandmodifiedfilesÚ alsorestoreÚchunks r^Únewandmodifiedr”msu€Ü!$£ÐÜ“%€KÛˆÜ �E�?˜uŸ™Õ0Ø &× *Ñ *¨5¯>©>Ó+;Ô <Ø × Ñ œs 5§;¡;£=Ó1°U·^±^Ó5EÐ4FÑFÕ Gðð & {Ð 2Ð2r2cóî—|jd«}t|«}g}|D]@}d|vsŒ|jdd«}||vsŒ|j|«|j |«ŒB|j |«|S)Nó|rZr2)ÚsplitrŠr\rŒÚappendÚextend)ÚcmdÚ base_aliasesÚ all_aliasesÚ extra_aliasesÚaliasÚ folded_aliass r^Ú parsealiasesr wsw€Ø—9‘9˜T“?€LÜ�lÓ#€KØ€MÛˆØ �5Š=Ø Ÿ=™=¨¨sÓ3ˆLØ ;Ò.Ø—‘  Ô-Ø×$Ñ$ \Õ2ð ð ×ј Ô&Ø Ðr2cóN‡‡—d„Š|jŠˆˆfd„}t|d|«‰S)Nc󄇗|jdd«}tjˆfd„«D]\}}||||z¬«Œy)NÚlabelr2có•—‰Sr}©)rTs€r^Úz8setupwrapcolorwrite..wrapwrite..‰sø€±r2©r£)ÚpoprÚ difflabel)ÚorigrTÚkwr£r“Úls ` r^Ú wrapwritez&setupwrapcolorwrite..wrapwrite‡s8ø€Ø—‘�w Ó$ˆÜŸ™« Ö5‰HˆE�1Ù �˜e a™iÖ (ñ6r2có•—‰‰g|¢­i|¤ŽSr}r¥)rTÚkwargsÚoldwriter­s €€r^Úwrapz!setupwrapcolorwrite..wrapŽsø€Ù˜Ð3 DÒ3¨FÑ3Ð3r2Úwrite)r²r)r0r±r°r­s @@r^Úsetupwrapcolorwriter³…s+ù€ò)ð �x‰x€Hõ4ô ˆB�˜ÔØ €Or2cót— |rO|r%tj|tj«}ntj}tj||||«S tj||||«S#tj $r8}|j d|z«|j td««Yd}~Œ^d}~wwxYw)Nó%s sfalling back to text mode ) r~Ú testdecoratorÚtestchunkselectorÚ chunkselectorÚ filterpatchÚ fallbackerrorÚwarnr r)r0Ú originalhunksÚ usecursesÚtestfilerÚ operationÚrecordfnÚes r^Ú filterchunksr•s¬€ð3Ù ÙÜ%×3Ñ3Øœj×:Ñ:ó‘ô&×3Ñ3�ä×)Ñ)Ø�M 8¨Yóð ð ô × Ñ ˜R °°yÓ AÐAøô × #Ñ #ò3Ø �‰�˜!‘ ÔØ �‰”Ð0Ó1×2Ñ2ûð3ús‚AA,Á,B7Á?.B2Â2B7có¼—tj|«}|jdd«}t|«} t ||||||«\}}||_||fS#||_wxYw)aPrompts the user to filter the originalhunks and return a list of selected hunks. *operation* is used for to build ui messages to indicate the user what kind of filtering they are doing: reverting, committing, shelving, etc. (see patch.filterpatch). ó experimentals crecordtest)r~Ú checkcursesÚconfigr³rÂr²) r0r¼rr¿r½r¾r°Ú newchunksÚnewoptss r^Ú recordfilterrÉ©sn€ô×&Ñ& rÓ*€IØ�y‰y˜¨.Ó9€HÜ" 2Ó&€HðÜ)Ø � ˜y¨(°E¸9ó ш �7ðˆŒØ �gÐ Ðøðˆ�ús ´AÁ Ac ó—|j«€J‚|jd«s t|d¬«|d} t| j ««dkD} | rt j td««‚d„} |jd«} | stj|| «}|j|¬ «} d di}|jj|d «5tjtj| j «tj| j"«tj| j$«tj| j&«tj| j(«tj| j*«tj| j,««}t/j0|j| ||d¬ «\}}}|D];}||vsŒ| j3|«j5d«}t j6|«‚ ddd«| s|j9| || | «t;j<||dd d¬«}d|_d|_ d|_!t;jD|| |¬«}t;jF|«}tjH|d|«} ||||«\}}|jQ|«tS|«\}}tU«}|D]6}tW|«sŒ|jQtU|jY«««Œ8| j | j"z| j$z}|D� cgc] } | |vsŒ| ‘Œ }!} |!s|jtd««ytU| j «}"|r|}#n|!D� cgc] } | |"vs| |vr| ‘Œ}#} i}$|#r1|jZj]d«}% t_j`|%« |#D]“} tejft^jhjk| «dz%¬«\}&}'t_jl|&«|jod| |'fz«tqjr|ju| «|'d¬«|'|$| <Œ•tw«}(|D](})|)jy«}*|*|$vsŒ|)j{|(«Œ*|(j}«}+|(jd«|jdd«r„t€j‚t€j„z|(j‡«z},|j‰|,dd|jh¬«}-|(j‹d«|(j{|-«|(jd«|D�)cgc]&})t_jŒ|ju|)««‘Œ(c})|$rJtjŽ|tU|$j‘««|z«}.t“j”|d|.¬«|+rK |jod «|jo|(j—««t;j˜|||(dd¬!«~(|!D�/cgc]}/|ju|/«‘Œ}!}/|||g|!¢­itejœ|«¤Ž |jž}0|$j¡«D]¡\}1}'|jod"|'|1fz«|0j£|1«j¤r/|0j§|«5|0j©|1ddd¬#«ddd«tqjr|'|ju|1«d¬«t_jŒ|'«Œ£|#rt_jª%«SS#1swY�Œ.xYw#t jJ$r&}t j td«|z«‚d}~wt jL$r&}t jNtd«|z«‚d}~wwxYwcc} wcc} w#tb$rY�ŒwxYwcc})w#t jJ$r-}t j tejš|««‚d}~wt jL$r-}t jNtejš|««‚d}~wwxYwcc}/w#1swY�Œ†xYw#t¬$rYSwxYw# |jž}0|$j¡«D]®\}1}'|jod"|'|1fz«|0j£|1«j¤r<|0j§|«5|0j©|1ddd¬#«ddd«n #1swYnxYwtqjr|'|ju|1«d¬«t_jŒ|'«Œ°|#rt_jª%«ww#t¬$rYwwxYwxYw)$aThis is generic record driver. Its job is to interactively filter local changes, and accordingly prepare working directory into a state in which the job can be delegated to a non-interactive commit command such as 'commit' or 'qrefresh'. After the actual job is done by non-interactive command, the working directory is restored to its original state. In the end we'll record interesting changes, and everything else will be left in place, so the user can continue working. Nsinteractive-unshelveT)Úcommitr s9cannot partially commit a merge (use "hg commit" instead)có6—tjd||fz«‚)Ns%s: %s)rrb)ÚfÚmsgs r^Úfailz_record..failÞs€Ü×јy¨A¨s¨8Ñ3Ó4Ð4r2óforce©r)óuiscommitsubrepossrecord)Úforceócommandsscommit.interactive.)rSÚ whitespaceÚsectionÚ configprefix)ÚchangesrSóerror parsing patch: %sóerror applying patch: %ssno changes to record rsrecord-backupsó.)ÚprefixÚdirsbackup %r as %r ©ÚcopystatsreviewFr2sdiff)ÚactionÚrepopath)Úmatchersapplying patch ©Úeolmodesrestoring %r to %r ©Ú p1_trackedÚ wc_trackedÚpossibly_dirty)WÚ currentwlockraÚcheckunfinishedrzÚparentsrrbr ÚmatchmodÚbadmatchÚstatusr0Úconfigoverrider&ÚcopymodÚcopyÚmodifiedÚaddedÚremovedÚdeletedÚunknownÚignoredÚcleanr(Ú precommitÚsubÚ dirtyreasonÚAbortÚcheckcommitpatternsrÚdifffeatureoptsÚnodatesÚgitÚshowfuncÚdiffÚ parsepatchrÚPatchParseErrorÚPatchApplicationErrorÚ StateErrorrŽr”rŠrˆr�r,ÚjoinÚosÚmkdirÚFileExistsErrorr"ÚmkstempÚpathÚbasenameÚcloseÚdebugr+ÚcopyfileÚwjoinÚstringior�r²ÚtellÚseekr~Ú diffhelptextÚ patchhelptextÚreadÚeditÚtruncateÚunlinkÚ matchfilesÚkeysÚmergemodÚ revert_toÚgetvalueÚ internalpatchÚbytestrÚ strkwargsÚdirstateÚitemsÚ get_entryÚ maybe_cleanÚchanging_parentsÚ update_fileÚrmdirÚOSError)2r0ÚrepoÚmessagerrSÚ commitfuncÚ backupallÚfilterfnÚpatsÚwctxrrÏrÓrîÚ overridesÚ tmpstatusÚsubsÚ commitsubsÚnewstateÚsrûÚdiffoptsÚ originaldiffÚoriginal_headersr�rÈÚerrr‘r’Ú contendersÚhÚchangedrÍÚnewfilesròÚtobackupÚbackupsÚ backupdirÚfdÚtmpnameÚfpÚcÚfnameÚdopatchÚ patchtextÚ reviewedpatchÚmÚnfr#Úrealnames2 r^Ú_recordrN¼s*€ð0 × Ñ Ó Ð *Ð*Ð *Ø �8‰8Ð+Ô ,ܘ TÕ*Ø �‰:€DÜ �— ‘ “Ó  !Ñ #€EÙ Ü×ÑÜ ÐNÓ Oó ð ò5ð �H‰H�XÓ €EÙ Ü×!Ñ! %¨Ó.ˆà �[‰[˜uˆ[Ó %€Fà+¨TÐ2€Ià �‰× Ñ   ¨9Õ 5ä—N‘NÜ �L‰L˜Ÿ™Ó )Ü �L‰L˜Ÿ™Ó &Ü �L‰L˜Ÿ™Ó (Ü �L‰L˜Ÿ™Ó (Ü �L‰L˜Ÿ™Ó (Ü �L‰L˜Ÿ™Ó (Ü �L‰L˜Ÿ™Ó &ó ˆ ô&1×%:Ñ%:Ø �G‰G�T˜9 e°4ô& Ñ"ˆˆj˜(óˆAØ�JŠØ"Ÿh™h q›k×5Ñ5°dÓ;� Ü—k‘k +Ó.Ð.ñ÷! 6ñ* Ø × Ñ   u¨f°dÔ;Ü×$Ñ$Ø Ø ØØØ+ô €Hð€HÔØ€H„LØ€HÔÜ—:‘:˜d¨F¸ÔB€LÜ×'Ñ'¨ Ó5ÐÜ �M‰M˜$˜t™* dÓ +€EðEÙ" 2Ð'7¸Ó?‰ˆ�ð  ‡K�K�Ôô/=¸VÓ.DÑ+Р Ü“€JÛ ˆÜ �A�;Ø × Ñ œc !§'¡'£)›nÕ -ðð�o‰o § ¡ Ñ,¨v¯~©~Ñ=€GÙ"Ó6™7�a a¨:¢o’˜7€HÐ6Ù Ø � ‰ ”!Ð-Ó.Ô/Øä�6—?‘?Ó#€Hñ؉ñó á�Ø�H‰} Ð%?Ñ ?ò Øð ð ð €GÙØ—H‘H—M‘MÐ"3Ó4ˆ ð Ü �H‰H�YÔ ð[ãˆAÜ"×*Ñ*Ü—w‘w×'Ñ'¨Ó*¨TÑ1°yô‰KˆB�ô �H‰H�RŒLØ �H‰HÐ)¨Q°¨LÑ8Ô 9Ü �M‰M˜$Ÿ*™* Q›-¨¸4Õ @Ø ˆG�AŠJðô‹ZˆÛˆAØ—J‘J“LˆEØ˜ÒØ—‘˜• ðð—'‘'“)ˆØ �‰�Œ ð �8‰8�I˜uÔ %ä×'Ñ'¬*×*BÑ*BÑBÀRÇWÁWÃYÑNð ðŸG™Gؘ3 w¸¿¹ð$óˆMð �K‰K˜ŒNØ �H‰H�]Ô #Ø �G‰G�AŒJá+EÓFÑ+E aŒ�‰�4—:‘:˜a“=Õ !Ð+EÒFá Ü×"Ñ" 4¬¨W¯\©\«^Ó)<¸{Ñ)JÓKˆAÜ × Ñ ˜t D™z°1Õ 5ñ ð >Ø—‘Ð,Ô-Ø—‘˜Ÿ™›Ô'Ü×#Ñ# B¨¨b°!¸TÕBð ñ.6Ó6©X r�D—J‘J˜r•N¨XˆÐ6Ù˜"˜dÐJ XÒJ´×1CÑ1CÀDÓ1IÑJð! Ø—}‘}ˆHØ%,§]¡]¦_Ñ!�˜'Ø—‘Ð0°G¸XÐ3FÑFÔGà×%Ñ% hÓ/×;Ò;ð"×2Ñ2°4Õ8Ø ×,Ñ,Ø$Ø'+Ø'+Ø+/ð -ô÷9ô— ‘ ˜g t§z¡z°(Ó';ÀdÕKÜ— ‘ ˜'Õ"ð7&5ñ8Ü—‘˜Õ#ð÷U 6Ñ 5ûôP × Ñ òDÜ×ÑœqÐ!;Ó<¸sÑBÓCÐCûÜ × &Ñ &òEÜ×ÑœqÐ!<Ó=ÀÑCÓDÐDûðEüò 7ùò øôò Ú ð üòB Gøô×(Ñ(ò >Ü×&Ñ&¤x×'7Ñ'7¸Ó'<Ó=Ð=ûÜ×.Ñ.ò >Ü×&Ñ&¤x×'7Ñ'7¸Ó'<Ó=Ð=ûð >üò7÷&9Ñ8ûô"ò Ù ð ûðA! Ø—}‘}ˆHØ%,§]¡]¦_Ñ!�˜'Ø—‘Ð0°G¸XÐ3FÑFÔGà×%Ñ% hÓ/×;Ò;ð"×2Ñ2°4Õ8Ø ×,Ñ,Ø$Ø'+Ø'+Ø+/ð -ô÷9×8Ñ8úô— ‘ ˜g t§z¡z°(Ó';ÀdÕKÜ— ‘ ˜'Õ"ð7&5ñ8Ü—‘˜Õ#ðøäò Ù ð ýs)ÃD] Ç)6] Ê4 ]Í _ Í_ Î_Ï _Ï#B;b ÒCb Õ-+_&ÖAb ×*A _+Ø4b Ø9a,Ù!b Ù3A$a>Ûa1Û-Aa>Ý ]Ý_ Ý,!^ Þ _ Þ#!_ß_ ß _#ß"_#ß&b ß+a)ß>(`&à&a)à<(a$á$a)á)b á1a; á6a>á> b â b â fâA$e5ã3d ä e5äd äAe5å3få5 få>fæfæfcóJ—tj|«}|j«s1|rtd«|z}n td«}t j |«‚|j d«s|j«tjt||||¬«} t||| ||«S)Ns)running non-interactively, use %s insteadsrunning non-interactivelyr=)r-r.r/r0) r"Ú byteskwargsÚ interactiver rrbrarsÚ functoolsÚpartialrNrË) r0r+r-Ú cmdsuggestr.r/r0rSrÎÚfuncs r^ÚdorecordrV™s˜€ô × Ñ  Ó %€DØ �>‰>Ô Ù ÜÐ@ÓAÀJÑN‰CäÐ0Ó1ˆCÜ×јsÓ#Ð#ð �8‰8�GÔ Ø � ‰ Œ ä × Ñ ÜØØØØ ô  €Dô �"�d˜D $¨Ó -Ð-r2có.—eZdZdZd„Zd„Zd„Zd„Zd„Zy)Údirnodeaì Represent a directory in user working copy with information required for the purpose of tersing its status. path is the path to the directory, without a trailing '/' statuses is a set of statuses of all files in this directory (this includes all the files in all the subdirectories too) files is a list of files which are direct child of this directory subdirs is a dictionary of sub-directory name as the key and it's own dirnode object as the value cóL—||_t«|_g|_i|_yr})r rŠÚstatusesr�Úsubdirs)ÚselfÚdirpaths r^Ú__init__zdirnode.__init__Ãs €ØˆŒ Ü›ˆŒ ؈Œ ؈� r2có>—|jj||f«y)z/Add a file in this directory as a direct child.N)r�r˜)r\r�rîs r^Ú _addfileindirzdirnode._addfileindirÉs€à � ‰ ×ј8 VÐ,Õ-r2cóz—d|vr{|jdd«\}}||jvr8tj|j|«}t |«|j|<|j|j ||«n|j||«||jvr|jj|«yy)zú Add a file to this directory or to its direct parent directory. If the file is not direct child of this directory, we traverse to the directory of which this file is a direct child of and add the file there. ó/r N) r—r[r rr rXÚaddfiler`rZrŒ)r\r�rîÚsubdirÚfilepÚ subdirpaths r^rczdirnode.addfileÍs¥€ð �8Ñ Ø$ŸN™N¨4°Ó3‰MˆF�Eð˜TŸ\™\Ñ)Ü%Ÿ]™]¨4¯9©9°fÓ=� Ü'.¨zÓ':�— ‘ ˜VÑ$ð �L‰L˜Ñ × (Ñ (¨°Õ 7ð × Ñ ˜x¨Ô 0à ˜Ÿ™Ñ &Ø �M‰M× Ñ ˜fÕ %ð 'r2c#ó|K—|jD])\}}|tj|j|«f–—Œ+y­w)z=Yield (status, path) for files directly under this directory.N)r�r rr )r\rÍÚsts r^Ú iterfilepathszdirnode.iterfilepathsés2èø€à—Z”Z‰EˆAˆrØ”h—m‘m D§I¡I¨qÓ1Ð1Ó 1ñ ùs‚:<c#óXK—t|j«dk(r2|jj«}||vr||jdzf–—y|j «D] \}}||f–—Œ |j j «D]!}|j|«D] \}}||f–—Œ Œ#y­w)a  Yield (status, path) obtained by processing the status of this dirnode. terseargs is the string of arguments passed by the user with `--terse` flag. Following are the cases which can happen: 1) All the files in the directory (including all the files in its subdirectories) share the same status and the user has asked us to terse that status. -> yield (status, dirpath). dirpath will end in '/'. 2) Otherwise, we do following: a) Yield (status, filepath) for all the files which are in this directory (only the ones in this directory, not the subdirs) b) Recurse the function on all the subdirectories of this directory r rbN)rzrZr¨r rir[ÚvaluesÚ tersewalk)r\Ú terseargsÚonlystrhÚfpathÚdirobjs r^rlzdirnode.tersewalkîs©èø€ô. ˆt�}‰}Ó  Ò "Ø—]‘]×&Ñ&Ó(ˆFð˜Ñ"ؘdŸi™i¨$Ñ.Ð.Ò.Øð×+Ñ+Ö-‰IˆB�Ø�e�)‹Oð.ð—l‘l×)Ñ)Ö+ˆFØ#×-Ñ-¨iÖ8‘ ��Eؘ%�i“ñ9ñ,ùs‚B(B*N) Ú__name__Ú __module__Ú __qualname__Ú__doc__r^r`rcrirlr¥r2r^rXrX³s „ñ òò .ò&ò82ó ' r2rXcó~—d}tj|«D]'}||vsŒtjt d«|z«‚t d«}d}i}|D]/}|dd}t ||«D]} |j| |«Œg||<Œ1|j«D]\} } || j| «Œ|jj«D]/} | j|«D]\} } || j| «ŒŒ1g} |D])} || j«| j|| «Œ+tj| ŽS)a½ Terse the status if all the files in a directory shares the same status. statuslist is scmutil.status() object which contains a list of files for each status. terseargs is string which is passed by the user as the argument to `--terse` flag. The function makes a tree of objects of dirnode class, and at each node it stores the information required to know whether we can terse a certain directory or not. )r6rEórr:r<óirOs'%s' not recognizedr2)smodifiedsaddedsdeletedscleanóunknownsignoredsremovedrr )r"r!rrbr rXrrcrir˜r[rkrlÚsortr&rî)Ú statuslistrmÚallstr7ÚrootobjÚpstatusÚ tersedictÚattrnameÚ statuscharrÍrhrordÚ tersedlists r^Útersedirr‚sM€ð 7€Eô× Ñ ˜iÖ (ˆØ �EŠ>Ü×"Ñ"¤1Ð%;Ó#<¸qÑ#@ÓAÐ Að)ô �c‹l€Gð€Gð€Iۈؘa �]ˆ ܘ XÖ.ˆAØ �O‰O˜A˜zÕ *ð/à "ˆ �*Òð ð×*Ñ*Ö,‰ ˆˆEØ�"‰ ×јUÕ#ð-ð—/‘/×(Ñ(Ö*ˆØ×%Ñ% iÖ0‰EˆB�Ø �b‰M× Ñ  Õ #ñ1ð+ð€JÛˆØ�"‰ ×ÑÔØ×ј) B™-Õ(ðô �>‰>˜:Ð &Ð&r2cóx—|j«}|D�cgc]}d|z‘Œ }}dj|«dzScc}w)z0Surround lineswith a comment char and a new lines# %sry)Ú splitlinesr)ÚrawÚlinesÚlineÚcommentedliness r^Ú _commentlinesr‰Qs?€à �N‰NÓ €EÙ16Ó7±¨�g “n°€NÐ7Ø �:‰:�nÓ %¨Ñ -Ð-ùò8s• 7T)Úfrozencóþ—eZdZej«Zej«Zej«Zej«Zej«Z ejde «¬«Z dZ d„Z d„Zd„Zy)Ú morestatusF)ÚinitÚdefaultsstatus.morestatuscó–—|jj|«|jr"||jvr|j d¬«yyy)NT)Ú unresolved)Ú_formattedpathsrŒÚ activemergeÚunresolvedpathsÚdata)r\r Úfms r^Ú formatfilezmorestatus.formatfilebsB€Ø ×Ñ× Ñ  Ô&Ø × Ò  ¨×(<Ñ(<Ñ <Ø �G‰G˜tˆGÕ $ð!=Ð r2có<—|js |jr"|j«|jd¬«|jr]|j|j¬«t d«|jz}|j dt |«z|j¬«|jr|j|j¬«|j|«|jr4|j dt |j«z|j¬«yy)Ns morestatus)Úitemtype)Ú unfinisheds.The repository is in an unfinished *%s* state.rµr§)Ú unfinishedmsg) Ú unfinishedopršÚ startitemr”r Úplainr‰Ú_labelÚ_formatconflicts)r\r•Ústatemsgs r^Ú formatfooterzmorestatus.formatfootergsè€Ø × Ò  × 2Ò 2Ø �L‰LŒNØ �G‰G˜]ˆGÔ +à × Ò Ø �G‰G˜t×0Ñ0ˆGÔ 1äÐCÓDØ×#Ñ#ñ$ð ð �H‰H�Wœ}¨XÓ6Ñ6¸d¿k¹kˆHÔ JØ × Ò Ø �G‰G $×"4Ñ"4ˆGÔ 5ð ×јbÔ!à × Ò Ø �H‰HØœ-¨×(:Ñ(:Ó;Ñ;À4Ç;Á;ð õ ð r2c óT—|jsy|jrÖdj|jD�cgc]B}dtj|j j tj«|«z‘ŒDc}«}td«|z}|jD]Q}||jvrŒ|j«|j|j ¬«|jd|d¬«ŒSn td«}|jd t|«z|j ¬ «ycc}w) Nrys %ssSUnresolved merge conflicts: %s To mark files as resolved: hg resolve --mark FILE)r+sfileT)r˜r r�sNo unresolved merge conflicts.rµr§)r’r“rr+Úpathtor+ÚrootrÚgetcwdr r‘rœÚcontextr”r�r‰rž)r\r•r Ú mergeliststrrÎrÍs r^rŸzmorestatus._formatconflicts~s€Ø×ÒØ à × Ò Ø Ÿ:™:ð!%× 4Ò 4óñ!5˜ðÜ—k‘k $§)¡)§.¡.´(·/±/Ó2CÀTÓJóKà 4ñóˆLôð6óðñð ð×)Ô)�ؘ×,Ñ,Ñ,àØ— ‘ ”Ø— ‘  § ¡ � Ô*ð—‘ ¨q¸T�ÕBñ*ôÐ5Ó6ˆCà �‰�œ=¨Ó-Ñ-°T·[±[ˆÕAùòCs³AD%N)rqrrrsrÚibr+r›ršr’r“rŠr‘ržr–r¡rŸr¥r2r^rŒrŒXsl„à ˆ4�7‰7‹9€DØ�4—7‘7“9€LØ�D—G‘G“I€MØ�$—'‘'“)€KØ�d—g‘g“i€OØ�d—g‘g 5±#³%Ô8€OØ !€Fò%ò ó.'Br2rŒcó—tj|«}tjj |«}|j «}|s|sydx}x}}|r|\}}|rt |j««}t|||||«S)z=Returns a morestatus object if the repo has unfinished state.N) ÚstatemodÚ getrepostateÚ mergestatemodrrÚactiveÚsortedr�rŒ)r+Ú statetuplerr’r›ršr�s r^Úreadmorestatusr°¨sˆ€ä×&Ñ& tÓ,€JÜ×)Ñ)×.Ñ.¨tÓ4€JØ×#Ñ#Ó%€KÙ ™kØà04Ð4€LÐ4�= :ÙØ&0Ñ#ˆ �mÙܘJ×1Ñ1Ó3Ó4ˆ Ü Ø ˆl˜M¨;¸ ó ðr2có`—i}i}||vr|g}n|j«}g}|D]‚}t|«}|j|«d} ||vr|} n|s|D]} | j|«sŒ| } n| €ŒI|djd«s| jd«r |||f|| <Œy|||f|| <Œ„|s|r|}||fS)z¥ Return cmd -> (aliases, command table entry) for each matching command. Return debug commands (or their aliases) only if no normal command matches. Nrsdebug)rr r™Ú startswith) ršÚtableÚstrictÚchoiceÚ debugchoicerÚallcmdsrÁÚaliasesÚfoundÚas r^Ú findpossibler»ºs߀ð €FØ€Kà ˆe�|àˆu‰à�z‰z‹|ˆà€GÛ ˆÜ˜q“/ˆØ�‰�wÔØˆØ �'‰>؉EÙÛ�Ø—<‘< Õ$Ø�EÙðð Ñ Ø�q‰z×$Ñ$ XÔ.°%×2BÑ2BÀ8Ô2LØ&-¨u°Q©xÐ%8� ˜EÒ"à!(¨%°©(Ð 3��u’ ðñ" ‘k؈à �7ˆ?Ðr2cóú—t|||«\}}||vr||St|«dkDr!t|«}tj||«‚|rt |j ««dStj||«‚)z9Return (aliases, command table entry) for command string.r r)r»rzr®rÚAmbiguousCommandÚlistrkÚUnknownCommand)ršr³r´rµr·Úclists r^ÚfindcmdrÁásx€ä" 3¨¨vÓ6�O€FˆGà ˆf�}Ø�c‰{Ðä ˆ6ƒ{�Q‚Ü�v“ˆÜ×$Ñ$ S¨%Ó0Ð0á Ü�F—M‘M“OÓ$ QÑ'Ð'ä × Ñ ˜s GÓ ,Ð,r2c󲇗|j«5|j«5|jd«5t|«t j ||«}|st jd«‚|jd|«}t|«dkDrt jtd««‚tj||d«||j«}|j«D�chc]}|j«’Œ}}|j!d«s4||vr0||j#«vrt jtd««‚|jd |«rt jtd ««‚i} dd lm} |D�]g} || Љj«} | |k(rŒˆfd „} |j)d t+‰j-««| |fz«‰j/«}t+‰j-««|d<‰j1«j-«}‰j3«j-«}|| vr| |d}|| vr| |d}| j5|||f‰j7«‰j9«| ‰j;«‰j=«||¬« }|j?|«}|f| ‰j-«<|j)dt+|«z«�ŒjtAjB|| dd¬«|d}t|j««dk(rL| j!|j1«j-««}|�ddlm"}|jG||dd¬«|jItd«t| «z«ddd«ddd«ddd«ycc}w#1swYŒxYw#1swYŒ#xYw#1swYyxYw)z-Change the branch name of given revs to labelsbranchessempty revision setó roots(%ld)r s,cannot change branch of non-linear revisionsschange branch ofrÐs(a branch of the same name already existssheads(%ld) - head()s)cannot change branch in middle of a stack©r¦cóB•— ‰|S#tj$rYywxYwr})rÚManifestLookupError)r+Únewctxr Úctxs €r^Ú filectxfnzchangebranch..filectxfns*ø€ð ؘt™9Ð$øÜ×0Ñ0ò Ùð ús ƒˆ�s*changing branch of '%s' from '%s' to '%s' s branch_changer)rnrlÚextraÚbranchsnew node id is %s s branch-changeT©ÚfixphaseN)Úhg)Ú quietemptys changed branch on %d changesets )%ÚwlockÚlockÚ transactionÚ bailifchangedrÚrevrangerrbÚrevsrzr r%ÚprecheckrfrërËraÚ branchmapÚr¦rr ÚnoderÊÚp1Úp2ÚmemctxÚ descriptionr�rnrlÚ commitctxr&Ú cleanupnodesrÎrŽrî)r0r+rÕr£rSÚrootsr¤ÚparentÚrpbÚ replacementsr¦ÚrevÚ oldbranchrÉrÊrÚrÛÚmcÚnewnoder1ÚnewidrÎrÈs @r^Ú changebranchréòsOø€ð �‰��t—y‘y•{ D×$4Ñ$4°[Õ$Aä�dÔÜ×"Ñ" 4¨Ó.ˆÙÜ×"Ñ"Ð#8Ó9Ð 9Ø— ‘ ˜-¨Ó.ˆÜ ˆu‹:˜Š>Ü×"Ñ"ÜÐAÓBóð ô ×јT 4Ð)<Ô=à�E—K‘K“MÑ"ˆØ-1¯\©\¬^Ó<©^ 6ˆv�}‰}�¨^ˆÐ<à—‘˜Ô"ؘSÑ Ø˜Ÿ™Ó)Ñ)ä×"Ñ"ÜÐ=Ó>óð ð �9‰9Ð+¨TÔ 2Ü×"Ñ"ÜÐ>Ó?óð ðˆ õ äˆCØ�s‘)ˆCØŸ ™ › ˆIà˜EÒ!Øô ð �H‰HØ>Ü�s—x‘x“z“? I¨uÐ5ñ6ô ð—I‘I“KˆEÜ&)¨#¯(©(«*£oˆEÐ"Ñ #ð—‘“—‘“ˆBØ—‘“—‘“ˆBØ�\Ñ!Ø! "Ñ% aÑ(�Ø�\Ñ!Ø! "Ñ% aÑ(�à—‘ØØ�R�Ø—‘Ó!Ø— ‘ “ ØØ—X‘X“ZØ—X‘X“ZØØð ó ˆBð—n‘n RÓ(ˆGØ(/ zˆL˜Ÿ™›Ñ $Ø �H‰HÐ+¬c°'«lÑ:Ö ;ðWô\ ×ÑØ �,Ð 0¸4õ ð �D‰zˆä ˆt�|‰|‹~Ó  !Ò #Ø ×$Ñ$ T§W¡W£Y§^¡^Ó%5Ó6ˆEØÐ õ!à— ‘ ˜$  a¡°T� Ô:à � ‰ ”!Ð8Ó9¼CÀ Ó Î:OÏO ÏO Ï OcóJ—tjjtjj|d««se|tjj |«}}||k(rytjjtjj|d««sŒe|S)Ns.hg)rr ÚisdirrÚdirname)ÚpÚoldps r^ÚfindreporïYsi€Ü�g‰g�m‰mœBŸG™GŸL™L¨¨FÓ3Ô4Ø”R—W‘W—_‘_ QÓ'ˆaˆØ �Š9Øô�g‰g�m‰mœBŸG™GŸL™L¨¨FÓ3Õ4ð €Hr2cóÖ—|rG|jj«|jk7r tjt d«|¬«‚|j «}|js$|js|js |jr tjt d«|¬«‚|d}t|j«D]#}|j|«j|¬«Œ%y)z÷enforce the precondition that working directory must be clean. 'merge' can be set to false if a pending uncommitted merge should be ignored (such as when 'update --check' runs). 'hint' is the usual hint given to Abort exception. soutstanding uncommitted merge©Úhintsuncommitted changesN)r#rÛÚnullidrrr rîròrórôrõr®ÚsubstaterúrÓ)r+rròrhrÈr7s r^rÓrÓbsª€ñ �—‘×!Ñ!Ó# t§{¡{Ò2Ü×ÑœqÐ!AÓBÈÔNÐNØ �‰‹€BØ ‡{‚{�b—h’h "§*¢*°· ² Ü×ÑœqÐ!7Ó8¸tÔDÐDØ ˆt‰*€CÜ �C—L‘LÖ !ˆØ �‰�‹ × Ñ  dÐ Õ+ñ"r2cóò—t|dd«ttt|j d««}|j d«}|s_|r] t |«r|j j«}|Sdjtj|«j««} |S|S#t$rE}tjtd«|t!j"|j$«fz«‚d}~wwxYw)z1get the log message according to -m and -l optionr7r9rys"can't read commit message '%s': %sN)rerrr`raÚisstdiofilenameÚfinrrr+Úreadfiler„ÚIOErrorrrür rÚ strtolocalÚstrerror)r0rSr,ÚlogfileÚinsts r^Ú logmessagerþusÕ€ô˜$  ¨JÔ7ä”8œE‘? D§H¡H¨ZÓ$8Ó9€GØ�h‰h�zÓ"€Gá ‘wð ܘwÔ'ØŸ&™&Ÿ+™+›-�ð €Nð  Ÿ*™*¤T§]¡]°7Ó%;×%FÑ%FÓ%HÓI‘ð €Nˆ7€Nøô ò Ü—+‘+ÜÐ7Ó8ØœH×/Ñ/°· ± Ó>Ð?ñ@óð ûð úsÁ %B(Á12B(Â( C6Â1AC1Ã1C6có†—t|t«r |r|dzS|dzSt|j««dkDr|dzS|dzS)areturn appropriate editform name (referencing a committemplate) 'ctxorbool' is either a ctx to be committed, or a bool indicating whether merging is committed. This returns baseformname with '.merge' appended if it is a merge, otherwise '.normal' is appended. s.merger s.normal)r�Úboolrzrë)Ú ctxorboolÚ baseformnames r^Ú mergeeditformr‹sW€ô�)œTÔ"Ù Ø )Ñ+Ð +ð ˜*Ñ $Ð$ô ˆY× Ñ Ó Ó ! AÒ %ؘiÑ'Ð'à ˜*Ñ $Ð$r2c ó<‡‡‡—|s‰s‰rˆˆˆfd„S‰rˆfd„StS)a&get appropriate commit message editor according to '--edit' option 'finishdesc' is a function to be called with edited commit message (= 'description' of the new changeset) just after editing, but before checking empty-ness. It should return actual text to be stored into history. This allows to change description before storing. 'extramsg' is a extra message to be shown in the editor instead of 'Leave message empty to abort commit' line. 'HG: ' prefix and EOL is automatically added. 'editform' is a dot-separated list of names, to distinguish the purpose of commit text editing. 'getcommiteditor' returns 'commitforceeditor' regardless of 'edit', if one of 'finishdesc' or 'extramsg' is specified, because they are specific for usage in MQ. có&•—t|||‰‰‰¬«S)N)Ú finishdescÚextramsgÚeditform)Úcommitforceeditor)ÚrrFr7rrrs €€€r^r¦z!getcommiteditor..´sø€Ô0Ø ˆq�!  °XÈõ r2có"•—t|||‰¬«S)N©r©Ú commiteditor)r rFr7rs €r^r¦z!getcommiteditor..¸sø€œ|¨A¨q°!¸hÕGr2r )rrrrrSs ``` r^Úgetcommiteditorr�s'ú€ñ, ‰z™Xõ ð ñ ÛGÐGäÐr2cóê—g}tj|d¬«D]G\}}}|dk(r(|jtj|||««Œ4|j|||«ŒIdj |«S)NT©r…óstringr2)r*Ú scantemplater˜r.Ú escapestrr)ÚtmplÚpartsÚtypÚstartÚends r^Ú_escapecommandtemplater½sl€Ø €EÜ$×1Ñ1°$¸D×A‰ˆˆU�CØ �)Ò Ø �L‰Lœ×-Ñ-¨d°5¸¨oÓ>Õ ?à �L‰L˜˜e C˜Õ )ð Bð �8‰8�E‹?Ðr2cój—|s|Stj|t|««}|j|«S)a Expand a literal template 'tmpl' in a way suitable for command line '\' in outermost string is not taken as an escape character because it is a directory separator on Windows. >>> from . import ui as uimod >>> ui = uimod.ui() >>> rendercommandtemplate(ui, b'c:\\{path}', {b'path': b'foo'}) 'c:\\foo' >>> rendercommandtemplate(ui, b'{"c:\\{path}"}', {'path': b'foo'}) 'c:{path}' )rÚ maketemplaterrÚ renderdefault)r0rÚpropsÚts r^Úrendercommandtemplater Çs3€ñ ؈ Ü×Ñ Ô$:¸4Ó$@ÓA€AØ �?‰?˜5Ó !Ð!r2có—|j«}tj|j|«}tj|j|t j |¬«}d|i}|r|j|«|j|«S)zÐExpand a literal template 'tmpl' byte-string against one changeset Each props item must be a stringify-able value or a callable returning such value, i.e. no bare list nor dict should be passed. )ÚdefaultsÚ resourcessctx) r+rÚtemplateresourcesr0rr)ÚkeywordsrŽr)rÈrrr+ÚtresrÚmappings r^Úrendertemplater(Úsq€ð �8‰8‹:€DÜ × &Ñ & t§w¡w°Ó 5€DÜ×ÑØ �‰�¤ × 3Ñ 3¸tô €Að�sˆm€GÙ Ø�‰�uÔØ �?‰?˜7Ó #Ð#r2có®—d}|r|jdd|zd«}|s|jdd«}|s|}|sd}t||«}|jd«dS)z&Format a changeset summary (one line).Nscommand-templatessoneline-summary.%ssoneline-summarys{separate(" ", label("oneline-summary.changeset", "{rev}:{node|short}"), join(filter(namespaces % "{ifeq(namespace, "branches", "", join(names % "{label("oneline-summary.{namespace}", name)}", " "))}"), " "))} "{label("oneline-summary.desc", desc|firstline)}"ryr)rÆr(r—)r0rÈÚcommandÚ default_specÚspecÚtexts r^Úformat_changeset_summaryr.ëst€à €DÙØ�y‰yØ Ð"7¸'Ñ"AÀ4ó ˆñ Ø�y‰yÐ-Ð/AÓBˆÙ ؈٠ð Að ô ˜#˜tÓ $€DØ �:‰:�eÓ ˜QÑ Ðr2cóÜ—ddddddddœ}|�d |d <|�d |d <|�|�d |d <|�d|d<d|d<d|d<g}tj|d¬«D]à\}}} |dk7r|j||| «Œ!|} | | ksŒ)|jd| | «} | dkr(|jt j || | ««Œi|jt j || | ««| dz| kDrt jtd««‚|| dz| dz} | dz} |j|| «| | krŒ¸Œâdj|«S#t$r"t jtd«| z«‚wxYw)aConvert old-style filename format string to template string >>> _buildfntemplate(b'foo-%b-%n.patch', seqno=0) 'foo-{reporoot|basename}-{seqno}.patch' >>> _buildfntemplate(b'%R{tags % "{tag}"}%H') '{rev}{tags % "{tag}"}{node}' '\' in outermost strings has to be escaped because it is a directory separator on Windows: >>> _buildfntemplate(b'c:\\tmp\\%R\\%n.patch', seqno=0) 'c:\\\\tmp\\\\{rev}\\\\{seqno}.patch' >>> _buildfntemplate(b'\\\\foo\\bar.patch') '\\\\\\\\foo\\\\bar.patch' >>> _buildfntemplate(b'\\{tags % "{tag}"}') '\\\\{tags % "{tag}"}' but inner strings follow the template rules (i.e. '\' is taken as an escape character): >>> _buildfntemplate(br'{"c:\tmp"}', seqno=0) '{"c:\\tmp"}' s{node}s{rev}s {node|short}s${sub(r"[^\w]", "_", desc|firstline)}s7{if(revwidth, pad(rev, revwidth, "0", left=True), rev)}ó%s{reporoot|basename})óHóRóhr6rvr0rGs{total}óNs{seqno}r1s3{pad(seqno, total|stringify|count, "0", left=True)}s{pathname|basename}rKs-{if(pathname|dirname, pathname|dirname, ".")}r:s {pathname}rATrrrés)incomplete format spec in output filenamer s-invalid format spec '%%%s' in output filenamer2) r*rr˜Úfindr.rrrür ÚKeyErrorr) ÚpatÚtotalÚseqnoÚrevwidthÚpathnameÚexpanderÚnewnamerrrÚiÚnrFs r^Ú_buildfntemplaterAsº€ð2ØØØ6ØHØØ$ñ€Hð ÐØ#ˆ�‰Ø ÐØ#ˆ�‰Ø ИUÐ.ØOˆ�‰ØÐØ/ˆ�‰ØIˆ�‰Ø&ˆ�‰à€GÜ$×1Ñ1°#¸4×@‰ˆˆU�CØ �)Ò Ø �N‰N˜3˜u S˜>Ô *Ø Ø ˆØ�#‹gØ—‘˜˜q #Ó&ˆAØ�1ŠuØ—‘œz×3Ñ3°C¸¸#°JÓ?Ô@ØØ �N‰Nœ:×/Ñ/°°A°a°Ó9Ô :Ø�1‰u�sŠ{Ü—k‘kÜÐBÓCóðð�A˜‘E˜A ™EÐ"ˆAØ�A‘ˆAð Ø—‘˜x¨™{Ô+ð�#Œgð Að. �8‰8�GÓ Ðøô ò Ü—k‘kÜÐFÓGÈ!ÑKóðð ús ÄEÅ+E+c ób—|s|St|fi|¤Ž}t||tj|««Sr})rAr(r"rP)rÈr8rrs r^Ú makefilenamerCJs5€Ù ؈ Ü ˜CÑ ) 5Ñ )€Dô ˜#˜t¤X×%9Ñ%9¸%Ó%@Ó AÐAr2có—| xs|dk(S)zATrue if the given pat looks like a filename denoting stdin/stdoutrZr¥)r8s r^röröTs€àˆ7Ò !�c˜T‘kÐ!r2có0—eZdZd„Zd„Zd„Zd„Zd„Zd„Zy)Ú_unclosablefilecó—||_yr})Ú_fp)r\rEs r^r^z_unclosablefile.__init__Zs €Øˆ�r2có—yr}r¥©r\s r^rz_unclosablefile.close]ó€Ø r2có,—t|j«Sr})ÚiterrHrJs r^Ú__iter__z_unclosablefile.__iter__`s€Ü�D—H‘H‹~Ðr2có.—t|j|«Sr})rrH)r\rs r^Ú __getattr__z_unclosablefile.__getattr__cs€Ü�t—x‘x Ó&Ð&r2có—|Sr}r¥rJs r^Ú __enter__z_unclosablefile.__enter__fs€Øˆ r2có—yr}r¥)r\Úexc_typeÚ exc_valueÚexc_tbs r^Ú__exit__z_unclosablefile.__exit__irKr2N) rqrrrsr^rrNrPrRrWr¥r2r^rFrFYs „òò òò'òó r2rFc óú—|dv}t|«rT|j«}|r!|jj}t |«S|jj}t |«St ||fi|¤Ž}t||«S)N)rvsrb)rör+r0Úfoutr÷rFrCr)rÈr8ÚmoderÚwritabler+rEÚfns r^Ú makefileobjr]mss€Ø˜=Ð(€Hä�sÔØ�x‰x‹zˆÙ Ø—‘—‘ˆBô˜rÓ"Ð"ð—‘—‘ˆBܘrÓ"Ð"Ü �c˜3Ñ ( %Ñ (€BÜ ��D‹>Ðr2cóú—|d}|d}|d}d}|r|r td«}n1|r|r td«}n!|s|s|r|r td«}n |s td«}|rtj|«‚d} |�r2|r|j«j} n²|rrt j |«stjtd ««‚|jd «s|d z}|jj|«} t| «rA| } n>|r|jjd «} n |r|j|«} t| «r| } |rat| tj«rnFtj| d «r | j } n#| �!tjtd «| z«‚| sØ|stjtd««‚|stj"|td««‚t$j&j)|«s!tjtd«|z«‚t*j,d|zf} tjt/j0t3j4«d¬«| |dd¬«} | S)z:opens the changelog, manifest, a filelog or a given revlogrPrQrRNs:cannot specify --changelog and --manifest at the same times5cannot specify --changelog and --dir at the same times6cannot specify filename with --changelog or --manifestsFcannot specify --changelog or --manifest or --dir without a repositorys9--dir can only be used on repos with treemanifest enabledrbr2Ú_revlogs!%r does not appear to be a revlogscannot give path to non-revlogsinvalid argumentssrevlog '%s' not founds free-form:%sF)Úauditéþÿÿÿ)ÚtargetÚradix)r rrbÚ unfilteredrr&ÚistreemanifestÚendswithÚ manifestlogÚ getstoragerzÚfiler�r$r+Ú safehasattrr_Ú CommandErrorrr ÚisfileÚrevlog_constantsÚ KIND_OTHERÚvfsmodr,rr¥) r+ršÚfile_rSÚ returnrevlogÚclÚmfrÝrÎr ÚdirlogÚfilelogrbs r^Ú openstoragerv{sE€à ˆlÑ €BØ ˆkÑ €BØ ˆv‰,€CØ €CÙ ‰bÜÐMÓN‰Ù ‘ÜÐHÓI‰Ù ‰r‘SÙ ÜÐMÓN‰CÙÜð(óˆCñ Ü×јsÓ#Ð#à €AÚ Ù Ø—‘Ó!×+Ñ+‰AÙ Ü×)Ñ)¨$Ô/Ü×&Ñ&Üð0óóðð —<‘< Ô%ؘD‘j�Ø×%Ñ%×0Ñ0°Ó5ˆFÜ�6Œ{ؑ٠Ø× Ñ ×+Ñ+¨CÓ0‰AÙ Ø—i‘i Ó&ˆGÜ�7Œ|Ø�ñ ܘ!œVŸ]™]Ô+ØÜ×!Ñ! ! YÔ/Ø—I‘I‘Ø�Ü×&Ñ&ÜÐ:Ó;¸aÑ?óðñ ÙÜ×"Ñ"¤1Ð%FÓ#GÓHÐ HáÜ×$Ñ$ S¬!Ð,@Ó*AÓBÐ BÜ�w‰w�~‰~˜eÔ$Ü×"Ñ"¤1Ð%=Ó#>ÀÑ#FÓGÐ Gä"×-Ñ-¨ÀÑ/FÐGˆÜ �M‰MÜ �J‰J”x—‘Ó(°Ô 6ØØ˜˜�*ô ˆð €Hr2có"—t||||d¬«S)apObtain a revlog backing storage of an item. This is similar to ``openstorage()`` except it always returns a revlog. In most cases, a caller cares about the main storage object - not the revlog backing it. Therefore, this function should only be used by code that needs to examine low-level revlog implementation details. e.g. debug commands. T)rq)rv)r+ršrprSs r^Ú openrevlogrxÆs€ô �t˜S %¨¸DÔ AÐAr2c óü‡‡‡‡‡!‡"‡#‡$‡%‡&‡'‡(—t‰ddg«‰j«Š#iŠ'‰jd«}‰jd«Š!‰jd«Š%‰jd«}|rr|s ‰!stjt d««‚t j‰|«Š"t‰"j««dkDr#tjt d««‚‰dŠ"‰"j«Š&tj‰d¬ «Š(|�r`‰"j«€‰"}n®t‰"j««dkDrtjt d ««‚dd lm}t!j"‰‰"j«gd «|j%‰«}|j'‰"j««t)j*‰‰"|¬ «tj,‰"|‰«} ‰"j/«} | j1‰"j3««tj‰«Š(‰"j5| «D]P} | | vr|| j7d«Œ| j9| «sŒ.‰j;t d«‰(| «z«ŒR‰"j«�ωj=«5|j?‰"«} | jA«} ‰jBj«‰"jE«k(r=‰jBjG‰«5tjH‰‰| «ddd«‰"jE«| gi}tjJ‰|d d¬«ddd«yytjL|«}|stjt d««‚t|«dk(rtjt d««‚|jO«}ˆ!ˆ"ˆˆ&ˆˆ(fd„}‰"j«��Zt!j"‰‰"j«gd «tQjR‰jT‰#|«}‰"jW|«r'tjt d«‰(|«z«‚|‰"vr)tjt d«‰(|«‰"fz«‚dd lm}g}|D])}||«}|sŒ|D]\}}}|jY|«ŒŒ+|stjt d««‚t|«dk7rtjt d««‚|j%‰«}|j'‰"j««t)j*‰‰"|¬ «|j7||d«‰j=«5|j?‰"«} | jA«} ‰jBj«‰"jE«k(r=‰jBjG‰«5tjH‰‰| «ddd«‰"jE«| gi}tjJ‰|dd¬«ddd«yˆ!ˆ"ˆ#ˆ%ˆˆ&ˆˆˆ'ˆf d„}ˆ#ˆ$ˆfd„}ˆ#ˆ$ˆfd„}tZj\j_|«xr tZj\ja|« Š$‰$szt|«dkDstcjd|d«rtjt d««‚tgjh|«r!tjt d«|z«‚|}‰!r|}g}|D](}||«}|sŒ|jY||||«|f«Œ*|s/d}‰r t d«}tjt d«|¬«‚d}|D]'\}}|D]\}} }||| ||«|«sŒ|dz }ŒŒ)|dk7S#1swY�Œ˜xYw#1swYyxYw#1swY�ŒÊxYw#1swYyxYw) Nóforgetódry_runsaftersat_revs--at-rev requires --afterr s'cannot mark/unmark copy in merge commitT©Úlegacyrelativevalues"cannot unmark copy in merge commitrÄsuncopy)r1s9%s: not unmarking as copy - file is not marked as copied rÌs"no source or destination specifiedsno destination specifiedcó‚•—g}‰j«€‰n‰ }tj||g‰ d¬«}|j|«D]y}‰ |«}|j |«}|‰vrF|‰ vr"‰s@|r‰ j t d«|z«ŒF|r‰ j t d«|z«Œf|j|||f«Œ{|S)NT)Úglobbeds2%s: not copying - file has been marked for remove s&%s: not copying - file is not managed )rär&rÚwalkÚexactr»r r˜) r8ÚsrcsÚ ctx_to_walkrKÚabsÚrelr�ÚafterrÈrSÚpctxr0Úuipathfns €€€€€€r^Úwalkpatzcopy..walkpat&s×ø€Øˆð!ŸW™W›YÐ.‘c°Dˆ Ü �M‰M˜+¨ u¨d¸DÔ AˆØ×#Ñ# AÖ&ˆCÙ˜3“-ˆCØ—G‘G˜C“LˆEؘ#‰~ؘ$‘;Ù Ù ØŸG™GÜ !ð%4ó!"ð#&ñ !&ôð!áØŸ™ÜÐHÓIÈCÑOôðð �K‰K˜˜c 5Ð)Õ *ð1'ð2ˆ r2s8%s: --at-rev does not support a directory as destinations)%s: copy destination does not exist in %ssno files to copys!--at-rev requires a single sourcerscopyc óÒ • ‡‡—tj‰j‰|«Šd‰vr6‰jdd«\}}‰jj |«dz|zЉj ‰‰«}‰j‰«}‰j‰«}‰jj‰«} | jxr | j } tj‰!‰«‰ j‰«} | �A‰!jtd«|‰j ‰‰«‰j | ‰«fz«yt j"j%|«} d} | r`‰‰k7r[‰jj ‰«‰jj ‰«k(r$‰s‰!jtd«|z«yd} d} ‰s| s‰rÊ| rȉdsÃ| rwtd«}‰‰vxr#t'ˆˆfd „‰j)«D««}|r‰r td «}nWtd «}nK‰rd }nd }‰rtd«|z}n3td«|z}n$td«}‰r td«}n td«}‰!j||z«‰!j|«y‰rE| �s‰r ‰!jtd«||fz«y‰!jtd«||fz«y‰s½ | rt!j*|«t j"j-|«xsd}t j"j/|«st!j0|«| r2|dz}t!j2||«t!j2||«nt5j6||‰¬«d}‰!jDs|sA‰r ‰!jGtd«||fz«n‰!jGtd«||fz«‰‰ ‰<tjH‰!‰‰‰‰‰‰¬«‰rU‰sR‰s=r;| s9‰jJjMdd«}‰jNjQ‰|¬«‰jS‰g«yyy#t8$r‰}|j:t:j<k(r ‰!jtd«|z«d}nA‰!jtd«|t?j@|jB«fz«Yd}~yYd}~�ŒUd}~wwxYw) Nrbr s*%s: not overwriting - %s collides with %s TFs%s: can't copy - same file rÐs-%s: not overwriting - file already committed c3ó2•K—|]}‰|vxr‰|v–—Œy­wr}r¥)Ú.0ÚgpctxÚabssrcÚ abstargets €€r^Ú z)copy..copyfile..­s+øèø€ðHá%3˜Eð %˜ÒB¨I¸UÐ,BÓBÙ%3ùsƒsP('hg rename --at-rev .' to record the rename in the parent of the working copy) sL('hg copy --at-rev .' to record the copy in the parent of the working copy) s--after --forces--forces;('hg rename %s' to replace the file by recording a rename) s7('hg copy %s' to replace the file by recording a copy) s"%s: not overwriting - file exists s+('hg rename --after' to record the rename) s'('hg copy --after' to record the copy) s+%s: not recording move - %s does not exist s+%s: not recording copy - %s does not exist rÛs ~hgrenamerÞs!%s: deleted in working directory s%s: cannot copy - %s smoving %s to %s scopying %s to %s )ÚdryrunÚcwdrÄóremoveemptydirs©r))*r Ú canonpathr¤Úrsplitr#Ú normalizer£rr%Útrackedrór&Ú checkportablerar»r rr ÚlexistsÚanyrërrìrëÚmakedirsÚrenamer+rrùÚerrnoÚENOENTrrúrûÚverboserîÚ dirstatecopyr0rrÚwvfsÚ unlinkpathÚforget)"rŽÚrelsrcÚotargetr�ÚabspathÚabsnameÚ reltargetrbÚsrcÚentryÚalready_commitedÚprevsrcÚexistsÚsamefilerÎÚlooks_like_copy_in_pctxròÚflagsÚ targetdirÚtmpÚ srcexistsrýr)r�r†rÈr’r‘rSr‡r�r+Útargetsr0s"` @€€€€€€€€€€r^rzcopy..copyfile}s¸ú€Ü×&Ñ& t§y¡y°#°wÓ?ˆ Ø �9Ñ ð )×/Ñ/°°aÓ8Ñ ˆG�WØŸ ™ ×/Ñ/°Ó8¸4Ñ?À'ÑIˆIØ—K‘K  ¨3Ó/ˆ Ø—‘˜IÓ&ˆØ�j‰j˜Ó ˆØ— ‘ ×'Ñ'¨ Ó2ˆà Ÿ=™=Ò<°·±¨_Ðä×јb )Ô,ð—+‘+˜iÓ(ˆØ Ð Ø �G‰GÜÐ@ÓAàØ—K‘K ¨Ó,Ø—K‘K ¨Ó-ðñô ðô—‘—‘ Ó(ˆØˆÙ �f  Ò)Ø�}‰}×&Ñ& vÓ.°$·-±-×2IÑ2IØó3òñØ—G‘GœAÐ=Ó>ÀÑJÔKØØ�Ø�ᙡ5Ñ-=ؘ’>Ù#ÜÐMÓN�Cð/8¸4Ð.?ò/ÄCôHà%)§\¡\¤^óHóEÐ+ñ/Ù!Ü#$ð!Hó$™Dô $%ð!Eó$™Dñ !Ø$6™Eà$.˜EÙ!ä !ð%=ó!"ð#(ñ !(ñ!ô!"ð%;ó!"ð#(ñ !(ñ!ôÐBÓC�CÙÜ ØKó ™ô !Ð!LÓM˜Ø—‘˜˜i™Ô(Ø—‘˜” Øá ÚÙØ—G‘GÜÐIÓJØ! 9Ð-ñ.ôðð —G‘GÜÐIÓJØ! 9Ð-ñ.ôðÙð ÙÜ—I‘I˜fÔ%ÜŸG™GŸO™O¨FÓ3Ò;°t� Ü—w‘w—}‘} YÔ/Ü—K‘K  Ô*ÙØ  <Ñ/�CÜ—I‘I˜c 3Ô'Ü—I‘I˜c 6Õ*ô—M‘M # v¸Õ?Ø � ð �:Š:™UÙØ— ‘ œ!Ð0Ó1°V¸YÐ4GÑGÕHà— ‘ œ!Ð1Ó2°f¸iÐ5HÑHÔIà#ˆ� Ñô ×ÑØ ��c˜6 9°VÀõ ñ ™&Ù™Y©xØŸ™×*Ñ*¨?Ð.targetpathfn..%s$ø€œBŸG™GŸL™L¨¬t¯~©~¸aÓ/@ÀÀÐ/KÔLr2c󤕗tjj‰tjjt j |«««Sr}©rr rr r+r¹©rír»s €r^r¦z,copy..targetpathfn..'ó/ø€œBŸG™GŸL™LØ”b—g‘g×&Ñ&¤t§~¡~°aÓ'8Ó9ôr2có•—‰Sr}r¥r¿s €r^r¦z,copy..targetpathfn..+sø€™Dr2) rr rër r•r¤r+r¹rzr—r"Úossep) r8r»r‚ÚabspfxÚresr¼r’Ú destdirexistsr+s ` @€€€r^Ú targetpathfnzcopy..targetpathfns¢ú€Ü �7‰7�=‰=˜Ô Ü×'Ñ'¨¯ © °3¸Ó<ˆFÜ—^‘^ FÓ+ˆFÙÜœrŸw™wŸ}™}¨VÓ4°QÑ7Ó8‘ä˜v›;�ÙØœC¤§¡Ó/Ñ/�ÜLˆCðˆ ñ óˆCð ˆ ó!ˆC؈ r2có‡‡—tj|«rˆfd„}|Stj‰ j‰ |«}t |«t ‰dd«k�rˆˆfd„}t j|«}t |«Š‰r‰t tj«z Štjjtjj‰tjj|«d««r^|‰«}t tjj|«d«}|r|t tj«z }||«|kDr|Šˆˆfd„}|S‰ rˆfd„}|Sˆfd„}|S)Nc󤕗tjj‰tjjt j |«««Sr}r¾r¿s €r^r¦z1copy..targetpathafterfn..5rÀr2rcóÖ•—d}‰D]`}tjj‰tj|d«|d«}tjj |«sŒ\|dz }Œb|S)Nrr )rr rr+r¹rš)r¼Úscorer7rr»r‚s €€r^Úevalpathz1copy..targetpathafterfn..evalpath=sZø€Ø�EÛ!˜ÜŸG™GŸL™L¨¬t¯~©~¸aÀ¹dÓ/CÀHÀIÐ/NÓO˜ÜŸ7™7Ÿ?™?¨1Õ-Ø! Q™J™Eð"ð!�Lr2r cóp•—tjj‰tj|«‰d«Sr}r¸rºs €€r^r¦z1copy..targetpathafterfn..Ps$ø€¤§¡§ ¡ ¨T´4·>±>À!Ó3DÀXÀYÐ3OÔ Pr2c󤕗tjj‰tjjt j |«««Sr}r¾r¿s €r^r¦z1copy..targetpathafterfn..Ts/ø€¤B§G¡G§L¡LØœbŸg™g×.Ñ.¬t¯~©~¸aÓ/@ÓAô%r2có•—‰Sr}r¥r¿s €r^r¦z1copy..targetpathafterfn..Xsø€¡Dr2)rìÚpatkindr r•r¤rzr+r¹r"rÂrr rërr—) r8r»r‚rÄrÃrËrÊÚ striplen1r¼r’rÅr+s `` @€€€r^Útargetpathafterfnzcopy..targetpathafterfn2s1û€Ü × Ñ ˜CÔ óˆCðHˆ ôA×'Ñ'¨¯ © °3¸Ó<ˆFÜ�6‹{œS  a¡¨¡›_Ó,õ!ôŸ™¨Ó/�ܘv›;�ÙØ¤¤H§N¡NÓ 3Ñ3�HÜ—7‘7—=‘=¤§¡§¡¨d´B·G±G·M±MÀ&Ó4IÈ!Ñ4LÓ!MÔNÙ$ XÓ.�EÜ #¤B§G¡G§M¡M°&Ó$9¸!Ñ$<Ó =�IÙ Ø!¤S¬¯©Ó%8Ñ8˜ Ù  Ó*¨UÒ2Ø#,˜ÜP�ðˆ ñ !ó�Cð ˆ ó)�C؈ r2s@with multiple sources, destination must be an existing directorys!destination %s is not a directorys)maybe you meant to use --after --at-rev=.rñ)5rjr¥rarrbr rÚ revsinglerzrërÚr&Ú getuipathfnrärØr¦r%rÖÚoverlayworkingctxÚsetbaserÚgraftrÚp1copiesrŽÚp2copiesr€Ú markcopiedr�r»rÑÚtomemctx_for_amendrËr#rÙr'Ú movedirstaterßÚ expandpatsr¨r r•r¤Úhasdirr˜rr rëÚislinkrìrÏr+Ú endswithsep))r0r+r0rSr�r¤räÚnew_ctxr¦rÚcurrent_copiesrÍÚmem_ctxÚnew_noderãr»r‰ÚabsdestÚcopylistr8r‚r„r…r�rrÆrÑÚtfnròÚerrorsÚ targetpathrŽr¥r†rÈr’rÅr‘r‡rµrˆs)`` `` @@@@@@@@r^rñrñÓsÌÿû€Ü   y°:°,Ô?ð �+‰+‹-€CØ€GØ �X‰X�iÓ €FØ �H‰H�XÓ €EØ �X‰X�jÓ !€FØ �(‰(�9Ó €CÙ Ù™eô×"Ñ"¤1Ð%AÓ#BÓCÐ CÜ×"Ñ" 4¨Ó-ˆÜ ˆs�{‰{‹}Ó  Ò !Ü×"Ñ"ÜÐ<Ó=óð ð�4‰jˆà �6‰6‹8€Dä×"Ñ" 4¸TÔB€Hâ Ø �7‰7‹9Р؉Gä�3—;‘;“=Ó! AÒ%Ü×&Ñ&¤qÐ)NÓ'OÓPÐPå !ä × Ñ  ¨¯©«  {°IÔ >Ø×/Ñ/°Ó5ˆGØ �O‰O˜CŸF™F›HÔ %Ü �N‰N˜4 ¨7Õ 3ä— ‘ ˜c 4¨Ó.ˆàŸ™›ˆØ×јcŸl™l›nÔ-ä×&Ñ& tÓ,ˆØ—‘˜%–ˆAØ�NÑ"ؘ‘ ×%Ñ% dÕ+Ø—‘˜Q•Ø—‘ÜØUóñ˜q“kñ"õð !ð �7‰7‹9Ð Ø—‘•Ø!×4Ñ4°SÓ9�Ø"Ÿ>™>Ó+�à—=‘=×#Ñ#Ó%¨¯©«Ò3ØŸ™×7Ñ7¸Õ=Ü×,Ñ,¨T°4¸±>ÔB÷>à #§¡£ ¨X¨JÐ7� Ü×$Ñ$ؘ,¨ ¸Dõ÷ñ ä × Ñ ˜dÓ #€DÙ Ü×ÑœqÐ!FÓGÓHÐHÜ ˆ4ƒy�A‚~Ü×ÑœqÐ!<Ó=Ó>Ð>Ø �8‰8‹:€D÷ñðB ‡w�wƒyÑÜ×јT C§G¡G£I ;° Ô:Ü×$Ñ$ T§Y¡Y°°TÓ:ˆØ �:‰:�gÔ Ü×"Ñ"ÜÐMÓNÙ˜7Ó#ñ$óð ð ˜#Ñ Ü×"Ñ"ÜÐ>Ó?Ù˜GÓ$ cÐ*ñ+óð õ àˆÛˆCÙ˜3“<ˆDÙØÛ#'‘��S˜%Ø—‘ Õ$ñ$(ð ñÜ×"Ñ"¤1Ð%8Ó#9Ó:Ð :ô ˆx‹=˜AÒ Ü×"Ñ"¤1Ð%IÓ#JÓKÐ Kà×+Ñ+¨DÓ1ˆØ�‰˜Ÿ™›Ô!Ü�‰�t˜S wÕ/à×ј7 H¨Q¡KÔ0à �Y‰Y�[Ø×0Ñ0°Ó5ˆGØ—~‘~Ó'ˆHà�}‰}×ÑÓ! S§X¡X£ZÒ/Ø—]‘]×3Ñ3°DÕ9Ü×(Ñ(¨¨t°H©~Ô>÷:àŸH™H›J¨¨ Ð3ˆLÜ × Ñ   |°WÀtÕ L÷ð ÷ X!õX!ö|ö.'ôR—G‘G—M‘M $Ó'ÒD´·±·±¸tÓ0DÐ,D€MÙ Ü ˆt‹9�qŠ=œH×,Ñ,¨T°!©WÔ5Ü×"Ñ"Üð*óóð ô × Ñ ˜DÔ !Ü×"Ñ"ÜÐ6Ó7¸$Ñ>óð ð €C٠؈؀HÛˆÙ�s‹|ˆÙØ Ø�‰™˜S $¨Ó-¨tÐ4Õ5ð ñ ؈٠ÜÐAÓBˆDÜ×ÑœqÐ!4Ó5¸DÔAÐAà €FÛ$ш �DÛ%)Ñ !ˆF�F˜EÙ˜ © °6Ó(:¸EÕBؘ!‘ ‘ñ&*ð%ð �Q‰;Ð÷Q >Ñ=ú÷ ð ú÷l:Ñ9ú÷ ð úsJÊ4A(_Ì_ Ì64_ÖA(_2Ø_%Ø4_2ß _ ß_ß_"ß%_/ ß*_2ß2_;c óŠ—ddlm}|jd«}|jd«} |jd«xs|jd«} |jd«xs|jd«} |jd«} |jd«} |jd «}|jd «}|jd «}|jd «}|jd « }|d}|d}t|jd«xsd«}|syd}t ||«}|r|} n| r| j «} nd} |j d| xsdz«t|«dk(r|j|t«|jd«r5| r|stjtd««‚||}||xst}nZ|rS ||}||}||dk7r|d}|t}|j«tk(r |jtd««n|\}}d}|�r||dk7r|||j!««||dk7r.|j#|j!«|j!««|jd«s|r.|j$j'| xsd|j)««|jdd«}t+«} t-j,||||||d|dz ¬«t9|«}|r| �r;|j| «�n(|jd«s|rd}nt;j<||xsg«}t?|dd!«}|jd«rd}n tAd0d"|it1jB|«¤Ž}i}tDD]} tG| ||||«Œi}!|rd |!d#<|jd$«rd$|!d%<|jHjK|!d&«5|jM| | | |||¬'«}tND]} tQ| ||«Œ ddd«�n|jd«s|r| xsd} n|jS«} t-jT«}" t+«} t-jV||||"||||d¬(« |jd«rd}n tAd)¬*«}|j]||j!«|j!«f| ||"| | | |¬+« }#i}!|jd$«rd$|!d%<|jHjK|!d&«5|#jM«}ddd«|"j_«|jd«r|r|jtd,««n?|jd«r.|rta|«| k7rtjbtd-««‚td.«}$|rtd/«te|«z}$|$||fS#tj$r |\}}Y�Œ wxYw#tj.$r8}tjt1j2|«td«¬«‚d}~wtj4$r9}|s(tj6t1j2|««‚|rd }Yd}~�Œ�d}~wwxYw#1swY�ŒWxYw#tj.$r8}tjtYjZ|«td«¬«‚d}~wtj4$r-}tj6tYjZ|««‚d}~wwxYw#1swY�ŒxYw#|"j_«wxYw)1aüUtility function used by commands.import to import a single patch This function is explicitly defined here to help the evolve extension to wrap this part of the import logic. The API is currently a bit ugly because it a simple code translation from the import command. Feel free to make it better. :patchdata: a dictionary containing parsed patch data (such as from ``patch.extract()``) :parents: nodes that will be parent of the created commit :opts: the full dict of option passed to the import command :msgs: list to save commit message to. (used in case we need to save it when failing) :updatefunc: a function that update a repo to a given node updatefunc(, ) r rÄsfilenamer7r=r;óbranchsnodeidsp1sp2s no_commits import_branchsbypasssstripsprefixrLr)NNFFNs message: %s r2sexactsnot a Mercurial patchs\warning: import the patch as a normal revision (use --exact to import the patch as a merge) ódefaultspartialgY@)ÚstriprÜr�räÚ similaritys7check that whitespace in the patch has not been mangledrñTs import.normalr)rÒsallowemptycommitósecret)sphasess new-commitsimport)rÚeditorrÊrãs import.bypassr )r�rÉrnrlrËrïs3warning: can't check exact import with --no-commit s%patch is damaged or loses informationsapplied to working directorys created %sr¥)3rØr¦raÚfloatrþrìrrzr˜r rrbr Ú RepoErrorrär»rÙÚ setparentsr#Ú setbranchÚcurrenttransactionrŠrrr"r!rrr¾r&rrrr"ÚextrapreimportÚextrapreimportmapr0rïrËÚextrapostimportÚextrapostimportmaprËÚ filestoreÚ patchrepor.Ú forcebytestrrÜrr rür )%r0r+Ú patchdatarërSÚmsgsÚ updatefuncr¦rDr,rnrlrËÚnodeidrÚrÛÚnocommitÚ importbranchrŽrìrÜÚsimÚrejectsÚcmdline_messager@rSr�rÁrKrrïrÊÚidfuncr2ÚstorerÜrÎs% r^Ú tryimportoner—s¶€õ&à�m‰m˜KÓ(€GØ�m‰m˜JÓ'€GØ �8‰8�GÓ Ò 6  § ¡ ¨gÓ 6€DØ �8‰8�GÓ Ò 6  § ¡ ¨gÓ 6€DØ �]‰]˜9Ó %€FØ �]‰]˜9Ó %€FØ �‰�uÓ €BØ �‰�uÓ €Bà�x‰x˜ Ó%€HØ—8‘8Ð,Ó-€LØ—‘˜)Ó$Ð $€FØ �‰N€EØ �)‰_€FÜ �—‘˜Ó'Ò,¨1Ó -€Cá Ø à€Gä   TÓ*€OÙà!‰Ù à—-‘-“/‰ðˆØ‡H�HÐ  '¢.¨SÑ 1Ô2ä ˆ7ƒ|�qÒØ�‰�tœG‘}Ô%Ø ‡x�x�ÔÙ™RÜ×"Ñ"¤1Ð%=Ó#>Ó?Ð ?Ø �"‰XˆØ �"’-œÑ ‰Ù ð Ø�b‘ˆBØ�b‘ˆBð�W˜Q‘ZÒØ˜Q‘Z�Øœ'‘]�ð �6‰6‹8”wÒ Ø �G‰GÜðFóõ ð‰ˆˆBà €AÚ Ø �˜‘Ò Ù �t˜RŸW™W›YÔ 'Ø �˜‘Ò Ø �O‰O˜BŸG™G›I r§w¡w£yÔ 1à �8‰8�HÔ ¡Ø �M‰M× #Ñ #ØÒ$˜* d×&=Ñ&=Ó&?ô ð—(‘(˜: uÓ-ˆÜ“ˆð Ü �K‰KØØØØØØØØ ™;õ ô.�U“ ˆÙ ÚØ— ‘ ˜GÖ$à�x‰x˜Ô!¡Rð‘ä×&Ñ& t¨Uª[°bÓ9�Ü$ T¨$¡ZÐ1AÓBˆHØ�x‰x˜Ô!Ø‘ä(ñØ%ðÜ)1×);Ñ);¸DÓ)Añ�ðˆEß(�Ü! &Ñ)¨$° ¸5À$ÕGð)àˆIÙØ:>� Ð6Ñ7Ø�x‰x˜ Ô"Ø8A� Ð4Ñ5Ø—‘×'Ñ'¨ °9Õ=Ø—K‘KؘT 4¨q¸Àuð ó�÷.�FÜ& vÑ.¨t°A©wÕ7ñ.÷ >Ñ=ð �8‰8�HÔ ¡ØÒ)˜z‰Fà—Y‘Y“[ˆFÜ—‘Ó!ˆð- Ü“EˆEð CÜ—‘ØØØØØØØØØ õ ð(�x‰x˜Ô!Ø‘ä(Ð2BÔC�Ø—^‘^ØØ—‘“˜BŸG™G›IÐ&ØØØØØØØð$ó ˆFðˆIØ�x‰x˜ Ô"Ø8A� Ð4Ñ5Ø—‘×'Ñ'¨ °9Õ=Ø—M‘M“O�÷>ð �K‰KŒMØ ‡x�x�Ô™hð �‰”ÐIÓJÕKØ �‰�(Ô ¡Q¬#¨a«&°FÒ*:Ü�k‰kœ!ÐDÓEÓFÐFÜ Ð +Ó ,€CÙä� Ó¤ q£Ñ)ˆØ ��7ˆ?Ðøôc�‰ò ؉FˆB“ð ûôJ×$Ñ$ò Ü×"Ñ"Ü× Ñ  Ó#ÜØNóôð ûô ×*Ñ*ò ÙÜ×&Ñ&¤x×'7Ñ'7¸Ó':Ó;Ð;ÙØ�ÿùð  ú÷B>Ñ=ûô4×(Ñ(ò Ü×&Ñ&Ü×+Ñ+¨AÓ.ÜØRóôðûô ×.Ñ.ò CÜ×&Ñ&¤z×'>Ñ'>¸qÓ'AÓBÐBûð Cú÷*>Ñ=ûð �K‰K�Mús—Ç WË W2Ï!4Z Ñ \0Ñ*ZÒB \0Ô\#Ô%\0×W/×.W/×2ZØ3X8Ø8ZÙ.ZÚZÚ ZÚ\ Ú*3[Û\ Û3(\Ü\ Ü \0Ü#\-Ü(\0Ü0]cóŽ—tj|«}|j«D�cgc]}|sŒ|j«‘Œ} }|j «} |r| j «| r| d} n |j } |j|¬«|jd«|jdd|j««|jd|j«z«|jdd|j|j«««|j| xr| d k7d d | «|jd d t|««|jdt| «z«t| «dkDr |jdt| d«z«|j!|j#t%j&t| «d ¬«¬«t(D](} t+| ||«} | €Œ|jd| z«Œ*|jdd|j-«j/««|jd«|j1«r8t3j4|| |||¬«}|D]\}}|j||¬«Œyt3j6|| |||¬«}|j!dj9|«¬«ycc}w)Nr©rÈs# HG changeset patch r=s # User %s s # Date %d %d r;s # %s rërês # Branch %s ónodes # Node ID %s s # Parent %s r r])rës# %s sdescrµry©rSr§r2)r)r&ÚbinnoderërÙrËÚreverserór¦r�r²rnrlÚ formatdateÚ condwriter rzr”Ú formatlistr"ÚmaplistÚ extraexportÚextraexportmaprÝÚrstripÚisplainrÚdiffuirr)r+rÈr•rÚ switch_parentr:r8rÙrírërËÚprevÚheaderidr†Ú chunkiterr“r£s r^Ú _exportsingler{s5€Ü �?‰?˜3Ó €DØ!$§¡¤Ó4¡˜A²!ˆq�v‰v�x €GÐ4Ø �Z‰Z‹\€FÙØ�‰ÔáØ�q‰z‰à�{‰{ˆà‡J�J�3€JÔØ‡H�HÐ &Ô'؇H�HˆW�n c§h¡h£jÔ1؇H�HÐ  §¡£Ñ +Ô,؇H�HˆW�n b§m¡m°C·H±H³JÓ&?Ô@؇L�LØÒ'�6˜ZÑ'¨Ð4DÀfôð‡H�HˆWÐ'¬¨T«Ô3؇H�HÐ ¤ T£Ñ *Ô+Ü ˆ7ƒ|�aÒØ �‰Ð"¤S¨°©£_Ñ4Ô5؇G�G�B—M‘M¤(×"2Ñ"2´3¸Ó"@Àw�MÓO€GÔP÷ ˆÜ Ñ)¨%°Ó5ˆØ Ñ Ø �H‰H�Y Ñ'Õ (ð ð ‡H�HˆW�g˜sŸ™Ó0×7Ñ7Ó9Ô:؇H�HˆU„Oà ‡z�z„|Ü—L‘L  t¨T°5¸xÔHˆ Û%‰LˆE�5Ø �H‰H�U %ˆHÕ (ñ&ô—J‘J˜t T¨4°¸XÔFˆ à �‰�S—X‘X˜iÓ(ˆÕ)ùòQ5s ¨K°Kc óÖ—t|d«D]Z\}}||} |jd«s|jjd|z«|j «t || |||||«Œ\y)z,Export changesets to stdout or a single filer ó.·sèø€Ð1©D S”3”s˜3“x—=©Dùs‚ r )r9r:r;rµN)rzÚmaxr+ÚsortdictrrCÚ setdefaultr˜rÚ maybereopenr0rwrœr)r+rÕÚbasefmÚ fntemplaterr8rr9r;Úfilemapr:rärÈr»r•s r^Ú_exportfntemplater*²sø€ô �‹I€EÜÑ1©DÓ1Ó1€HÜ�m‰m‹o€Gä  aÖ(‰ ˆˆsØ�3‰iˆÜØ � 5°Àô ˆð ×ј4 Ó$×+Ñ+¨U°C¨LÕ9ð )óˆÜ × "Ñ " 6¨4Ô 0°BØ �G‰G�L‰L˜ 4™Ô (Ø% dœm‘ ��sØ— ‘ ”ؘ3‘i�ÜØ˜#˜r 5¨-¸Àõñ,÷1Ð 0ñß 0Ð 0ús ÂAC7Ã7D có—t«}|D]6}||j«D]}|r ||«sŒ|j|«Œ Œ8tj||«}|D�cgc]}||f‘Œ}}tj ||«ycc}wr})rŠr�rŒr&rÚ prefetchfiles)r+rÕrÚallfilesräriÚ revmatchess r^Ú_prefetchchangedfilesr/Ìs~€Ü‹u€Hۈؘ‘I—O‘OÖ%ˆDÙ™E $�KØ— ‘ ˜TÕ"ñ&ðô × Ñ ˜t XÓ .€EÙ*.Ó/©$ 3�3˜’,¨$€JÐ/Ü ×ј$  Õ+ùò0sÁ Bc óh—t|||«|st|||d|||«yt|||||||«y)ašexport changesets as hg patches Args: repo: The repository from which we're exporting revisions. revs: A list of revisions to export as revision numbers. basefm: A formatter to which patches should be written. fntemplate: An optional string to use for generating patch file names. switch_parent: If True, show diffs against second parent when not nullid. Default is false, which always shows diff against p1. opts: diff options to use for generating the patch. match: If specified, only export changes to files matching this matcher. Returns: Nothing. Side Effect: "HG Changeset Patch" data is emitted to one of the following destinations: fntemplate specified: Each rev is written to a unique file named using the given template. Otherwise: All revs will be written to basefm. ó N)r/rr*)r+rÕr'r(rrSrs r^Úexportr2×sC€ô>˜$  eÔ,á ÜØ �$˜  ¨m¸TÀ5õ ô Ø �$˜  ¨M¸4Àõ r2c óÈ—t|||«t|dd«}tj|j|di«5}t |||||||«ddd«y#1swYyxYw)z*Export changesets to the given file streamrWr1sexportN)r/rrr0r)r+rÕrErrSrr»r•s r^Ú exportfiler4 sV€ä˜$  eÔ,ä �2�v˜|Ó ,€DÜ × Ñ ˜TŸW™W b¨)°RÔ 8¸BÜ�D˜$  D¨-¸¸uÔE÷ 9× 8Ñ 8ús ½AÁA!c óH—|�|jdd|«|jddt|j«««|j«}|j |dd|j t t|«d¬««|jd d |j««|j«}|�3|jd d |j t t|«dd ¬««|jdd|j|j«««|j«j«}|jdd«tjtj |«}|jdd|j#|dd ¬««|j%d«y)zdutility function to display obsolescence marker in a readable way To be used by debug function.Nsindexs%i sprednodes%s s succnodesr r]sflags%X s parentnodess{%s} ó, )rWÚsepr;s(%s) smetadatas{%s}s%r: %r)Úfmtr7ry)r²r ÚprednodeÚ succnodesrrÚmapr±Ú parentnodesrrlÚmetadatarñr¨r"ÚrapplyÚ maybebytestrÚ formatdictr�)r•ÚmarkerÚindexÚsuccsrëÚmetaÚsmetas r^Ú showmarkerrF sO€ð ÐØ �‰�˜6 5Ô)؇H�Hˆ[˜&¤# f§o¡oÓ&7Ó"8Ô9Ø × Ñ Ó €E؇L�LØ ØØØ � ‰ ”cœ#˜u“o¨Gˆ Ó4ô ð ‡H�HˆW�f˜fŸl™l›nÔ-Ø× Ñ Ó"€GØÐØ �‰Ø Ø Ø �M‰Mœ#œc 7Ó+°'¸uˆMÓ Eô ð ‡H�HˆW�h § ¡ ¨f¯k©k«mÓ <Ô=Ø �?‰?Ó × !Ñ !Ó #€D؇H�HˆW�dÔÜ �O‰OœH×1Ñ1°4Ó 8€E؇H�HØ�W˜bŸm™m¨E°yÀe˜mÓLôð‡H�HˆU…Or2có.—|jd|«} |j«}|j t d«|tj||j««fz«d|zS#t$rtjt d««‚wxYw)z;Find the tipmost changeset that matches the given date specsdate(%s)s revision matching date not foundsfound revision %d from %s s%d) rÕr#Ú ValueErrorrrbr rîr-Údatestrrl)r0r+rlÚmrevsräs r^ÚfinddaterK+ s“€à �I‰I�k 4Ó (€EðGØ�i‰i‹kˆð‡I�IÜ Ð (Ó)Ø ”× Ñ   c¡§¡Ó!1Ó2Ð 3ñ 4ôð �3‰;Ðøô òGÜ×ÑœqÐ!DÓEÓFÐFðGús ”A,Á,(Bc ó"‡‡—gŠˆˆfd„}g}|d} d} tj|«\} } | s| r!tj|| |j«} |j ‰d¬«Št j ‰|«} |j}t|j| t| j«ddd¬««D]ˆ}‰j|«}|s$|rŒ|| vsŒ|jj|«sŒ:| r| |«|j|«|js|rŒd|jt!d«||«zd¬«ŒŠt| j«D]º}| j#|«} t j$|‰«}|jj'||«}tj(||«}|j+d «r'‰j-|j.||||dfi|¤Ž«n&‰j-|j.||||dfi|¤Ž«Œ¼|j+d «s,| j/||«}‰j-ˆfd „|D««‰S#t0j2$r'|jt!d «||«z«Y�Œ5wxYw) NcóN•—‰j|«xs‰j||«Sr}©r˜Úbad©rdÚyrOrs €€r^r¦zadd..= óø€˜Ÿ™ A›Ò9¨%¯)©)°A°q«/Ð9r2T)Ú includeexactF)Úsubreposrör÷Úfulló adding %s sui.addremove.addedr§rTó#skipping missing subrepository: %s Údry_runc3óH•K—|]}|‰j«vsŒ|–—Œy­wr}©r�©rŒrÍrs €r^r�zadd..r óøèø€Ð=™h˜¨!¨u¯{©{«}Ò*<”1™hùóƒ"›")r&ÚcheckportabilityalertÚcasecollisionauditorr#Ú narrowmatchrìrír®r€rôr�r¢ršr˜r rîr rúÚ subdirmatcherÚreljoinÚsubdiruipathfnrar™rŒrÚ LookupError)r0r+rrÜrˆÚ explicitonlyrSÚbadfnÚnamesr1ÚccaÚabortr»rír#rÍr�ÚsubpathrúÚsubmatchÚ subprefixÚ subuipathfnÚrejectedrOs ` @r^rŒrŒ: sSù€Ø €Cä 9€EØ €EØ �‰:€DØ €CÜ×/Ñ/°Ó3�K€Eˆ4Ù ‘Ü×*Ñ*¨2¨u°d·m±mÓDˆà × Ñ ˜U°Ð Ó 6€EÜ× Ñ  ¨Ó.€HØ�}‰}€HôØ� ‰ Ø Ü˜DŸM™MÓ*ØØØð ó öˆð— ‘ ˜A“ˆÙ š ¨°$ª¸4¿9¹9×;LÑ;LÈQÕ;OÙÙ�A”Ø �L‰L˜ŒOØ�zŠz¢Ø— ‘ Ü�nÓ%©°« Ñ3Ð;Pðõðô&˜$Ÿ-™-Ö(ˆØ�h‰h�wÓˆð Ü×-Ñ-¨g°uÓ=ˆHØŸ ™ ×)Ñ)¨&°'Ó:ˆIÜ!×0Ñ0°¸(ÓCˆKØ�x‰x˜ Ô#Ø— ‘ Ø�C—G‘G˜B ¨)°[À%ÑPÈ4ÑPõð— ‘ Ø�C—G‘G˜B ¨)°[À$ÑOÈ$ÑOôøð)ð& �8‰8�IÔ Ø—8‘8˜E 6Ó*ˆØ � ‰ Ó=™hÓ=Ô=Ø €Jøô× Ñ ò Ø �I‰IÜÐ9Ó:¹XÀgÓ=NÑN÷ ð úsÅ-B&IÉ6JÊ Jcó—|j||<|jjd||jfz«|jd«D]9}||}|jD]#}|j |«j ||«Œ%Œ;y)Nsadding %s = %s sfilelog("path:.hgsub"))r¤r0rrÕrôrúÚ addwebdirpath)r+Ú serverpathÚwebconfr rÈrjs r^rprpv ss€ØŸ)™)€GˆJÑØ‡G�G‡M�MÐ%¨°T·Y±YÐ(?Ñ?Ô@à �Y‰YÐ0Ö 1ˆØ�1‰gˆØ—|”|ˆGØ �G‰G�GÓ × *Ñ *¨:°wÕ ?ñ$ñ2r2c óV‡‡‡—|r |rtjtd««‚gŠˆˆfd„}|d} g} |jt j ‰|«d¬«} t | j| jz| jz| jz«} |r!| D� cgc]} ‰j| «sŒ| ‘Œ} } t | j«D]¿}| j|«}t j|‰«}|jj!||«}t#j$||«} |j'|||||¬«\}}‰j)|D� cgc] } |dz| z‘Œ c} «| j)|D� cgc] } |dz| z‘Œ c} «ŒÁ|s¼‰j-«D]©} | |j.vsŒ|jj1| «rŒ.| | vsŒ3|jj3| «rK|j.j5| «|j.vrŒv|j7td«|| «z«‰j9| «Œ«|rõtd «}| ddD]â}|j;td «||«|fz«}|d k(ru|d k(rp|j=|«d D].\}}|j?d |tAjB|«fz«Œ0|j;td «||«|fz«}|d k(rŒp|dk(rŒ¨|d k(r| jE|«Œ¿|dk(r| jG|«}| |d…=n |dk(sŒân| D]G} |jHs‰j| «r|sŒ#|jtd«|| «zd¬«ŒI|sF| j'| |«Š‰j)ˆfd„‰D««| j)ˆfd„| D««‰| fScc} wcc} wcc} w#tj*$r'|jtd«||«z«Y�ŒWwxYw)Ns/cannot specify both --dry-run and --interactivecóN•—‰j|«xs‰j||«Sr}rNrPs €€r^r¦zforget..ˆ rRr2T©rrø)r‘rQrbrWs+not removing %s: file is already untracked s�[Ynsa?]$$ &Yes, forget this file$$ &No, skip this file$$ &Skip remaining files$$ Include &all remaining files$$ &? (display help)s forget %s %sér s%s - %s rr5éó removing %s óui.addremove.removedr§c3óH•K—|]}|‰j«vsŒ|–—Œy­wr}rZr[s €r^r�zforget..à r\r]c3ó,•K—|] }|‰vsŒ|–—Œ y­wr}r¥)rŒrÍrns €r^r�zforget..á søèø€Ð=¡˜A¨1°HÒ+<”a¡ùsƒ �)%rrbr rîrìrír®ròrórõrør�rôrúrar¢rbr&rcr¤r™rdr�r#rër®r—r»r˜Ú promptchoiceÚextractchoicesr²rÚlowerÚremoverBr )r0r+rrÜrˆrer‘rQrfr1Úforgotr7r¤rÍrjrúrkrlrmÚsubbadÚ subforgotÚ responsesr�r rFrÚfnindexrOrns ` @@r^r¤r¤€ sñú€ñ‘+Ü×ÑÜ Ð@Ó Aó ð ð €CÜ 9€EØ �‰:€DØ €Fà � ‰ œ(×+Ñ+¨E°5Ó9Àˆ ÓF€AÜ �A—J‘J §¡Ñ(¨1¯9©9Ñ4°q·w±wÑ>Ó ?€FÙÙ#Ó6™V˜ u§{¡{°1¥~’!˜VˆÐ6ä˜$Ÿ-™-Ö(ˆØ�h‰h�wÓˆÜ×)Ñ)¨'°5Ó9ˆØ—I‘I×%Ñ% f¨gÓ6ˆ Ü×,Ñ,¨W°hÓ?ˆ ð Ø #§ ¡ ØØØØØ'ð !+ó!Ñ ˆF�Ið �J‰J±FÓ;±F¨q˜ $™¨Ó*°FÑ;Ô <Ø �M‰M±yÓA±y°!˜7 T™>¨AÓ-°yÑAÕ Bð)ñ( Ø—‘–ˆAؘŸ ™ Ò%¨d¯i©i¯o©o¸aÕ.@ؘF’?Ø—y‘y×'Ñ'¨Ô*ð  Ÿ=™=×2Ñ2°1Ó5¸¿¹ÑFØ$ØŸ™Üð!?óñ' q›kñ *ôð—J‘J˜q•Mð#ñ&Üð $ó ˆ ð™q› ˆHØ—‘Ü�/Ó"¡h¨xÓ&8¸)Ð%DÑDóˆAð�AŠvؘ1’fØ "× 1Ñ 1°)Ó <¸QÔ ?™˜˜1ØŸ™ °´H·N±NÀ1Ó4EÐ0FÑ!FÕGð!@àŸ™Ü˜/Ó*©h°xÓ.@À)Ð-LÑLó�Að˜1“fð �AŠvØØ�a’Ø— ‘ ˜hÕ'Ø�a’Ø Ÿ,™, xÓ0�ؘ7™8Ð$ÙØ�a“Ùð)"ó,ˆØ �:Š:˜UŸ[™[¨œ^ª{Ø �I‰IÜÐ"Ó#¡h¨q£kÑ1Ð9Pð õ ðñ Ø—;‘;˜v vÓ.ˆØ � ‰ Ó=™hÓ=Ô=Ø� ‰ Ó=¡Ó=Ô=Ø �ˆ;Ðùòg7ùò<ùÚAøÜ× Ñ ò Ø �I‰IÜÐ9Ó:¹XÀgÓ=NÑN÷ ð ús<ÂOÂ5OÄ-(O.ÅO$ Å$O.Å:O) Æ O.Ï$ O.Ï.6P(Ð'P(c ó¤—d}|jxsddh|j«z}|j«rŒ|sŠg} |j|«D]Q} | j ||| «z«t | «dkDr%|j dj| ««| dd…=d}ŒS| r¾|j dj| ««n�|j|«D]‰} |j«|j|¬«|r5|| } |j dd | j«| j««|j| ¬ «|j||| «z«d}Œ‹t|j«D]�} t!j"| |«} t%j&| |«}|s+|j)| «st+| j-««sŒ\|j/| «} |j)| «xs|}|j1|| ||||«dk(rd}ŒŸ|S#t2j4$r&|j7t9d «|| «z«YŒÚwxYw) Nr ssizesflagsédr2rr s size flagss % 10d % 1s ©r rW)r ÚdatahintrÚmatchesr˜rzr²rrœr¦Úsizer±r”r�r®rôrìrar&rcr�r›r�rúÚ printfilesrrdrîr )r0rÈrKrˆr•r8rTÚretÚ needsfctxÚbufrÍÚfcrjrkrmrúÚrecurses r^r�r�å sý€Ø €Cà— ‘ ÒA˜w¨Ð1°B·K±K³MÑA€IØ ‡z�z„|™IðˆØ—‘˜Q–ˆAØ �J‰J�s™X a›[Ñ(Ô )Ü�3‹x˜#Š~Ø—‘˜Ÿ™ #›Ô'Øš�F؉Cð  ñ Ø �H‰H�S—X‘X˜c“]Õ #à—‘˜Q–ˆAØ �L‰LŒNØ �J‰J˜3ˆJÔ ÙØ˜‘V�Ø—‘˜¨¸¿¹» À2Ç8Á8Ã:ÔNØ �G‰G˜ˆGŒOØ �H‰H�S™8 A›;Ñ&Ô '؉Cð ô˜#Ÿ,™,Ö'ˆÜ×)Ñ)¨'°1Ó5ˆÜ×,Ñ,¨W°hÓ?ˆ Ù �q—w‘w˜wÔ'¬3¨x¯~©~Ó/?Õ+@Ø—'‘'˜'Ó"ˆCð ØŸ'™' 'Ó*Ò6¨h�à—N‘N 2 x°¸bÀ#ÀwÓOØòð�Cøð(ð$ €Jøô ×$Ñ$ò Ø— ‘ ÜÐ=Ó>Ù˜wÓ'ñ(öð úsÇ"0HÈ6IÉIc ó ‡ ‡!—d} |j|d¬«} | j| j| j| jf\} } }}|dŠ!| €g} d}nd}t ‰!j «}|jtd«t|«td«¬«}|D]³}tj||«}|jj||«}tj||«}|s+|j!|«st#|j%««sŒx|j'«‰!j)|«} |j+|||||||| «rd} Œµ|j3«t5j6|«}|j%«}|jtd «t|«td «¬«}|D]ÏŠ ˆ ˆ!fd „}|j'«‰ |vxs‰!j9‰ «}‰ |j:vs|s‰ d k(s |«s‰ |vrŒQ|jj=‰ «rb|jj?‰ «r$| j1td«|‰ «z«n#| j1td«|‰ «z«d} ŒÑ|j3«|r | |z|z| z}�n`|r–|}| | z|z}|jtd«t|«td «¬«}|D]GŠ |j'«|j@s‰ |vr#| j1td«|‰ «z«d} ŒI|j3«nÈ||z}|jtd«t| «t| «ztd «¬«}| D]7Š |j'«| j1td«|‰ «z«d} Œ9| D]7Š |j'«| j1td«|‰ «z«d} Œ9|j3«t |«}|jtd «t|«td «¬«}|D]UŠ |j@s|j!‰ «rŒ!|j'«|jtd«|‰ «zd¬«ŒW|j3«|su|jC«5|sF|D]AŠ ‰ | vrŒ|jDjGdd«}|jjI‰ d|¬«ŒC|djK|«ddd«|r| D]}|jM|«Œ| S#t,j.$r'| j1td «||«z«Y�ŒÝwxYw#1swYŒbxYw)NrTruFs searchingrN)r9Úunitr rWsdeletingsfilescóT•—‰jD]}‰j|dz«sŒyy)NrbTF)rôr²)rjrÍr1s €€r^Ú insubrepozremove..insubrepoJ s)ø€ØŸ=œ=�Ø—<‘< ¨$¡Õ/Ùð)ðr2rÛs"not removing %s: no tracked files s#not removing %s: file is untracked sskippings#not removing %s: file still exists s<not removing %s: file is modified (use -f to force removal) sLnot removing %s: file has been marked for add (use 'hg forget' to undo add) rxryr§rÄr“)Ú ignoremissingr))'rîròrórõrør®rôÚ makeprogressr rzrìrar¢rbr&rcr�r›r�Ú incrementrúÚ removefilesrrdr˜Úcompleter ÚdirsrÝr#r®rër rÐr0rrr£r¤r»)"r0r+rKrÜrˆr†rÓrTr‘ÚwarningsrŒr7ròrórõrør»r4ÚprogressrjrkrlrmrúÚ deleteddirsr�r”rër¾Ú remainingr)ÚwarningrÍr1s" @@r^rr s=ù€ð €CØ � ‰ ˜! 4ˆ Ó(€AØ&'§j¡j°!·'±'¸1¿9¹9ÀaÇgÁgÐ&MÑ#€Hˆe�W˜eà �‰:€DàÐØˆØ‰àˆä �$—-‘-Ó €DØ�‰Ü ˆ,‹œs 4›y¬q°«~ðó€HóˆÜ×)Ñ)¨'°1Ó5ˆØ—I‘I×%Ñ% f¨gÓ6ˆ Ü×,Ñ,¨W°hÓ?ˆ Ù �q—w‘w˜wÔ'¬3¨x¯~©~Ó/?Õ+@Ø × Ñ Ô Ø—(‘(˜7Ó#ˆCð Ø—?‘?ØØØØØØØØô ð�Cøð%ð0 ×ÑÔô—-‘- Ó(€KØ �G‰G‹I€EØ�‰Ü ˆ+‹œc %›j¬q°«{ðó€Hóˆõ ð ×ÑÔØ�[Ð Ò2 D§K¡K°£NˆØ �— ‘ Ñ ¡¨!¨tª)±y´{ÀaÈ4ÁiØ à �9‰9× Ñ ˜AÔ Ø�y‰y�‰˜qÔ!Ø—‘ÜÐ<Ó=ÁÈà ÑKõð—‘ÜÐ=Ó>ÁÈ!ÃÑLôð‰ð/ð0 ×ÑÔá Ø˜'Ñ! EÑ)¨EÑ1ŠÙ ؈ؘuÑ$ uÑ,ˆ Ø—?‘?Ü ˆk‹N¤# i£.´q¸³{ð#ó ˆóˆAØ × Ñ Ô Ø�zŠz˜a 5™jØ—‘ÜÐ=Ó>ÁÈ!ÃÑLôð‰Cð ð ×ÑÕà˜‰ˆØ—?‘?Ü ˆk‹N¤3 x£=´3°u³:Ñ#=ÄQÀxÃ[ð#ó ˆóˆAØ × Ñ Ô Ø �O‰OÜð,óñ˜1“+ñ ô ð‰CðóˆAØ × Ñ Ô Ø �O‰OÜð8óñ˜1“+ñ ô ð‰Cðð ×ÑÔä �$‹<€DØ�‰Ü ˆ+‹œc $›i¬a°«kðó€HóˆØ �:Š:˜QŸW™W Q�ZØ × Ñ Ô Ø �I‰IÜÐ"Ó#¡h¨q£kÑ1Ð9Pð õ ðð  ×ÑÔá Ø �Z‰Z�\ÙÛ�AؘE‘zØ Ø ŸG™G×.Ñ.Ø'Ð);ó�Eð—I‘I×(Ñ(¨¸$ÀeÐ(ÕLð ð �‰J× Ñ ˜dÔ #÷ñ ÛˆGØ �G‰G�GÕ ð ð €Jøô]×$Ñ$ò Ø—‘ÜÐ=Ó>Ù˜wÓ'ñ(÷ð ú÷~ˆ\úsÄ9UÓAVÕ6U=Õ<U=ÖV cóL—|j« xsd|j«vS)Nódata)rˆ)r•s r^Ú_catfmtneedsdatar¢¬ s!€Ø�{‰{‹}Ð Ò 8 ¨2¯;©;«=Ð 8Ð8r2có—d}t|«r5||j«}|r |j«j||«}|j «|j |¬«|j dd|«|j|¬«y)z¡Hook for adding data to the formatter used by ``hg cat``. Extensions (e.g., lfs) can wrap this to inject keywords/data, but must call this method first.r2r r¡s%sr‡N)r¢r”r+Ú wwritedatarœr¦r²)r•rÈrâr Údecoder”s r^Ú_updatecatformatterr¦° sq€ð €DÜ˜ÔØ�4‰y�~‰~ÓˆÙ Ø—8‘8“:×(Ñ(¨¨tÓ4ˆD؇L�L„N؇J�J�3€JÔØ‡H�HˆW�e˜TÔ"؇G�G�€GÕr2c 󿇇‡‡‡‡—d}ˆˆˆˆˆˆfd„} t‰j««dk(r”‰j«s„‰j«d} |j} ‰j «} | rR| | j | «dr;t ‰«r'tj|‰j«‰fg«| | «yt ‰«r'tj|‰j«‰fg«‰j‰«D] } | | «d}Œtj|d¬«}t‰j«D]b}‰j|«} t!j"|‰«}t$j&j)‰|«}|j*|‰‰|fi‰¤Žsd}Œd|S#t$rYŒðwxYw#t,j.$r&|j1t3d«||«z«YŒ®wxYw)Nr c ó|•—d}‰r_t‰‰tjj‰|«¬«} tjtjj |««tj‰|«5}t|‰‰|‰jd««ddd«y#t $rYŒIwxYw#1swYyxYw)N)r<r¥) rCrr rrœrìr*rr&r¦ra) r r�r•r'rÈr(rârSrÜs €€€€€€r^r²zcat..writeÆ s™ø€ØˆÙ Ü#Ø�Z¬"¯'©'¯,©,°v¸tÓ*DôˆHð Ü— ‘ œBŸG™GŸO™O¨HÓ5Ô6ô× "Ñ " 6¨8Ô 4¸Ü   C¨°$¸¿¹ÀÓ8JÔ K÷5Ð 4øôò Ùð úç 4Ð 4ús³2B#Á;B2Â# B/Â.B/Â2B;rTr|rW)rzr�ÚanypatsrgÚ manifestnoder6r¢r&r,rär7r€rÓr®rôrúrìrarr rÚcatrÚRepoLookupErrorrîr )r0r+rÈrâr'r(rÜrSr;r²riÚmflÚmfnoder„rˆrjrúrkrls `````` r^r«r«à sÌý€Ø €C÷ Lñ Lô  ˆ7�=‰=‹?Ó˜qÒ ¨¯©Ô):Ø�}‰}‹˜qÑ!ˆØ×шØ×!Ñ!Ó#ˆð Ù˜#˜f™+×*Ñ*¨4Ó0°Ò3Ü# FÔ+Ü×)Ñ)¨$°#·'±'³)¸WÐ1EÐ0FÔGÙ�d” Øô˜ÔÜ×јd c§g¡g£i°Ð%9Ð$:Ô;à�x‰x˜Ö ˆÙ ˆcŒ ؉ð!ô×"Ñ" 4¸TÔB€Hܘ#Ÿ,™,Ö'ˆØ�g‰g�gÓˆð Ü×-Ñ-¨g°wÓ?ˆHÜŸ™Ÿ ™  V¨WÓ5ˆIØ�3—7‘7ØØØØñ ð ò ð�øð(ð$ €Jøô;ò Ù ð ûô0×$Ñ$ò Ø �I‰IÜÐ9Ó:¹XÀgÓ=NÑNö ð ús&Á/AF(ÅAF7Æ( F4Æ3F4Æ76G0Ç/G0có.—eZdZdZd„Zd„Zd„Zd„Zd„Zy)Ú_AddRemoveContexta¢ a small (hacky) context to deal with lazy opening of context This is to be used in the `commit` function right below. This deals with lazily open a `changing_files` context inside a `transaction` that span the full commit operation. We need : - a `changing_files` context to wrap the dirstate change within the "addremove" operation, - a transaction to make sure these change are not written right after the addremove, but when the commit operation succeed. However it get complicated because: - opening a transaction "this early" shuffle hooks order, especially the `precommit` one happening after the `pretxtopen` one which I am not too enthusiastic about. - the `mq` extensions + the `record` extension stacks many layers of call to implement `qrefresh --interactive` and this result with `mq` calling a `strip` in the middle of this function. Which prevent the existence of transaction wrapping all of its function code. (however, `qrefresh` never call the `addremove` bits. - the largefile extensions (and maybe other extensions?) wraps `addremove` so slicing `addremove` in smaller bits is a complex endeavour. So I eventually took a this shortcut that open the transaction if we actually needs it, not disturbing much of the rest of the code. It will result in some hooks order change for `hg commit --addremove`, however it seems a corner case enough to ignore that for now (hopefully). Notes that None of the above problems seems insurmountable, however I have been fighting with this specific piece of code for a couple of day already and I need a solution to keep moving forward on the bigger work around `changing_files` context that is being introduced at the same time as this hack. Each problem seems to have a solution: - the hook order issue could be solved by refactoring the many-layer stack that currently composes a commit and calling them earlier, - the mq issue could be solved by refactoring `mq` so that the final strip is done after transaction closure. Be warned that the mq code is quite antic however. - large-file could be reworked in parallel of the `addremove` to be friendlier to this. However each of these tasks are too much a diversion right now. In addition they will be much easier to undertake when the `changing_files` dust has settled.có<—||_d|_d|_d|_yr})Ú_repoÚ _transactionÚ_dirstate_contextÚ_state)r\r+s r^r^z_AddRemoveContext.__init__2 s €ØˆŒ Ø ˆÔØ!%ˆÔ؈� r2có0—|j�J‚d|_|S)NT)rµrJs r^rRz_AddRemoveContext.__enter__8 s€Ø�{‰{Ð"Ð"Ð"؈Œ ؈ r2cób—|j€J‚|j€:|jjd«|_|jj «|j €O|jj j|j«|_|j j «yy)aSopen a `transaction` and `changing_files` context Call this when you know that change to the dirstate will be needed and we need to open the transaction early This will also open the dirstate `changing_files` context, so you should call `close_dirstate_context` when the distate changes are done. Nócommit)rµr³r²rÒrRr´r#Úchanging_filesrJs r^Úopen_transactionz"_AddRemoveContext.open_transaction= s’€ð�{‰{Ð&Ð&Ð&Ø × Ñ Ð $Ø $§ ¡ × 6Ñ 6°yÓ AˆDÔ Ø × Ñ × 'Ñ 'Ô )Ø × !Ñ !Ð )Ø%)§Z¡Z×%8Ñ%8×%GÑ%GØ— ‘ ó&ˆDÔ "ð × "Ñ "× ,Ñ ,Õ .ð *r2cóf—|j�%|jjddd«d|_yy)z close the change_files if any Call this after the (potential) `open_transaction` call to close the (potential) changing_files context. N)r´rWrJs r^Úclose_dirstate_contextz(_AddRemoveContext.close_dirstate_contextP s5€ð × !Ñ !Ð -Ø × "Ñ "× +Ñ +¨D°$¸Ô =Ø%)ˆDÕ "ð .r2cóš—|j�|jj|Ž|j�|jj|Žyyr})r´rWr³)r\rTs r^rWz_AddRemoveContext.__exit__Z sK€Ø × !Ñ !Ð -Ø +ˆD× "Ñ "× +Ñ +¨TÑ 2Ø × Ñ Ð (Ø &ˆD× Ñ × &Ñ &¨Ò -ð )r2N) rqrrrsrtr^rRrºr¼rWr¥r2r^r°r° s!„ñ/òbò ò /ò&*ó.r2r°c óì—|jd«}|rtj|«|d<|j«5|j «5t ||«}t j|d||«}t|«5}|jd«rwt j||«} t j|| ¬«} t j||d| ||j¬«} td«} | dk7rtj| «‚|j!«||||||«cddd«cddd«cddd«S#1swYnxYw ddd«n #1swYnxYwddd«y#1swYyxYw) z5commit the specified files or all outstanding changesr;Nó addremover|r2)Úopen_tró5failed to mark all new/missing files as added/removedr)rar-Ú parsedaterÐrÑrþr&rr°r©rÓÚ addremoverºr rrür¼) r0r+r-r0rSrlr,rârFÚrelativerˆr rKs r^rËrËa s0€à �8‰8�GÓ €DÙ Ü ×*Ñ*¨4Ó0ˆˆW‰ à �‰��t—y‘y•{ܘR Ó&ˆÜ—-‘-  T¡ ¨D°$Ó7ˆä ˜tÔ $¨ð�x‰x˜ Ô%Ü"Ÿ?™?¨4°Ó6�Ü"×.Ñ.ØØ(0ô�ô×%Ñ%ØØØØØØ×.Ñ.ô �ôÐNÓO�ؘ’6ÜŸ+™+ a›.Ð(Ø × $Ñ $Ô &Ù˜b $¨°¸$Ó?÷+%Ð $÷ #�{�‰÷%Ð $úÐ $÷ #—{‘{ú��‰úsB¼E*Á 2EÁ?B$D?Ä# EÄ, E*Ä?E ÅEÅ E*ÅE ÅE*Å*E3có—||j«vrj|j|«}||j«vrF|j|«}|j|« xr!|j«|j«k(Sy||j«vS©NF)ÚmanifestÚfilectxÚcmpr±)rÍÚctx1Úctx2rºÚbs r^r¯r¯ƒ sr€ØˆD�M‰M‹OÑØ �L‰L˜‹OˆØ �— ‘ “Ñ Ø— ‘ ˜Q“ˆAØ—u‘u˜Q“x�<Ò: A§G¡G£I°·±³Ñ$:Ð :àà˜Ÿ ™ ›Ð'Ð'r2cól‡‡'‡(‡)‡*—ddlmŠ'tj|tj«r|j «|j td«‰z«‰j«}|j«5|j«5|jd«5|dŠ*|j«}|j‰j««|j‰*j««t||«}t!j"|«}‰j%«}|j'd«r$t)j*|j'd««}|j'd«xs‰j-«} t/‰j1««dkDrS|j3‰«} t5| j6«t5| j8«zt5| j:«z} nt5‰j=««} t?j@‰*||«} t?jB||«} t?jD|| ¬«}|j'd«ra|jFjI|«5t?jJ|| d ||«d k7r td «}tMjN|«‚ ddd«d ‰*vsd ‰vrBtQjR|‰*‰*jT| «\}}}|rJ‚|rtQjV||«tXjZj]|«}t_j`|«‰*j=«D�chc] }| |«sŒ |’Œc}Š)t/‰)«d kD}|jbjed d«dk7}|s|r”tgjh|‰*«Š(‰jk«r3‰(jtgjh‰jk«‰*««| j‰)«| D�cgc]}|‰)vs tm|‰*|«s|‘Œ} }ˆ'ˆ(ˆ)ˆˆ*fd„}n$|j td«‰|fz«ˆfd„}to||«}tq‰d«}|s)‰js«}| xs|j'd«dv}n|j'd«du}tu||¬«}|j«}‰jw«|d<‰'jy||j{«‰jk«j{«g|| || |||¬« }t}j~|js««}|sy|‰js«k(rf| ‰j-«k(rS|‰j%«k(s|r>|‰j«k(r+‰j{«cddd«cddd«cddd«Sd}|j'd«rt€j‚}n!|j'd«rt€j„}|j‡|«} |j‰«|jFj‹|«5|j�| |jŽ«|jF}!t5‰*j7«‰*j9«z«‰)z}"|"D]}|!j‘|ddd¬«Œt5‰*j;««‰)z}#|#D]}|!j‘|dd¬«Œ ddd«‰j{«| fi}$d}%|j'd«rdt“j”|d«i}%|j—d d!«}&t?j˜||$d|%d||&¬"«ddd«ddd«ddd« S#1swY�Œ½xYwcc}wcc}w#1swYŒ¨xYw#1swYŒ>xYw#1swYŒBxYw#1swY SxYw)#Nr rÄsamending changeset %s óamendr;r=r|r¿r2rrÁs.hgsubrÄscopies.read-froms filelog-onlyc ó2•— |‰vr|‰ j«vry‰ |}n‰ j|«}|j«}‰j|||j «|j «d|vd|v‰j |«¬«}|S#t$rYywxYw)Nr8óx)rÞÚisexecÚ copysource)rôrÈr±Ú memfilectxr r”rar7) r+Úctx_r Úfctxr±Úmctxr¦ÚcopiedÚ filestoamendÚoldr1s €€€€€r^rÉzamend..filectxfnù s¥ø€ð ð ˜|Ñ+à 4§<¡<£>Ñ1Ø#'Ø# D™z™à"Ÿ{™{¨4Ó0˜Ø ŸJ™J›L�EØ"×-Ñ-ØØØŸ ™ › ØŸ ™ › Ø# u˜}Ø# u˜}Ø#)§:¡:¨dÓ#3ð.ó�Dð �KøÜò Ùð úsƒB šA/B  BÂBscopying changeset %s to %s cóF•— ‰j|«S#t$rYywxYwr})rÈr7)r+rÔr rÙs €r^rÉzamend..filectxfn s)ø€ð ØŸ;™; tÓ,Ð,øÜò Ùð ús ƒ” Ÿ s commit.amendsedit©TNT)rrs amend_source)rër-r�rÉrnrlrÊrïrîsdraftråF)rærçsnoterps backup-bundle)r=rÍÚ targetphaseÚbackup)MrØr¦rÚ isenabledÚcreatemarkersoptrsrwr rÚrÐrÑrÒrñrŽrÊrur"rPrlrar-rÂrnrzrërîrŠròrórôr�r&rr©rÓr#r¹rÃrrür(rùÚ_statusÚ writestater¬rrrÚcheckunresolvedr0rÆrÚ pathcopiesrÛr¯rþrrÝrr rÜrÙrÚ stripdescr!ÚsecretÚdraftrÞÚresetr'ròrór(rÚ fromlocalrrrß)+r0r+rÙrÊr0rSÚbasertrlrnrhr�rârÄrˆrKr4r5Ú newsubstateÚmsrÍrØÚchangeset_copiesrÉr,rÚdoeditrïÚ pureextraÚnewÚnewdescÚ commitphaserèr#Ú normalfilesÚ removedfilesr'Ú obsmetadatarÝr¦r×rØr1s+ ` @@@@r^Úamendrõ� seü€åô×ј$¤× 9Ñ 9Ô:Ø � ‰ Œ à‡G�GŒAÐ(Ó )¨CÑ /Ô0Ø �6‰6‹8€Dà �‰��t—y‘y•{ D×$4Ñ$4°XÕ$>ð�D‰zˆð— ‘ “ ˆð � ‰ �S—Y‘Y“[Ô!ð � ‰ �T—Z‘Z“\Ô"ô/¨r°4Ó8ˆ Ü×#Ñ# DÓ)ˆà�x‰x‹zˆØ �8‰8�GÔ Ü×%Ñ% d§h¡h¨wÓ&7Ó8ˆDØ�x‰x˜Ó Ò. C§H¡H£Jˆä ˆs�{‰{‹}Ó  Ò !𗑘SÓ!ˆBܘŸ ™ Ó$¤s¨2¯8©8£}Ñ4´s¸2¿:¹:³ÑF‰E䘟 ™ › Ó$ˆEô—-‘-  d¨DÓ1ˆÜ—?‘? 4¨Ó.ˆÜ×&Ñ& tÀÔJˆØ �8‰8�LÔ !Ø—‘×-Ñ-¨dÕ3Ü×$Ñ$ T¨7°C¸À4ÓHÈAÒMÜØPó�Aô Ÿ+™+ a›.Ð(ð N÷4ð ˜Ñ   ¨SÑ 0Ü,7×,AÑ,AØ�D˜$Ÿ,™,¨ó-Ñ )ˆD�*˜kñ"Ð !�>ÙÜ×&Ñ& t¨[Ô9ä × %Ñ %× *Ñ *¨4Ó 0ˆÜ×!Ñ! "Ô%à#'§:¡:¤<Ó>¡<˜a±7¸1µ:š <Ñ>ˆ ä�lÓ# aÑ'ˆà �G‰G�N‰N˜?Ð,?Ó @Øñ ð ñ Ñ&ä×&Ñ& t¨TÓ2ˆFØ�v‰vŒxØ— ‘ œf×/Ñ/°·±³¸$Ó?Ô@ð �L‰L˜Ô &ñóá�Aؘ\Ñ)´¸!¸TÀ4Ô1HòØð ð÷  ñ ð: �G‰G”AÐ5Ó6¸#¸t¸ÑDÔ Eô ô˜R Ó&ˆä   oÓ6ˆáØ—o‘oÓ'ˆGð!�[ÒE D§H¡H¨WÓ$5¸Ð$E‰Fð—X‘X˜gÓ&¨$Ð.ˆFÜ  f°xÔ@ˆà—J‘J“Lˆ Ø!$§¡£ˆˆoÑà�n‰nØ Ø—Y‘Y“[ #§&¡&£(§-¡-£/Ð2ØØØØØØØðó  ˆô×%Ñ% c§o¡oÓ&7Ó8ˆáؘ3Ÿ?™?Ó,Ò,ؘŸ™› Ò"ؘŸ™›Ò#¡}ؘSŸY™Y›[Ò(ð —8‘8“:÷c%?Ð$>—{�{�‰ðfˆ Ø �8‰8�IÔ Ü Ÿ-™-‰KØ �X‰X�hÔ Ü Ÿ,™,ˆKØ—‘˜sÓ#ˆØ �‰Œ à �]‰]× +Ñ +¨DÕ 1à �O‰O˜E 4§;¡;Ô /ð—}‘}ˆHô ˜dŸm™m›o°· ± ³ Ñ<Ó=À ÑLˆKÛ �Ø×$Ñ$Ø $°4Èð%õð!ô˜tŸ|™|›~Ó.°Ñ=ˆLÛ!�Ø×$Ñ$ Q°5ÀUÐ$ÕKñ"÷12ð6—8‘8“: ˜xÐ(ˆØˆ Ø �8‰8�GÔ Ø"¤H×$6Ñ$6°t¸G±}Ó$EÐFˆKØ—‘˜zÐ+;Ó<ˆÜ×ÑØ Ø Ø Ø ØØ#Øõ ÷w%?—{�ðJ €L÷u4Ñ3üò,?ùò.÷F2Ð 1ú÷w%?Ð$>ú—{�{ú�ðJ €Lús£Á=^)Â^ G^É5=]. Ê3B^Í ]; Í]; ÍB"^Ï?^ ÐE>^Ö ^Ö ^)Ö3B^Ø4B)^ ÛA6^Ý^Ý^)Ý.]8 Ý3^Þ^ Þ ^Þ^ Þ^Þ^& Þ"^)Þ)^3cób—|j«r|j«St||||d¬«S)NT)rÚunchangedmessagedetection)rÝr )r+rÈr4rs r^rrƒ s1€Ø ‡�ÔØ�‰Ó Ð Ü Ø ˆc�4 (Àdô ðr2c ó|—|s td«}|jd«D�cgc]}|sŒ|‘Œ }}|jdd«d} |rRdj|«} |jj d| «rt ||||| «x} } n!|j«|rŒRt||||«} tj«} tj|j«|j«} |jj!| «| xr| j#«xr |j}|jj%| |j'«|j)«|||j*d¬«}|}t-j.t0|t,j2¬«}|r|d|j5«}t-j6d d |«}tj| «|r||«}|j9«st;j<td ««‚|r#|| k(rt;j<td ««‚|Scc}w) Ns$Leave message empty to abort commit.rÛrs changesetócommittemplater¸)rÚpendingrárà)r±s(?m)^HG:.*( |$)r2sempty commit messagescommit message unchanged)r r—Úinsertrr0rÆÚbuildcommittemplater¨Úbuildcommittextrr¥rÚchdirr¤rôr#r²Ú writependingrrnrÊr ÚreÚsearchÚ _linebelowÚ MULTILINErrúrìrrb)r+rÈr4rrrr÷rÁÚformsÚ templatetextÚrefÚ committextÚolddirÚtrrúÚ editortextr-Ú stripbelows r^r r ‹ sñ€ñ ÜÐ<Ó=ˆà Ÿ™ tÔ,Ó 2Ñ,�1²ŠQÐ,€EÐ 2Ø ‡L�L��LÔ!Ø€LÙ Ø�i‰i˜ÓˆØ �7‰7�>‰>Ð+¨SÔ 1Ü(;Ø�c˜4 ¨3ó)ð ˆL˜:ð Ø � ‰ Œ ò ô% T¨3°°hÓ?ˆ ô�_‰_Ó €F܇H�HˆT�Y‰YÔð × Ñ Ó "€B؇M�M×Ñ˜ÔØÒ4�R—_‘_Ó&Ò4¨4¯9©9€Gà—‘—‘ØØ �‰‹ Ø � ‰ ‹ ØØØ—‘Øðó€Jð €Dô—‘œ: t´2·<±<Ô@€JÙØÐ(�j×&Ñ&Ó(Ð)ˆä �6‰6Ð% s¨DÓ 1€D܇H�HˆVÔáÙ˜$ÓˆØ �:‰:Œ<Ü×ÑœqÐ!8Ó9Ó:Ð:Ù  Z°<Ò%?Ü×ÑœqÐ!<Ó=Ó>Ð>à €Kùòe 3s ¡H9©H9cój—|j}tj|«}tj|||«}|j j jd„|jjd«D««|sd}|j«|j||¬«|j«S)Nc3óPK—|]\}}|tj|«f–—Œ y­wr})r*Ú unquotestring)rŒÚkÚvs r^r�z&buildcommittemplate..Ð s,èø€ðá:‰DˆAˆqð ŒI× #Ñ # AÓ &Ô'Ù:ùs‚$&rùr2)r) r0rÚreference_templatespecrÚchangesettemplaterrÚcacherŽÚ configitemsÚ pushbufferÚshowÚ popbuffer)r+rÈr4rrr0r,rs r^rürüÌ s‘€Ø �‰€BÜ × +Ñ +¨CÓ 0€DÜ×%Ñ% b¨$°Ó5€A؇C�C‡I�I×Ññà—G‘G×'Ñ'Ð(9Ô:óôñ ؈à‡M�M„O؇F�Fˆ3˜€FÔ"Ø �<‰<‹>Ðr2cót—dj|jd«D�cgc] }|sŒd|z‘Œ c}«Scc}w)NrysHG: %s)rr—)rÎrºs r^ÚhgprefixrÝ s4€Ø �:‰:¨c¯i©i¸Ô.>ÓDÑ.>¨Â!�y 1“}Ð.>ÑDÓ EÐEùÒDsŸ5§5c óâ—g}|j«|j«|j«}}}|j«r|j |j««|j d«|j d«|j t t d«««|j t |««|j d«|j t t d«|j«z««|j«r#|j t t d«««|j«r4|j t t d«|j«z««tj|«r0|j t t d«|jz««|j|D�cgc]}t t d«|z«‘Œc}«|j|D� cgc]} t t d «| z«‘Œc} «|j|D� cgc]} t t d «| z«‘Œc} «|j|D� cgc]} t t d «| z«‘Œc} «|s'|s%|s#|j t t d «««|j d«d j|«Scc}wcc} wcc} wcc} w)Nr2s>Enter commit message. Lines beginning with 'HG:' are removed.sHG: --suser: %ss branch merges branch '%s's bookmark '%s's subrepo %ssadded %ss changed %ss removed %ssno files changedry)ròrórôrÝr˜rr rnrÛrËrÚisactivewdirparentÚ_activebookmarkr™r) r+rÈr4rÚedittextròrórôr7rÍs r^rýrýá s#€Ø€HØ"Ÿ|™|›~¨s¯y©y«{¸C¿K¹K»M�Wˆe€HØ ‡�ÔØ�‰˜Ÿ™Ó)Ô*Ø ‡O�O�CÔØ ‡O�O�CÔØ ‡O�OÜÜ ð=ó ó ôð ‡O�O”H˜XÓ&Ô'Ø ‡O�O�IÔØ ‡O�O”HœQ˜{›^¨c¯h©h«jÑ8Ó9Ô:Ø ‡v�v„xØ�‰œ¤ ?Ó!3Ó4Ô5Ø ‡z�z„|Ø�‰œ¤ >Ó!2°S·Z±Z³\Ñ!AÓBÔCÜ×#Ñ# DÔ)Ø�‰œ¤Ð#3Ó!4°t×7KÑ7KÑ!KÓLÔMØ ‡O�O¹TÓB¹T¸”Xœa  Ó.°Ñ2Õ3¸TÑBÔCØ ‡O�O¹5ÓA¹5°a”Xœa  ›n¨qÑ0Õ1¸5ÑAÔBØ ‡O�O¹XÓF¹X¸”Xœa  Ó.°Ñ2Õ3¸XÑFÔGØ ‡O�O¹WÓE¹W¸”Xœa  Ó.°Ñ2Õ3¸WÑEÔFÙ ™©'Ø�‰œ¤Ð#6Ó!7Ó8Ô9Ø ‡O�O�CÔà �:‰:�hÓ ÐùòCùÚAùÚFùÚEsÇKÈK"È9K'É-K,c󚇇—|€i}||}|j«}|�B|jj«|k(r%|jj t d««nP|j d«s?‰r=|‰vr9tˆˆfd„|D««s$|jjt d««|j d«sa|D]\}|j«sŒ|j«‰k(sŒ(|jjt d«|j«z«Œ^|jjrF|jjt d«|j«|j«fz«y|jjr8|jjt d«|j«|fz«yy)Ns3warning: commit already existed in the repository! rÎc3ól•K—|]+}|j«‰vxr|j«‰k(–—Œ-y­wr})rÙrË)rŒríÚbheadsrËs €€r^r�zcommitstatus.. s3øèø€ð ÙAH¸AˆA�F‰F‹H˜Ð Ò 7 1§8¡8£:°Ñ#7Ó 7Áùsƒ14screated new head s close_branchs reopening closed branch head %d scommitted changeset %d:%s )rërÚtipr0r»r rar›rîÚ closesbranchrËräÚ debugflagr²r r ) r+rÙrËr r!rSrÈrër s `` r^Ú commitstatusr$ s_ù€Ø €|ØˆØ ˆt‰*€CØ�k‰k‹m€Gà €˜4Ÿ>™>×-Ñ-Ó/°3Ò6ð �‰� ‰ ”QÐNÓOÕPà �H‰H�XÔ Ù Ø ˜Ñ Üô ÙAHó ô ð �‰�‰”qÐ.Ó/Ô0ð< �8‰8�OÔ $ÛˆAØ�~‰~Õ A§H¡H£J°&Ó$8Ø—‘—‘ÜÐ:Ó;¸a¿e¹e»gÑEõðð  ‡w�w×ÒØ �‰� ‰ Ü Ð,Ó -°·±³¸C¿G¹G»IÐ0FÑ Fõ ð �‰�ŠØ �‰� ‰ ”aÐ6Ó7¸3¿7¹7»9ÀcÐ:JÑJÕKð r2cóV—|jtj|d||«¬«S)NrÑ)rîr&r)r+r0rSs r^Úpostcommitstatusr&D s$€Ø �;‰;œWŸ]™]¨4°©:°t¸TÓBˆ;Ó CÐCr2cóö‡‡‡=‡>‡?—tj|«}|jj«\}}‰j «}‰j «}||k(r|}iŠ>t j|d¬«Š?|j«5|jj|«5|jdd«} |d} t j| ||«Š=tˆ=fd„| jD««} ‰=j«s¹tj ‰=d„«} | j#| «D]} ‰=j%| «‰>| <Œˆˆ>ˆˆ?fd„}‰j#tj ‰=|««D]} | ‰>vsŒ‰=j%| «‰>| <Œt j&|‰>«Š=|j)|‰=ddd¬«}nK|j)|‰=¬ «}|D]}|D]} ‰=j%| «‰>| <ŒŒt j&|‰>«Š=t+|j,«}t+|j.«}t+|j0«}t+|j2«}t+|j4«}|j7|j8«t+|j:«}t+«}||k(r*|}|}|}||z}t+«t+«t+«}}}n‡|j)|‰=¬ «}t+|j,«}t+|j.«}t+|j0«}||z}|||z z}||z}||z}||z}||z}||z}|||zz}||z}|}||j<k7r2t+|«}|D]}||vsŒ|j?|«Œ||z}||z}|D]a}|jjA|«}|sŒ!|‰>vsŒ&|jjC|«j0sŒL|jE|«d‰>|<Œct+|«} |D]}||vsŒ| j?|«Œ|| z }!t+«}|D]9} |jjC| «j.rŒ)|jE| «Œ;||z}| D]9} |jjC| «j.sŒ)|jE| «Œ;| |z} t+«}"|D]D} |jG| «}#tHjJjM|#«sŒ4|"jE| «ŒF||"z}t+«}$|D]D} |jG| «}#tHjJjM|#«sŒ4|$jE| «ŒF||$z}gtOd «fgtOd «fgtOd «fgtOd «fgtOd «fgtOd«fdtOd«fdtOd«fdœ}%d}&d}'d}(d})|jd«r|)x}&x}'}(| r|&}*n|'}*t+«}+|%d},|jd«s|%d},||%d|)f|!|%d|)f||%d|*f||%d|)f||%d|)f||,|'f| |%d|)f||%d|)f|"|%d|(f||%d|)f|$|%d|(f||%d|)f||%d|)ff }-t‰>jQ««D�]y\} }.|jG| «}#|-D�]\\}/\}0}1}2| |/vrŒ|0��-|0jS| «|2rà|2|&k(r|+jE| «nÉ|'|2ks| | jU‰| «r­t jV‰|| «}3tHjJjY|3|jZ¬«}4‰j]tOd «‰?| «‰?|4«fz«|jd!«s/| rt_j`|#|3«nt_jb|#|3«|jd!«rE‰jds|.s7‰j)|1‰?| «z«n|.r‰jg|1‰?| «z«�Œy�Œ||jd!«s™d"}5|5D�6cgc] }6|%|6d‘Œ }7}6t jh}8t j&||7D�9�cgc] }9|9D]}|‘ŒŒ c}}9«}:|8|‰jk«|:fg«t j|d|«};tm|‰‰>‰?|%|;| |+«| rM| D]H}< | jo|<«jp‰j|<g|¢­itjr|«¤ŽŒJddd«ddd«ycc}6wcc}}9w#tt$r2twjxd#|.f søèø€Ð=¡} !¹¸!½œA¡}ùsƒ ‘có—yrÆr¥)rdrQs r^r¦zrevert..i s€¸r2c󤕗|‰vry|‰jvry|dz}‰D]}|j|«sŒy‰jd‰|«|fz«y)Nrbs%s: %s )rôr²r»)r rÎÚpath_rÍrÈrgr0rˆs €€€€r^rfzrevert..badfno sZø€Ø˜5‘=ØØ˜3Ÿ<™<Ñ'ØØ˜t™ �Û�AØ—|‘| EÕ*Ùð𗑘 ¡x°£~°sÐ&;Ñ;Õr"rPr#rërÙrÇr&rÓrÐr¹rarr®rôÚalwaysrìrír€r�rrîrŠròrórôrõrörŽr÷rørórr×r%rŒrrr ršr r$r˜rÉÚ backuppathÚrelpathr¤rwr+rr�r r»r,räÚ_performrevertrúÚrevertr"r7rrür )@r0r+rÈr0rSrárÛrÙrsrQr1Ú targetsubsrâr„rfrØÚkindròrórôÚ_deletedrörøÚmodaddedÚ dsmodifiedÚdsaddedÚ dsremovedÚ localchangesÚmergeaddr rÍrªÚdeladdedrõÚremovunkrbÚ dsremovunkÚactionsÚbackupinteractiverÝÚcheckÚdiscardÚdsmodifiedbackupr@Ú backupanddelÚ disptabler�r³ÚxlistrÎÚdobackupÚ absbaknameÚbaknameÚneeddatarWÚoplistÚprefetchÚsublistrrrúrKrgrˆs@` ` @@@r^r7r7H sr ü€Ü × Ñ  Ó %€DØ—‘×&Ñ&Ó(�J€FˆBØ �8‰8‹:€Dà �‰‹€BØ ˆr‚z؈ð €EÜ×"Ñ" 4¸TÔB€Hà �‰��t—}‘}×3Ñ3°DÕ9ð—h‘h˜~¨uÓ5ˆ Ø�D‰zˆÜ �M‰M˜$  dÓ +ˆôÓ= t§}¢}Ó=Ó=ˆ à�x‰xŒzÜ×'Ñ'¨Ñ+=Ó>ˆGØ—y‘y Ö)�ØŸW™W S›\��c’ ð*÷ =ð—x‘x¤× 1Ñ 1°!°UÓ ;Ö<�ؘeÒ#Ø!"§¡¨£�E˜#’Jð=ô ×"Ñ" 4¨Ó/ˆAà—k‘kØ !¨T¸4Àtð"ó‰Gð—k‘k¨°A�kÓ6ˆGÛ�Û�CØ!"§¡¨£�E˜#’Jñ ð ô×"Ñ" 4¨Ó/ˆAä�w×'Ñ'Ó(ˆÜ�G—M‘MÓ"ˆÜ�g—o‘oÓ&ˆÜ�w—‘Ó'ˆÜ�g—o‘oÓ&ˆØ�‰�w—‘Ô'Ü�G—M‘MÓ"ˆÜ“5ˆð �TŠ>Ø!ˆJ؈G؈Ià%¨Ñ/ˆLÜ'*£u¬c«e´S³U˜W�e‰Hà—k‘k¨°a�kÓ8ˆGܘW×-Ñ-Ó.ˆJܘ'Ÿ-™-Ó(ˆGܘGŸO™OÓ,ˆIà%¨Ñ/ˆLð �Y Ñ(Ñ (ˆEØ ˜Ñ ˆIà �yÑ ˆGà˜zÑ)ˆHØ �XÑ ˆEð ˜(Ñ "ˆJØ ˜( WÑ,Ñ ,ˆJØ ˜ Ñ "ˆHð ˆGð �—‘Ò Ü˜:“ˆHÛ"�ؘ2’:Ø—O‘O DÕ)ð#ð �xÑ ˆGØ ˜(Ñ "ˆJóˆAØ—-‘-×&Ñ& qÓ)ˆCòؘuÒ$Ø—M‘M×+Ñ+¨CÓ0×8Ó8à— ‘ ˜cÔ"Ø!��c’ ðô�x“=ˆÛˆDØ�rŠzØ—‘ Õ%ðð˜XÑ%ˆô“ˆÛˆCØ—=‘=×*Ñ*¨3Ó/×5Ó5Ø— ‘ ˜#•ðð �5шãˆCØ�}‰}×&Ñ& sÓ+×1Ó1Ø— ‘ ˜CÕ ðð �Gшô “5ˆÛˆCØ—Z‘Z “_ˆFÜ�w‰w�‰˜vÕ&Ø— ‘ ˜SÕ!ðð �8шä“Uˆ ÛˆCØ—Z‘Z “_ˆFÜ�w‰w�‰˜vÕ&Ø—‘˜sÕ#ðð �Zш ð œAÐ/Ó0Ð1Øœ˜>Ó*Ð+ØœAÐ.Ó/Ð0Øœ!Ð,Ó-Ð.ØœAÐ0Ó1Ð2ØœaÐ 2Ó3Ð4ØœAÐ:Ó;Ð<ØœqÐ!:Ó;Ð<ñ  ˆðÐØˆØˆØˆØ �8‰8�LÔ !Ø18Ð 8Ð Ð 8 ¨Ù Ø0Ñ à%Ð Ü“5ˆà˜yÑ)ˆ Ø�x‰x˜ Ô%Ø" 7Ñ+ˆLð�w˜yÑ)¨7Ð 3à �g˜iÑ(¨'Ð 2à ˜ Ñ+Ð-=Ð >à �G˜IÑ&¨Ð 0à �g˜iÑ(¨'Ð 2à �| VÐ ,à �w˜wÑ'¨Ð 1à �g˜f‘o wÐ /à �w˜v‘¨Ð .à ˜  Ñ,¨gÐ 6à ˜ Ñ-¨uÐ 5ð�G˜GÑ$ gÐ .à �g˜jÑ)¨7Ð 3ðA! ˆ ôF! §¡£×/‰JˆC�à—Z‘Z “_ˆFô2;Ñ-�‘|˜˜s XؘeÑ#ØØÑ$Ø—L‘L Ô%Ùð$Ð'8Ò8Ø$ŸL™L¨Õ-Ø# xÒ/°4¸±9·=±=ÀÀSÁÔ3JÜ)0×);Ñ);¸BÀÀcÓ)J˜JÜ&(§g¡g§o¡oØ *°$·)±)ð'6ó'˜GðŸG™GÜ !Ð"IÓ JÙ#+¨C£=±(¸7Ó2CÐ"Dñ!Eôð$(§8¡8¨JÔ#7Ù#.Ü$(§M¡M°&¸*Õ$Eä$(§K¡K°¸ Ô$CØ—x‘x  Ô+ØŸ:š:©UØŸI™I c©H°S«MÑ&9Õ:ÙØ—G‘G˜C¡(¨3£-Ñ/Ô0Úò;2;ð 0ðJ�x‰x˜ Ô#Ø7ˆHÙ3;Ó<±8¨4�g˜d‘m AÓ&°8ˆFÐ<Ü×,Ñ,ˆHÜ ×+Ñ+Ø©Ô@©˜W»°1’q¸�q¨Ò@óˆJñ ØØ—'‘'“)˜ZÐ(Ð)ô ô—M‘M $ t¡*¨dÓ3ˆEÜ ØØØØØØØØô ñ ã!�ðØ(�D—H‘H˜S“M×(Ñ(ØŸ ™  SÑ)ðØ,0òÜ4<×4FÑ4FÀtÓ4Lóð"÷w:�ˆùòH=ùóAøô2 òÜŸ+™+ØCؤ c§h¡h£jÓ 1Ð2ñ3óððú÷A :Ð9ú�ˆúsŸÂe/Â$Ce#Å7H e#Î?e#Ïe#Ï%e#Ï-,e#ÐA e#Ñ'Ae#Ò*Ae#ÔAe#ÕK e#à'dà6'e#ádá-Ae#ãAd%äe#ä e/ä e#ä%;e å e#å#e, å(e/å/e8có0‡‡‡‡‡‡&—‰jj«\}} ‰j«} g} ˆˆfd„} ˆfd„} ˆˆˆˆfd„}tj‰j d¬«}‰ddD]‘}|ri‰j jtd«‰|«z«}|dk(r%|d|«‰jj|«Œ\| j|«Œn|d|«‰jj|«Œ“‰d dD]s}||«|rV‰j jtd «‰|«z«}|dk(r|d |«| |«ŒQ| j|«Œc|d |«| |«Œu‰d dD].}||«|d |«‰jj|«Œ0| ‰jk(Š&ˆˆ&fd „}t«}|�r‰d dD�cgc] }|| vsŒ|‘Œ }}tj‰|«}tj ‰j ddd¬«}d|_d|_d}| |k(r!‰j j'dd«rd}nd}|dk(r)tj(‰d‰j«||¬«}n(tj(‰‰j«d||¬«}tj*|«} t-‰j |||¬«\}}|dk(rtj.|«}t;|«\}}|€ t«}t=«}t?|D�chc](}tA|«sŒ|jBjE«’Œ*c}«D] }|d |«Œ t«} |D]Ï}tA|«r±|jBjE«}!|jBjE«|vrY‰jG|!«}"tjH‰j ‰|!«}#tKjL|"|#«|jO|!«|!| vr| jQ|!«|dk(r| |!«|jS|«ŒÑ|jU«}$|jWd«|$r% tjX‰j ‰|dd¬«~n)‰d dD]}|d |«| |«|sŒ||«Œ ‰ddD]h}||vrŒ|r3‰j jtd«‰|«z«}|dk7rŒ=|d|«| |«‰jj_|«Œj‰ddD]u}|rX‰j jtd «|z«}|dk(r|d|«| |«||«ŒK| j|«Œ]|d|«| |«||«Œwtajb‰|‰«}%‰dd‰ddz‰d dzD]&}||%vsŒ‰jje|%||«Œ(ycc}w#t0j2$r&}t1j4td«|z«‚d}~wt0j6$r&}t1j8td«|z«‚d}~wwxYwcc}w#t0j2$r-}t1j4t[j\|««‚d}~wt0j6$r-}t1j8t[j\|««‚d}~wwxYw)!zÿfunction that actually perform all the actions computed for revert This is an independent function to let extension to plug in and react to the imminent revert. Make sure you have the working directory locked when calling this function. cón•—‰|}‰j||j«|j««yr})Úwwriter”r±)rÍr�rÈr+s €€r^Úcheckoutz _performrevert..checkout™s(ø€Ø �‰VˆØ � ‰ �A�r—w‘w“y "§(¡(£*Õ-r2cóΕ— ‰jjdd«}‰jj||¬«‰j j |«y#t$rYŒ'wxYw)NrÄr“r”)r0rrr¢r£r*r#Ú set_untracked)rÍr)r+s €r^Údoremovez _performrevert..doremove�s^ø€ð Ø—G‘G×&Ñ& Ð8JÓKˆEØ �I‰I× Ñ  ¨%Ð Ô 0ð � ‰ ×#Ñ# AÕ&øôò Ù ð úsƒ9AÁ A$Á#A$có–•—‰|}‰jjs|s+‰jj‰|d‰|«z«yy)Nr )r0r rî)ràrÍr�rDrgr+rˆs €€€€r^Ú prntstatusmsgz%_performrevert..prntstatusmsg¥s@ø€Ø�a‘ˆØ �7‰7�?Š?¡%Ø �G‰G�N‰N˜7 6™?¨1Ñ-±¸³ Ñ;Õ <ð#(r2T)Úcachedrzrs(forget added file %s (Yn)?$$ &Yes $$ &Nor/s(remove added file %s (Yn)?$$ &Yes $$ &Nor0có>•—‰jj|‰¬«S)N)Ú reset_copy)r#Ú set_tracked)r�r+r^s €€r^Únormalz_performrevert..normalÑsø€Ø�}‰}×(Ñ(¨¸jÐ(ÓIÐIr2r-rÔsrevert.interactive.)rÕrÖr×sapplyrÄs!revert.interactive.select-to-keepskeepsdiscardNr )r¿rÙrÚr rãr.s#add new file %s (Yn)?$$ &Yes $$ &Nor1s,add back removed file %s (Yn)?$$ &Yes $$ &No)3r#rërÙr Ú pathauditorr¤r0r|r rXr˜rórŠr&rrrþrÿrrrrrrÉÚ reversehunksrrrbrrr”rr®rƒr†r�rr4r+rrrŒr²rrr r"r!r_rrãrñ)'r+rÈrgrˆrDrrQr@rárÛrÙÚexcluded_filesrVrYr[Ú audit_pathrÍrµr`r‘ÚtorevertrKr8r¿rr:r�rSr;ÚunusedalsorestorerErFr�r„rbrNrHr×r^s'````` @r^r6r6„s–ý€ð"—‘×&Ñ&Ó(�J€FˆBØ �8‰8‹:€DØ€Nõ.ô'÷=ô ×%Ñ% d§i¡i¸Ô=€JØ �YÑ  Ô "ˆÙ Ø—W‘W×)Ñ)ÜÐ=Ó>ÁÈ!ÃÑLóˆFð˜Š{Ù˜i¨Ô+Ø— ‘ ×+Ñ+¨AÕ.à×%Ñ% aÕ(á ˜) QÔ 'Ø �M‰M× 'Ñ '¨Õ *ð#ð�YÑ  Ô "ˆÙ�1Œ Ù Ø—W‘W×)Ñ)ÜÐ=Ó>ÁÈ!ÃÑLóˆFð˜Š{Ù˜i¨Ô+Ù˜• à×%Ñ% aÕ(á ˜) QÔ 'Ù �Q�Kð#ð�WÑ ˜aÔ ˆÙ�1Œ Ù�g˜qÔ!Ø � ‰ ×#Ñ# AÕ&ð!ð�t—{‘{Ñ"€JõJô"%£ÐÚà& yÑ1°!Ò4ÓPÑ4˜!¸ÀÒ8O’AÐ4ˆÐPÜ × Ñ ˜t XÓ .ˆÜ×(Ñ(Ø �G‰GØØØ/ô  ˆð  ˆÔ؈Œ ؈ Ø �6Š>Ø�w‰w×!Ñ!ØÐ!Eôð$‘ à&� à ˜Ò Ü—:‘:˜d D¨#¯(©(«*°a¸hÔG‰Dä—:‘:˜d C§H¡H£J°°a¸hÔGˆDÜ ×+Ñ+¨DÓ1Ðð Iä'Ø—‘Ð)¨5¸Iô‰LˆF�Dð˜JÒ&Ü×+Ñ+¨FÓ3�ô9GÀvÓ8NÑ5Ð"Ð$5Ø Ð Ü“uˆHä ‹Zˆä±fÓJ±f°ÄÀqÅ ˜Ÿ™×*Ñ*Õ,°fÑJÖKˆAÙ ˜) QÕ 'ðL䓈ۈAÜ�aŒyØ—h‘h×'Ñ'Ó)�à—8‘8×$Ñ$Ó&¨(Ñ2Ø!ŸZ™Z¨›_�FÜ%×0Ñ0°·±¸$ÀÓD�GÜ—M‘M &¨'Ô2Ø—O‘O CÔ(ؘeÑ#Ø—I‘I˜c”NØ  GÒ+Ù  œ Ø �G‰G�B�Kðð—'‘'“)ˆØ �‰�Œ Ù ð >Ü×#Ñ# D§G¡G¨T°2°qÀ$ÕGñ à˜Ñ# AÔ&ˆAÙ ˜) QÔ 'Ù �QŒKÚÙ�q• ð 'ð �V‰_˜QÔ ˆà Ð*Ñ *Ø á Ø—W‘W×)Ñ)ÜÐ8Ó9¹HÀQ»KÑGóˆFð˜Š{ØÙ�f˜aÔ Ù�Œ Ø � ‰ ×!Ñ! !Õ$ð ð�[Ñ ! !Ô $ˆÙ Ø—W‘W×)Ñ)ÜÐAÓBÀQÑFóˆFð˜Š{Ù˜k¨1Ô-Ù˜” Ù�q• à×%Ñ% aÕ(á ˜+ qÔ )Ù �QŒKÙ �1�Ið%ô × Ñ ˜t F™|¨SÓ 1€Fð �‰˜Ñ˜W [Ñ1°!Ñ4Ñ4°w¸yÑ7IÈ!Ñ7LÔLð ð �Š;Ø �M‰M× Ñ ˜v a™y¨!Õ ,ñ MùòkQøôB×$Ñ$ò HÜ×"Ñ"¤1Ð%?Ó#@À3Ñ#FÓGÐ GûÜ×*Ñ*ò IÜ×"Ñ"¤1Ð%@Ó#AÀCÑ#GÓHÐ Hûð IüòKøô,×(Ñ(ò >Ü×&Ñ&¤x×'7Ñ'7¸Ó'<Ó=Ð=ûÜ×.Ñ.ò >Ü×&Ñ&¤x×'7Ñ'7¸Ó'<Ó=Ð=ûð >ús`Ç) XÇ3XË6XÌ7ZÍZÑ;$ZØZØ2!YÙZÙ)!Z Ú ZÚ\Ú*([Û\Û((\Ü\có&—tjD]m}|js|r |js |jrŒ*|j |«sŒš>Ø— ‘ ˜XÒ%©)Ø�}Š}à Ø �>‰>˜$Õ Ü×"Ñ" 1§5¡5£7°·±³Ô:Ð :ñ(r2cóú—tjD]`}|jrŒ|jrŒ|j |«sŒ/t j |j«|j«¬«‚tjD]u}|jdk(s |jrŒ|jsŒ,|j |«sŒ>tj|jj|j««Œwy)z[Check for unfinished operations (as above), and clear the ones that are clearable. rñrhN)rªrirlrjrmrrrÎròrnr+rr,rÚ_fname)r+r'r7s r^Úclearunfinishedrr‚s«€ô×+Ô+ˆØ × Ò Ø Ø×Ó E×$6Ñ$6°tÕ$<Ü×"Ñ" 5§9¡9£;°U·Z±Z³\ÔBÐ Bð ,ô × 'Ô 'ˆØ �9‰9˜Ò  A§M¢MØ Ø �<‹<˜AŸN™N¨4Õ0Ü �K‰K˜Ÿ™Ÿ ™  a§h¡hÓ/Õ 0ñ (r2cóX—tjD]}|j|«sŒ|cSy)zIChecks for unfinished operations and returns statecheck object for itN)rªrirm)r+r's r^Úgetunfinishedstatert“s,€ô×+Ô+ˆØ × Ñ ˜dÕ #ØŠLð,ð r2cóü—td«}tjD]7}|jsŒ|j |«sŒ"||j «zdfcS|dj ddd¬«r|td«zdfSy)aiCheck for an unfinished operation and return the command to finish it. statemod._unfinishedstates list is checked for an unfinished operation and the corresponding message to finish it is generated if a method to continue is supported by the operation. Returns a (msg, warning) tuple. 'msg' is a string and 'warning' is a boolean. s continue: %sTNF)ÚmissingrrËs hg commit©NN)r rªriÚ _continueflagrmÚ continuemsgÚdirty)r+Úcontmsgr's r^Ú howtocontinuer|œsƒ€ô�Ó €GÜ×+Ô+ˆØ×"Ò"Ø Ø × Ñ ˜dÕ #ؘU×.Ñ.Ó0Ñ0°$Ð6Ò 6ð ,ð  ˆD�z×Ñ ¨E¸%ÐÔ@Øœ˜<›Ñ(¨%Ð/Ð/Ø r2có¤—t|«\}}|�@|r|jjd|z«y|jjd|z«yy)zôInform the user about the next action after completing hg resolve If there's a an unfinished operation that supports continue flag, howtocontinue will yield repo.ui.warn as the reporter. Otherwise, it will yield repo.ui.note. Nrµ)r|r0r»rw)r+rÎrŸs r^Úcheckafterresolvedr~²sG€ô! Ó&�L€CˆØ €Ù Ø �G‰G�L‰L˜ 3™Õ 'à �G‰G�L‰L˜ 3™Õ 'ð r2cóv—t|«}d}|dr|d}tjtd«|z|¬«‚)zàRaise an abort suggesting how to properly continue if there is an active task. Uses howtocontinue() to find the active task. If there's no task (repo.ui.note for 'hg commit'), it does not offer a hint. Nr rsno %s in progressrñ)r|rrr )r+Útaskr†ròs r^Úwrongtooltocontinuer�ÂsA€ô ˜$Ó €EØ €DØ ˆQ‚xØ�Q‰xˆÜ × Ñ œ1Ð1Ó2°TÑ9ÀÔ EÐEr2cóx‡—|j«stjtd««‚t ‰|«}|j d«}|€tj td««‚t|«dkDr‰|dj«}n‰d}d}|�r„|D�cgc]}‰|j«‘Œ}}d}|D�cgc]}‰|j«rŒ|‘Œ} }| rL‰jjtd «d jˆfd „| D««ztd «¬ «d}t‰jj!|««} | t|«z r&‰jjtd««d}|r—‰j#«5‰j%«5t'j(|«‰jd|«D�cgc]}|j+«‘Œ} }t-j.‰j‰| d¬«ddd«ddd«|s‰d}t'j(|«|j1td««|j1td«|j3«ddz«|j5«ycc}wcc}wcc}w#1swYŒ•xYw#1swYŒ™xYw)zSabort the interrupted graft and rollbacks to the state before interrupted graftsno interrupted graft to abortsnewnodesNs$cannot abort using an old graftstaterrÛFTs%cannot clean up public changesets %s r6c3ó:•K—|]}t‰|«–—Œy­wr})r`)rŒr r+s €r^r�zabortgraft..îsøèø€Ð?±Y°œU 4¨¡7Ÿ^±Yùsƒs see 'hg help phases' for detailsrñs;new changesets detected on destination branch, can't strip rÃ)rÝsgraft aborted sworking directory is now at %s é )r®rrr ÚreadgraftstaterarürzrÚräÚmutabler0r»rrŠrÚ descendantsrÐrÑrÚ clean_updaterÙr#rìrîr Údelete) r0r+Ú graftstateÚ statedataÚnewnodesÚstartctxÚcleanupr rFÚ immutableÚdescÚ strippointss ` r^Ú abortgraftr’Òs]ø€ð × Ñ Ô Ü×ÑœqÐ!AÓBÓCÐCܘt ZÓ0€IØ�}‰}˜[Ó)€HØÐô�k‰kœ!ÐCÓDÓEÐEô ˆ8ƒ}�qÒØ˜ ™ Ñ$×'Ñ'Ó)‰à˜‘:ˆà€GâÙ+3Ó4©8 a�D˜‘G—K‘K•M¨8ˆÐ4؈á (ÓB¡˜1°°Q±·±Õ0A’Q ˆ ÐBÙ Ø �G‰G�L‰LÜÐ;Ó<Ø—*‘*Ó?±YÓ?Ó?ñ@äÐ:Ó;ð ô ð ˆGô�4—>‘>×-Ñ-¨hÓ7Ó8ˆØ ”#�h“-Ò Ø �G‰G�L‰LÜð-óô ð ˆGá Ø—‘•˜tŸy™y�{Ü×%Ñ% hÔ/ð'+§h¡h¨}¸hÔ&GóÙ&G �A—F‘F•HÐ&Gððô— ‘ ˜TŸW™W d¨KÀÕF÷ +—ñ à˜‘:ˆÜ×јhÔ'à‡I�IŒaÐ"Ó#Ô$؇I�IŒaÐ3Ó4°x·|±|³~ÀcÀrÐ7JÑJÔKØ×ÑÔØ ùòQ5ùòCùò0÷ +˜{ú—�úsH JÃJÃJÆJ0Æ**J$ÇJÇ+%J$ÈJ0ÊJ$Ê$J- Ê)J0Ê0J9có°— |j«S#tj$r0|jjd«j «}d|icYSwxYw)zDread the graft state file and return a dict of the data stored in itó graftstatesnodes)rrÚCorruptedStater,r„)r+rŠÚnodess r^r…r…sO€ð!Ø�‰Ó Ð øÜ × Ñ ò!Ø—‘— ‘ ˜mÓ,×7Ñ7Ó9ˆØ˜%Ð Ò ð!ús‚’AAÁAcó”—|j«5tj|d«}t|||«cddd«S#1swYyxYw)z/abort logic for aborting graft using 'hg abort'r”N)rÐrªÚcmdstater’)r0r+rŠs r^Ú hgabortgraftr™s3€à �‰�Ü×&Ñ& t¨]Ó;ˆ ܘ"˜d JÓ/÷ �Šús ‘#>¾Ar})F)TrÛ)FNNr2rw)NNNN)swb)s hg-%h.patchFNN)FNN)r2)NNr2F)NNN)FN)FF)°rñrðržrRrrÚtypingrrrrrrÚi18nr rÙr r r r"rrrÚ thirdpartyrrØrrrrr~rrrrrrìrrrr¬rrrr r!r#r$r%r&r'rªr(r)r*r+r,roÚutilsr-r.Ú revlogutilsr/rmÚ TYPE_CHECKINGr0ÚuimodrÚ dryrunoptsÚ confirmoptsÚ remoteoptsÚwalkoptsÚ commitoptsÚ commitopts2Ú commitopts3Ú formatteroptsÚ templateoptsÚlogoptsr8Ú diffwsoptsÚ diffopts2Ú mergetooloptsÚsimilarityoptsÚ subrepooptsÚdebugrevlogoptsrrerjr"rrur{rƒrˆr”r r³rÂrÉrNrVrXr‚r‰r7rŒr°r»rÁrérïrÓr`rþrrrr r(r.rArCrörFr]rvrxrõr÷rörørrrrrr*r/r2r4rFrKrŒrpr¤r�rr¢r¦r«r°rËr¯rõrr rürrýr$r&r7r6ÚhooksÚ outgoinghooksÚ summaryhooksÚsummaryremotehooksrêrrrtr|r~r�r’r…r™r¥r2r^ÚrµsXðóÛ ÛÛ Û ÷÷õ÷ñ÷ ñõ ÷÷÷÷÷÷÷ñ÷<õ ð ×Òõð �=‰=€ð  ˆ:�t™QÐKÓLÐMð€ ð  ˆ*�d™AÐ<Ó=Ð>ð€ ð  ˆ6�3™Ð7Ó8¹!¸F»)ÐDà ØØ Ù Ð 9Ó:Ù ˆ&‹ ð ð ØØ Ù Ð KÓLð ð€ ð& ØØ Ù Ð 6Ó7Ù ˆ*‹ ð ð ØØ Ù Ð 6Ó7Ù ˆ*‹ ð ð €ð$ ˆ:�s™AÐ;Ó<¹aÀ»jÐIØ ˆ:�s™AÐ>Ó?ÁÀ7ÃÐLð€ ð ØØ Ù Ð 5Ó6Ù ˆ'‹ ð ð ØØ Ù Ð 3Ó4Ù ˆ'‹ ð ð€ ð$ ˆ>˜4¡Ð#LÓ!MÐNØ ˆ>˜4¡Ð#JÓ!KÐLð€ ð  ˆ;˜™QÐ7Ó8¹!¸K».ÐIð€ ð ØØ Ù Ð 9Ó:Ù ˆ(‹ ð ð ˆ;˜™QÐ7Ó8¹!¸K».ÐIð € ð ˆ8�T™1˜]Ó+Ð,Ø ˆ6�4™Ð:Ó;Ð<Ø ˆ8�S™!Ð@ÓAÁ1ÀVÃ9ÐMØ ˆ<˜™qÐ!6Ó7Ð8؈'�4™ÐFÓGÐHØ ˆ8�T™1Ð5Ó6Ð7ð  ðñ €ð ˆ7�D™!Ð6Ó7Ð8à ØØ Ù Ð =Ó>ð ð  ˆ)�T™1ÐKÓLÐM؈*�d™AÐ=Ó>Ð?ð €ð ØØ Ù Ð 4Ó5ð ð ØØ Ù Ð 8Ó9ð ð ØØ Ù Ð 5Ó6ð ð ØØ Ù Ð 0Ó1ð ð'€ ð: ˆk˜4¡Ð#LÓ!MÐNà Ø Ø Ù ØQó ð  ð ˆj˜$¡Ð"KÓ LÐMð ðñ ð Ø Ø Ù Ð3Ó 4Ù ˆf‹Ið  ð ˆg�t™QÐJÓKÐLà Ø Ø Ù Ð7Ó 8Ù ˆf‹Ið  ðñð ðD ˆ7�C™Ð0Ó1±1°W³:Ð>ð€ ð ØØ Ù Ð :Ó;Ù ˆ-Óð ð€ð�k 4©Ð+JÓ)KÐLÐM€ ð ˆ<˜¡Ð"3Ó 4Ð5Ø ˆ;˜™qÐ!1Ó2Ð3؈&�#‘qÐ3Ó4Ð5ð€ðK€ ðØ ˆv�sˆ{Ñ ðà ððˆfÑóð0 2Ø ˆv�sˆ{Ñ ð 2à ð 2ð �VÑ ð 2ð ó 2ð˜zð°°c¸3°h±ðÀDóð6 D˜$˜s C˜x™.ð D¨Tó Dò&ò (ò 3ò ò ó Bó(ò&Zòz.÷4b ñb òJ6'òr.ð€‡�ˆtÔ÷LBðLBóðLBò^ó$$óN-ò"dOòN ó,ð&�:ð T¨%°¨*Ñ%5ð¸(À5¹/óò,%ð&:=óò@ò"ó&$ó" ó0DòNBò"÷  ñ ó( óH òV Bñk˜t E¨3 JÑ/ókð` €Ø€ðÐðÐòXðz€ ð€ò**òZLòò4,ðØØ Ø ó( óVFóò@ ò9òx@òbòJ-ðbMQóTòn9òò&:÷z^.ñ^.òB@òD (ðq¨D°°c°©NóqóhðØ Ø Ø#ó>òBò"Fò  óF=Lò@DòyðF Ø óK-ðb�— ’ “ € ðˆt�zŠz‹|€ ð �T—Z’Z“\Ðó;ò:1ò"òò, (ò Fò = ò@!ó0r2