\x89\x50\x4E\x47\x0D\x0A\x1A\x0A PNG  \x89\x50\x4E\x47\x0D\x0A\x1A\x0A  13\c @@sddlmZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlmZddlmZmZmZmZmZmZddlmZmZmZmZmZm 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-m.Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZEmFZFmGZHmIZImJZJmKZKddlLmMZMmNZNmOZOmPZPddlQmRZSe,jTZTe6jUZUeUd ged d eVd ZWeUd gddZXeUdddeYedfddeYedfddeYedfgedeYeZeZeZdZ[eYddZ\ddZ]ddZ^dZ_eYd Z`eUd!d"d#eYed$fd%d&ged'fd%d(eYed)fgedd*eVeYeYd+ZaeUd,ged-d*eVd.ZbeUd/gd%d0ZceUd1d%d2eYed3fgd4d5Zdd6Zed7ZfeUd8gdd9ZgeUd:d;d<eYed=fd>d?eYed@fd%dAeYedBfdCdDeYedEfgedFd eVeYdGZheUdHejiedIeYdJZjeUdKdLdMeYedNfgedOd*eVd eVeYdPZkeUdQejiejledRd eVeYdSZmeUdTd%dUeYedVfd%dWeVedXfd%dYeYedZfged[d\ZneUd]d%d^eYed_fd%d`eYedafd%dbgdcfgejoedddedfZpdgdh>ZqeUdiddjd%edkfgd eVeYdlZreUdmejlgd eVdnZseUdodpdbd%edqedrfd%dseZedtfdCdueYedvfdwdxgedyedzfged{d|ZteUd}gejld~ZueUdgedd*eVddZveUdddgededfddgededfd;ddededfgedd*eVeYeYdZweUdgddZxeUdejiejledReYdZyeUdejiedRd eVeYdZzeUdgdZ{eUdgejld%d*eVdZ|eUdgedd*eVdZ}eUdgeddZ~eUdddeYedfddeYedfdCdeYedfddeYedfged[dZeUdd%deZedfd"dd%ededfgd%eYdZeUdgd%dZeUdgeddZeUdd%ddedfd%deZedfdpdbgedfd%deZedfd%deZedfd%dgedfgejejledeYdZeUdddeYedfddeYedfd"deYedfdpdeYedfgeddZeUdged-d*eVdZeUddpdbd%ededrfd%deYedfgejejeddeVdZeUdgedd*eVdZeUdgedeYdZeUddpdbd%ededrfd%deYedfgeddZeUdgd%dZeUddpdbd%ededrfgeddZeUdejiddeZedfgedRd eVeYdZeUdejidddededfgedd eVeYdZeUdd%deYedfd%deVedfdCdeYedfdwdxgedyedzfd%deZedfd%deZedfgddZeUdd%d eZed fd%d d%ed fd%d d%edfgd%dZeUdgedeYdZeUdgdd eVeYdZeUddpdbd%ededrfgedeYdZeUdd%deZedfgeddZeUddpdbged edrfd!d"ged#ed$fged%d eVd&ZeUd'dwd(d%ed)ed*fged+d*eVd%d,ZeUd-dwd(d%ed)ed*fged+d*eVd%d.ZeUd/gd0ZeUd1ddged2edzfd%d3eZed4fgeZeYd5ZeUd6ejed7deVd8ZeUd9gedrd:ZeUd;d%d<d%d<fd%d=d%d=fd%d>d%d>fgejoed?d*eVd@ZdAZeUdBd%dCeZedDfd%dEd%edFfd%dGeZedHfd%dIeZedJfgejoedd eVeYdKZdS(Li(tabsolute_importNi(t_(tbinthextnullhextnullidtnullrevtshort(-tbundle2t changegrouptcmdutiltcolortcontextt dagparsertencodingterrortexchanget extensionst filemerget filesetlangt formatterthgthttppeert localrepotlockt logcmdutiltmergetobsoletetobsutiltphasestpolicytpvectpycompatt registrartrepairtrevlogtrevsett revsetlangtscmutilt setdiscoveryt simplemergetsshpeertsslutilt streamclonet templatert treediscoverytupgradeturltutiltvfstwireprotoframingtwireprotoservertwireprotov2peer(tcborutiltdateutiltprocutilt stringutil(tdeltast debugancestors[INDEX] REV1 REV2t optionalrepoc G@st|dkrT|\}}}tjtjtjdt|}|j}nft|dkr|stj t dn|\}}|j }|j}ntj t d|j ||||}|j d|j|t|fdS(s<find the ancestor revision of two revisions in a given indexitauditis5there is no Mercurial repository here (.hg not found)s&either two or three arguments requireds%d:%s N(tlenR#tvfsmodR1RtgetcwdtFalsetlookupRtAbortRt changelogtancestortwritetrevR( tuitrepotargstindextrev1trev2trRAta((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR:as'    tdebugapplystreamclonebundletFILEcC@s8tj||}tj|||}|j|dS(s apply a stream clone bundle fileN(RtopenpathRt readbundletapply(RGRHtfnametftgen((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyROtst debugbuilddagtmsmergeable-files!add single file mergeable changestosoverwritten-files"add single file all revs overwritetnsnew-filesadd new file at each revs[OPTION]... [TEXT]c'@s|d%kr1|jtd|jj}n|j}t|dkrdtjtdnd}x6t j |D]%\}} |dkrz|d7}qzqzW|rd} gt j d|| D]} d| ^q} | j dng} |jtd d td d |}|_|jL|j9|jd #d}d}g}d}|j|xt j |D]\}} |dkr|jdt j| | \}}g}id%}|rd}||d}t|dkr||d}|j|}g|||fD]}||j^q(\}}}tj|||}g|jD]}|j^qo}|j dn.|dkr||jjd}n| }||| cd|7}"tj||"d|||!d|dfdddi|d6}$|j |$}%|j |%|}n{|dkr | \}}&|jd |&| j d!t!|jj"||&fn&|d"kr2|jd#| | }n|j|qW| rh|j#j$d$dj| nWd%QXWd%QXWd%QXWd%QXd%S(&s builds a repo with a given DAG from scratch in the current empty repo The description of the DAG is read from stdin if not given on the command line. Elements: - "+n" is a linear run of n nodes based on the current default parent - "." is a single node based on the current default parent - "$" resets the default parent to null (implied at the start); otherwise the default parent is always the last node created - "}|\} } } } } }}jdt | fqWdS( Nt s3%sformat: id, p1, p2, cset, delta base, len(delta) c @sjd|fxyjD]k}|\}}}}}}}jdt|t|t|t|t|t|fq$WdS(Ns %s%s s%s%s %s %s %s %s %d (REt deltaiterRR=( tnamedt deltadataRRRtcst deltabasetdeltatflags(RVt indent_stringRG(s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyt showchunkss  RCtmanifesttfilenamesuse debugbundle2 for this files%s%s ( REtchangelogheadertmanifestheadertitert filelogheadert isinstanceRt unbundle20RRBRRR(RGRVtalltindenttoptsRt chunkdataRTRRRRRRRR((RVRRGs=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyt_debugchangegroups$        c K@s"tj|}|j}d|}ytj|\}}WnEtjk r}d} | ||jt|f;} |j | nXd} | ||t|f;} |j | |j d|} xMt |D]?} t j d| } | j| j|tj| | qW| jdS(s/display version and markers contained in 'data'Rs%%sunsupported version: %s (%d bytes) s%sversion: %d (%d bytes) t debugobsoleteN(R t byteskwargsRsRt _readmarkersRtUnknownVersiontversionR=RERtsortedRtmarkerRft startitemtplainR t showmarkertend( RGtpartRRR}RRtmarkerstexctmsgtfmt rawmarkerRX((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyt_debugobsmarkers,s&     cC@swd|}tj|}xWtjD]L}xC||D]7}|j||jdt|tj|fq4Wq#WdS(s/display version and markers contained in 'data'Rs%s %s N(Rt binarydecodet allphasesRERt phasenames(RGR}RRt headsbyphasetphasethead((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyt_debugphaseheadsCs   c@sXtttjtjfrEddjfdtDStj t S(Ns{%s}s, c3@s#|]}d||fVqdS(s%s: %sN((t.0tk(tthing(s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pys Os( RtdictR0tsortdictt collectionst OrderedDictRRR R|trepr(R((Rs=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyt _quasireprLs$c K@st|tjs*tjtdn|jdt|j|j dg}x'|j D]}|r|j |krqcnd}|j||j t|j|j f|j dkr|jj dd}t j||d}|jst||d |d d |qn|j d krK|jsKt||d d |qKn|j d krc|js|t||d d q|qcqcWdS(slists the contents of a bundle2snot a bundle2 filesStream params: %s t part_types%s -- %s (mandatory: %r) R Rt01tUNRRit obsmarkerss phase-headsN(RRRRRBRRERtparamstgett iterpartsRt mandatoryR t getunbundlertquietRRR( RGRVRRt parttypesRRRtcg((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyt _debugbundle2Rs() "  t debugbundleRNRsshow all detailsR[s part-typesshow only the named part typetspecs"print the bundlespec of the bundletnorepoc K@stj||}|rBtj||}|jd|dStj|||}t|tjrt ||d||St ||d||WdQXdS(slists the contents of a bundles%s NR( RRQRt getbundlespecRERRRRRRR(RGt bundlepathRRRRURV((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRistdebugcapabilitiestPATHc K@stj|}tj|||}|j}|jdx%t|D]}|jd|qJWtj|}|r|jdxVt|j D]?\}}|jd|x|D]} |jd| qWqWndS(s'lists the capabilities of a remote peersMain capabilities: s %s sBundle2 capabilities: s %s N( R RRtpeert capabilitiesRERRt bundle2capst iteritems( RGRhRRtcapstctb2capstkeytvaluestv((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR|s    tdebugcheckstatec C@s|jj\}}||j}||j}d}x|jD]}|j|}|dkr||kr|jtd||f|d7}n|dkr||kr|jtd||f|d7}n|dkrE||krE||krE|jtd||f|d7}qEqEWxQ|D]I}|j|}|d kr5|jtd ||f|d7}q5q5W|rtd } | j| nd S( s0validate the correctness of the current dirstateitnrs%%s in state %s, but not in manifest1 iRNs&%s in state %s, but also in manifest1 RXs+%s in state %s, but not in either manifest tnrms'%s in manifest1, but listed as state %ss8.hg/dirstate inconsistent with current parent's manifestN(tdirstatetparentsRtwarnRRB( RGRHtparent1tparent2tm1tm2terrorsRUtstateR((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRs0   $    t debugcolortstylesshow all configured styless hg debugcolorcK@sD|jdtj|j|jdr6t|St|SdS(s&show available color, effects or stylescolor mode: %s R N(RER8tpprintt _colormodeRt_debugdisplaystylet_debugdisplaycolor(RGRHR((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR s cC@s|j}|jjx*tj|jD]}||j|ss%s tlabel( tcopyt_stylestclearR t_activeeffectstkeyst_terminfoparamst configitemsRRERRtitems(RGteffectRRRt colornameR((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRs    c@sjtdjs dStdjD}xtjjD]\}}jd|d||rjdjdtd|t|jdjfd |jDnjd qOWdS( Nsavailable style: cs@s|]}t|VqdS(N(R=(Rts((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pys ss%sRs: Ris, c3@s!|]}j||VqdS(N(R(Rte(RG(s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pys ss ( RERRtmaxRRR=RR(RGtwidthRteffects((RGs=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRs " $/tdebugcreatestreamclonebundlecC@swtj|r%|jtdntj|\}}tj||||jtddj t |dS(screate a stream clone bundle file Stream bundles are special bundles that are essentially archives of revlog files. They are commonly used for cloning very quickly. s=(warning: stream clone bundle will contain secret revisions) sbundle requirements: %s s, N( Rt hassecretRRR+tgeneratebundlev1R t writechunksRERR(RGRHRTt requirementsRV((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR!s tdebugdagttRsuse tags as labelstbtbranchessannotate with branch namestdotssuse dots for runsRtspacessseparate elements by spacessPTION]... [FILE [REV]...]c @s|jd}|jd}|rvtjtjtjdt|tdDfd}n|r|j|jd|jdrixE|j j D].\}} j j | gj |qWnfd}ntjtd xXtj|d |d td td |d|ddD] } |j| |jdq^WdS(sformat the changelog or an index DAG as a concise textual description If you pass a revlog index, the revlog's DAG is emitted. If you list revision numbers, they get labeled in the output as rN. Otherwise, the changelog DAG of the current repo is emitted. R+R*R<cs@s|]}t|VqdS(N(tint(RRM((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pys sc3@scx\D]T}d|tdj|DffV|krd|d|ffVqqWdS(NRZcs@s!|]}|dkr|VqdS(iN((RR((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pys sRosr%i(tlistt parentrevs(RM(trevstrlog(s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyteventss * RR)c3@sd}xD]}r\jj|dd}||kr\d|fV|}q\nd|tdj|DffVr j|}|rx"|D]}d||ffVqWqq q WdS(NRaiRnRNRZcs@s!|]}|dkr|VqdS(iN((RR((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pys sRo(RsRR-R.R(R(RMtnewbtlsRo(R)RtlabelsR(s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR1 s     * sneed repo for changelog dagt addspacest wraplabelstwrapannotationst wrapnonlineartusedotst maxlinewidthiFs N(RR#R>R1RR?R@tsetRCRRt setdefaultRFRvRRBRR t dagtextlinestTrueRE( RGRHtfile_R/RR+R*R1RoRZtline((R)RR4R/R0Rs=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR&s4  )  t debugdatas-c|-m|FILE REVcK@s tj|}|jds<|jds<|jdrs|dk rctjdtdnd|}}n'|dkrtjdtdntj|d||}y)|j |j |j |dt Wn*t k rtjtd|nXdS( s)dump the contents of a data file revisionRCRtdirRAsinvalid argumentstrawsinvalid revision identifier %sN(R RRRfRt CommandErrorRR t openstorageREtrevisionRAR>tKeyErrorRB(RGRHR?RFRRM((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRA's-  ) t debugdateRtextendedstry extended date formatss[-e] DATE [RANGE]cK@s|dr"tj|tj}ntj|}|jd||jdtj||rtj|}|jd||dndS(sparse and display a dateRIsinternal: %d %d s standard: %s s match: %s iN(R6t parsedateR0textendeddateformatsREtdatestrt matchdate(RGRktrangeRtdRX((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRH7s tdebugdeltachains -c|-m|FILEc ( @sZtj|}tj|d||jj}j}jtj @t dt }fd}|j d|}|j d|r|j dn|j di} xD]} || \} } } }}|d}| j|t| d}||}|| }|| |}||}y|d }Wntk rfd }nX| dkrt|t| }n|}|dkrt|t|}n|}|j|jd d | |t||| | | |||||d | d|dt|d|d| d| d| d|d|d|d|d| |r;d}d}d}xutj|D]a}|d7}||d ||d }|||d}||7}||krz|}qzqzW|rt|t|}nd}|jdd||||d|d|d|d|n|j dqW|jdS( sdump information about delta chains in a revlog Output can be templatized. Available template keywords are: :``rev``: revision number :``chainid``: delta chain identifier (numbered by unique base) :``chainlen``: delta chain length to this revision :``prevrev``: previous revision in delta chain :``deltatype``: role of delta / how it was computed :``compsize``: compressed size of revision :``uncompsize``: uncompressed size of revision :``chainsize``: total size of compressed revisions in chain :``chainratio``: total chain size divided by uncompressed revision size (new delta chains typically start at ratio 2.00) :``lindist``: linear distance from base revision in delta chain to end of this revision :``extradist``: total size of revisions not part of this delta chain from base of delta chain to end of this revision; a measurement of how much extra data we need to read/seek across to read the delta chain for this revision :``extraratio``: extradist divided by chainsize; another representation of how much unrelated data is needed to load this delta chain If the repository is configured to use the sparse read, additional keywords are available: :``readsize``: total size of data read from the disk for a revision (sum of the sizes of all the blocks) :``largestblock``: size of the largest block of data read from the disk :``readdensity``: density of useful bytes in the data read from the disk :``srchunks``: in how many data hunks the whole revision would be read The sparse read can be enabled with experimental.sparse-read = True RPt_withsparsereadc@s|}|d}|d}d}r|d|dkrGd}q|d|dkrdd}q|d|dkrd }q|d|krd }qd }n|d|krd }nd }j|d}x&|D]}|}||d7}qW|||||fS( NiiiiiRiRtprevRR(t _deltachain(RFRtcompsizet uncompsizet chainsizet deltatypetchaintiterrev(t generaldeltaRJRM(s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pytrevinfovs,           ss rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratios) readsize largestblk rddensity srchunkss iiiislrev chainid chainlen prevrev deltatype compsize uncompsize chainsize chainratio lindist extradist extraratios7%7d %7d %8d %8d %7s %10d %10d %10d %9.5f %9d %9d %10.5fRFtchainidtchainlentprevrevRWRTRURVt chainratiotlindistt extradistt extraratios*readsize largestblock readdensity srchunkss %10d %10d %9.5f %8dtreadsizet largestblockt readdensitytsrchunksN(R RR t openrevlogRJtstarttlengthRR#tFLAG_GENERALDELTAtgetattrR@RRR<R=t IndexErrortfloatRREt deltautilt slicechunkR( RGRHR?RRhRitwithsparsereadR[Rt chainbasesRFtcomptuncompRWRXRVt chainbaseR\t basestarttrevstartt lineardistRaR^R_RbRcRdRft revschunktblkendtblksizeRe((RZRJRMs=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRPGs'                         sdebugdirstate|debugstatetnodatess+do not display the saved mtime (DEPRECATED)tdatessdisplay the saved mtimetdatesortssort by saved mtimes [OPTION]...c K@s{|d }|jddk r)t}n|jd}d}|rPd}nd}xt|jjjd|D]\}}|ddkrd }n=|rd }n.tjd tj |d}t j |}|d d @rd} nd|d d@t j @} |jd|d| |d||fquWx@|jjD]/} |jtd|jj| | fqDWdS(s)show the contents of the current dirstateR|R{R}R[cS@s|dd|dfS(Niii((R((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRsRiisunset sset s%Y-%m-%d %H:%M:%S ii tlnks%3ois%c %s %10d %s%s iiscopy: %s -> %s N(RRfR>RRt_mapRttimetstrftimet localtimeRt strtolocalR0tumaskREtcopiesRtcopied( RGRHRR{R}ttimestrtkeyfuncR?tenttmodeRU((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyt debugstates,   +    ,tdebugdiscoverytoldsuse old-style discoverytnonheadss/use old-style discovery with non-heads includedRFs&restrict discovery to this set of revss[--rev REV] [OTHER]Rac  @stjtjj|\}}tj|}jtdtj |t j d|fd}tj ||dd\}}d} || |dS(s2runs the changeset discovery protocol in isolationscomparing with %s i#0c @sjdrtj|ds9tj|j}ntj|dt\}}}t |}jdsAj ddj t d|Dj jjd|}fd |D}qAnhd}|rtj|}g|D]}|j^q}ntj|d |\}} }t |}t |} t j} j d dj t d |D| |krj d n| |krj dndS(NRR)tforceRsunpruned common: %s Rcs@s|]}t|VqdS(N(R(RRZ((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pys ss heads(::%ln)c@sh|]}|qS(((RRM(tclnode(s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pys !s t ancestorsofscommon heads: %s cs@s|]}t|VqdS(N(R(RRZ((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pys -sslocal is subset sremote is subset (RR0t safehasattrRtlocallegacypeerRR-tfindcommonincomingR>R;RERRRCRR/RfR&trevrangeR'tfindcommonheadstheads( t pushedrevst remoteheadstremotetcommont_inthdstnodesR/RMtanytrheadstlheads(RRHRG(Rs=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pytdoits6  ! &   !  R/RFN(R RRtparseurlt expandpathRRqRR0t hidepasswordtrandomtseedt addbranchrevsRf( RGRHt remoteurlRR)RRt remoterevst _checkoutt localrevs((RRHRGs=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRs    ! ii t debugdownloadtoutputRhcK@stj|||}|}|r6t|dt}nz<|jt}x&|rp|j||jt}qKWWd|r|jnXdS(s9download a resource using Mercurial logic and config twbN(turlmodtopent _chunksizeRsREtclose(RGRHR/RRtfhtdestR}((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR9s  tdebugextensionsc K@s5tj|}tj|}tj}|jd|}xt|dtjdD]\}}tj |}tj |j } |rg} nt |ddj } t |dd} |j|js|jr|jdd|nl|jdd ||s|| kr%|jd n7| sA|jtd n| d } |jd | |j|jon| dtd| pd|jr|jtdddg|n|jd||j|jo| dtd|j| dd|j|jo | dtd| pdqXW|jdS(s(show information about active extensionsRRit testedwithR[tbuglinkRs%s s%ss s (untested!) is (%s!) tsources location: %s s bundled: %s tnotyestbundleds tested with: %s tvers bug reporting: %s N(R RRR0RRRtoperatort itemgettertismoduleinternaltfsencodet__file__RkRRfRRtverboseRERRt condwriteR}t formatlistR( RGRHRtextsthgverRtextnametextmodt isinternalt extsourcet exttestedwitht extbuglinktlasttestedversion((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyROs@ (    $ t debugfilesetRMs#apply the filespec on this revisiontREVs all-filess3test files from all revisions and working directorys show-matchers(print internal representation of matcherRs show-stages$print parsed tree at the given stagetNAMEs+[-r REV] [--all-files] [OPTION]... FILESPECc K@s"ddlm}|jtj|}tj||jdd}dtj fdt j fdt j fg}t d|D}t }|jr|d r|jdn|dd gkr|j|nNx:|dD].} | |krtjtd | qqW|j|dt j|} xr|D]j\} } | | } | |kr8|dsr| dkr|jd | n|jt j| d q8q8Wt } |d rx>|D]3} || }| j|j| j|jqWn|d s|jdkrp|d}| j|jjtj|dt|jdtdt| j|jn#| j|j| j|j|j|}|ds|ddkr|jr|jdt j!|d nx7t"| D])} || s qn|jd| qWdS(s'parse and apply a fileset specificationi(tfilesetRFtparsedtanalyzedt optimizedcs@s|]\}}|VqdS(N((RRZRU((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pys st show_stageRsinvalid stage name: %ss* %s: s t all_filestsubrepostunknowntignoredt show_matchers * matcher: s%s N(#R[RtsymbolsR RR&t revsingleRRftidentityRtanalyzetoptimizeR;RtaddRzRRBRtparseREt prettyformatRtsubstateRFRtwalktmatchallR-R>t matchfilesetR8t prettyreprR(RGRHtexprRRtctxtstagest stagenamest showalwaysRZttreeRURRMRtwctxRX((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR}sZ              # t debugformatc  @s%tj|}tdtjDttdfd}|jd|}|jrvd}n tj}|j d|j dtd|j d|j r|j dn|j d x:tjD]/}|j |j |}|j |}||kr-d } d } n*||jkrKd } d } n d} d} |jd||j|jd| |jdd||d| |j|krd} nd} |j|j dd||d| |j|j dd||jdd|j d qW|jdS(sdisplay format information about the current repository Use --verbose to get extra information about current config value and Mercurial default.cs@s|]}t|jVqdS(N(R=R(Rtfv((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pys ssformat-variantc@sddt|S(Ns%s:R(R=(R(tmaxvariantlength(s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pytmakeformatnamesRcS@s(tj|dr|S|r dSdSdS(NRRR(R0R(tvalue((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyt formatvalues Rs repos config defaults s!formatvariant.name.mismatchconfigs!formatvariant.repo.mismatchconfigs"formatvariant.name.mismatchdefaults"formatvariant.repo.mismatchdefaultsformatvariant.name.uptodatesformatvariant.repo.uptodateRRRHs %3ssformatvariant.config.specialsformatvariant.config.defaulttconfigs %6sRas %7ssformatvariant.defaultN(R RRR.tallformatvariantR=RtisplainRRRRtfromrepot fromconfigRaRERRR( RGRHRRRRRt repovaluet configvaluet namelabelt repolabelt configlabel((Rs=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRsN            !t debugfsinfos[PATH]t.cC@s5|jd||jdtj|p,d|jdtj|rOdpRd|jdtj|prd|jdtj|rdpd|jd tj|rdpdd}yCtjd d d |%}tj |j rdpd}Wd QXWnt k rnX|jd|d S(s2show information detected about current filesystems path: %s smounted on: %s s (unknown)s exec: %s RRs fstype: %s s symlink: %s s hardlink: %s tprefixs .debugfsinfoRBNscase-sensitive: %s ( RER0tgetfsmountpointt checkexect getfstypet checklinkt checknlinkR t namedtempfiletfscasesensitiveRtOSError(RGRht casesensitiveRU((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRs & &&( tdebuggetbundletHRsid of head nodetIDtCRsid of common nodeRtbzip2sbundle compression type to usetTYPEsREPO FILE [-H|-C ID]...c K@sItj|}tj|||}|jdsEtjdni}|rwg|D]}t|^qX|d %d iis} N( R RR RERERRRFR(RGRHR?RRMRRtpp((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR7s  $+tdebugindexstatscC@s|jjtd|jj}tj|dsItjtdnx=t |j j D]#\}}|j d||fqbWdS(s)show stats related to the changelog indexitstatss+debugindexstats only works with native codes%s: %s N( RCtshortestRRJR0RRRBRRR:RRE(RGRHRJRR((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR9s  %t debuginstallc K@sptj|}d}d}|jd|}|j|jdtdtjdT}ytj tj tjWn,t k r}t j |}|d7}nX|j|dtd||jd td tj|jd td d tjd |jdtdtjjtjtjttj}tjr]|jdn|jdtd|jt|ddddddd|kr|jtdnd|kr|jtdntj }|jdtd|j!dd|jd td!dj"|j!dd|jd"td#t#j#|jd$td%tjjtjtt#j#dUkr1dT}yNdd(l$m%} m&} m'} m(} t)| t)| t)| t)| fWn,t*k r}t j |}|d7}nX|j|d)d*|ntj+j,j-} |jd+td,|jtd-| Ddd.dddd/|jd0td1|jtd2| Ddd.dddd/tj+j.tj/}|jd3td4|jg|D]}|j0r|j1^qdd.dddd/d5}tj2rQd6}n|jtd7||j3d8t4tj2t5j6}|jd9d:d;j"||j| d<td=|r~t5j7d>}|r<dT}yt5j5j8|Wn(t*k r"}t j |}dT}nX|j|d?d*|ndT}|j|d@tdA||j| dBtdCdDn|s|d7}n|j| d<tdE|j9}tj:|}t;j<|d}|jdFtdG|t;j=|}|j| o|dHkdItdJ| o9|dHko9||j| oS|dHkdKtdL| oi|| r|dHkr|d7}ndT}dT}y|j>}Wn/t?j@k r}t j |}|d7}nX|j|dMtdN||j|dOtdP||j| d<tdQ|sF|j3dR|n|j|dRtdS||jA|S(Vs;test Mercurial installation Returns 0 on success. cS@sEtjdd\}}tj|d}|j||j|S(NRshg-debuginstall-R(R tmkstemptostfdopenRER(tcontentstfdRRU((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyt writetemps   iR<Rschecking encoding (%s)... it encodingerrors. %s (check that your locale is properly set) t pythonexes checking Python executable (%s) t pythonverschecking Python version (%s) s%d.%d.%dit pythonlibschecking Python lib (%s)... tsnitpythonsecuritys&checking Python security support (%s) Rtprotocoltfmts%stsept,stls1.2sT TLS 1.2 not supported by Python install; network connections lack modern security sV SNI not supported by Python install; may have connectivity issues with some servers Rs checking Mercurial version (%s) t+t hgverextras%checking Mercurial custom build (%s) thgmodulepolicyschecking module policy (%s) t hgmoduless#checking installed modules (%s)... Rtallow(tbase85tbdifftmpatchtosutiltextensionserrors %s t compenginess-checking registered compression engines (%s) cs@s|]}|jVqdS(N(R(RR((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pys st compengines, tcompenginesavails,checking available compression engines (%s) cs@s'|]}|jr|jVqdS(N(t availableR(RR((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pys stcompenginesservers>checking available compression engines for wire protocol (%s) tmissingRZs"checking "re2" regexp engine (%s) tre2t templatedirsschecking templates (%s)... RR[s no template directories found smap-cmdline.defaulttdefaulttemplateerrortdefaulttemplateschecking default template (%s) tdefaulttemplatenotfounds template '%s' not found Ras5 (templates seem to have been installed incorrectly) teditorschecking commit editor... (%s) tvit vinotfoundsf No commit editor set and can't find %s in PATH (specify a commit editor in your configuration file) teditornotfoundsV Can't find editor '%s' in PATH (specify a commit editor in your configuration file) tusernameschecking username (%s) t usernameerrorsJchecking username... %s (specify a username in your configuration file) sno problems detected tproblemss1%d problems detected, please check your install! N(RRQ(BR RRRRERRRftcodecsRAtsysstrt LookupErrorR8t forcebytestrRt sysexecutabletsyst version_infoR>RhtdirnameRRR;R*tsupportedprotocolsthassniRRRRR0RRRRtcextRRRSRTRURBt ExceptionRWt_enginesRtsupportedwireenginest SERVERROLEtwireprotosupportRt_re2R}tboolR,t templatepathst templatepatht frommapfilet geteditorRR7t shellsplittfindexeRfRRBR(RGRRBRhRterrtinsttsecurityRRRRSRTRURWtwirecompenginesRR]RRXRbt editorbintcmdpathRf((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR<s        ",                  t debugknowns REPO ID...cO@stj|}tj|||}|jdsEtjdn|jg|D]}t|^qR}|j ddj g|D]}|rdpd^qdS(stest whether node ids are known to a repo Every ID must be a full-length hex node id string. Returns a list of 0s and 1s indicating unknown/known. tknowns*known() not supported by target repositorys%s R[t1t0N( R RRRRRRBRRRER(RGRtidsRRHRRRU((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRGs (tdebuglabelcompletesLABEL...cG@st|||dS(sEbackwards compatibility with old bash completion scripts (DEPRECATED)N(tdebugnamecomplete(RGRHRI((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRUst debuglockstLs force-locksfree the store lock (DANGEROUS)tWs force-wlocks'free the working state lock (DANGEROUS)sset-locks set the store lock until stoppedtSs set-wlocks(set the working state lock until stoppedc @s|jdr"|jjdn|jdrD|jjdn|jdsb|jdrfdSg}z|jdry|j|jtWqtjk rtj t dqXn|jdry|j|j tWqtjk rtj t d qXnt |rBj t d dSWd t|Xtjd}fd }|||jd|j 7}|||jd|j7}|S( sshow or modify state of locks By default, this command will show which locks are held. This includes the user and process holding the lock, the amount of time the lock has been held, and the machine name where the process is running if it's not local. Locks protect the integrity of Mercurial's data, so should be treated with care. System crashes or other interruptions may cause locks to not be properly released, though Mercurial will usually detect and remove such stale locks automatically. However, detecting stale locks may not always be possible (for instance, on a shared filesystem). Removing locks may also be blocked by filesystem permissions. Setting a lock will prevent other commands from changing the data. The command will wait until an interruption (SIGINT, SIGTERM, ...) occurs. The set locks are removed when the command exits. Returns 0 if no locks are held. t force_lockRt force_wlockRxit set_wlockswlock is already heldtset_lockslock is already helds&ready to release the lock (y)? $$ &YesNc @sVy|t}Wntjk r,d}nX|r@|jny|j|}|tj}tj |j }|j |}d|kr|j d\}} |t jkrd|pd| f}qd|pd| |f}njd|d||fdSWn+tk r<} | jtjkr=q=nXjd|ddS( Nt:suser %s, process %sRfsuser %s, process %s, host %ss%-6s %s (%ds) is %-6s free i(R@RtLockHeldRftreleasetlstattstattST_MTIMER0Rftst_uidtreadlockRtsockett gethostnameRER terrnotENOENT( R1RtmethodRotsttageRltlockerthosttpidR(tnowRG(s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pytreports0    (RtsvfstunlinkR1RvRxR@RRRBRRR=t promptchoiceRR(RGRHRtlockstheldR((RRGs=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRZs8!   tdebugmanifestfulltextcacheRsclear the cacheRs(add the given manifest node to the cachetNODEc K@s|j|jjd}y |j}Wn%tk rS|jtddSX|jdrp|jn|ry|j|j |}Wn+t j k r}t j |ddnX|j nt|s|jtdn|jtdt|fd }xc|D][} |j| } t| } || d 7}|jtd t| tj| fqW|jjd j} |jtd tj|tj| fWdQXdS(s@show, clear or amend the contents of the manifest fulltext cacheR[sOCurrent revlog implementation doesn't appear to have a manifest fulltext cache NRthintsCheck your manifest node ids Cache emptysFCache contains %d manifest entries, in order of most to least recent: iisid: %s, size %s tmanifestfulltextcaches%Total cache data size %s, on-disk %s (Rt manifestlogt getstoraget_fulltextcachetAttributeErrorRRRRRARRkRBRsR=RERR0t bytecountt_openerRtst_size( RGRHRRRMtcacheRRt totalsizeRR}tsizetondisk((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRs@           ! tdebugmergestatec@sdfd}tj|}|j|jdfd}jd|jd| r rjdnysjd|dnY|jrjd |d n-jd |djr|d nd S( spprint merge state Use --verbose to print out information about whether v1 or v2 merge state was chosen.cS@s|tkrdS|SdS(Ntnull(R(th((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyt _hashornulls c@s#jd||dkr&}n}x|D]\}}|dkr_jd|q3|dkrjd|q3|dkr|jdd\}}jd ||fq3|d kr|jd}|d d !\}}} } } } } |dkrd }|d }n|d d!\}}jd|||| fjd| |fjd| | fjd| |fq3|dkrK|jdd\}}|jd}d }g}xC|t|kr'|jd||||df|d7}qWjd|dj|fq3|dkr|jdd}g|D]}t|d krp|^qp}jdjd|d jd|dt|dkrjd|dqq3jd||jddfq3WdS(Ns* version %d records iRs local: %s tOs other: %s RXssmerge driver: %s (state "%s") tFDCiisnot stored in v1 formati s1file: %s (record type "%s", state "%s", hash %s) s local path: %s (flags "%s") s ancestor path: %s (node %s) s other path: %s (node %s) RUs%s = %sisfile extras: %s (%s) s, Roslabels: s local: %s s other: %s s base: %s sunrecognized entry: %s %s s (RERR=RvRtreplace(RtrecordstrtypetrecordtdrivertmdstateRMRUR thashtlfiletafiletanodetofiletonodeRRt rawextrastextrasRt extrastringsR4Ro(RRGt v1recordst v2records(s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyt printrecordss^       "      #  +  tLOmlc@s;j|d}|dkr-d|dfSd|fSdS(Niii(tfind(RMtidx(torder(s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR6s Rsno merge state found sno version 2 merge state is!v1 and v2 states match: using v2 is$v1 and v2 states mismatch: using v1 N( tmergemodt mergestatet_readrecordsv1t_readrecordsv2tsortRER{t _v1v2matchR(RGRHRIRtmsR((RRRGRRs=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRs* :         RsNAME...c@st}xB|jjD]1\}}|dkr|j|j|qqW|jd|jjDt}|sdg}nx+|D]#|jfd|DqW|jdjt ||jddS(s:complete "names" - tags, open branch names, bookmark namesR)cs@s'|]\}}}}|s|VqdS(N((RttagRttiptclosed((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pys WsR[c3@s$|]}|jr|VqdS(N(R(RRZ(RN(s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pys ]ss N( R;tnamesRRzt listnamest branchmapt iterbranchesRERR(RGRHRIRRtnst completions((RNs=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRMs      !RRs markers flagsrecord-parentss+record parent information for the precursorsdisplay markers relevant to REVt exclusives0restrict display to markers only relevant to REVRJsdisplay index of the markertdeletes#delete markers specified by indicess[OBSOLETED [REPLACEMENT ...]]c@s5tj|}d|jdrg}xg|jdD]V}y|jt|Wq=tk rtjtd|dtdq=Xq=W|j rtjtdn|j 1t j |j |}|jtd|WdQXdS|dk r|d r&tjd ni}tj|d pE|j|d changeset references must be full hexadecimal node identifiers(RR=Rt TypeErrorRRB(RRZ((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyt parsenodeidss   Rsinvalid index value: %rRsuse integers for indicess6cannot delete obsmarkers in the middle of transaction.s deleted %i obsolescence markers NRFs+cannot select revision when creating markerRlc3@s|]}|VqdS(N((Rtsucc(R(s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pys sRRktrecord_parentss2cannot used --record-parents on unknown changesetscs@s|]}|jVqdS(N(R(RR((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pys sRRtmetadataRGsbad obsmarker input: %sRRRcS@s|jS(N(t_data(R((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRscS@stS(N(R>(RX((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRsRJc@s |kS(N((RX(t markerset(s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRs(+R RRRvR,t ValueErrorRRBRtcurrenttransactionRR"tdeleteobsmarkerstobsstoreRERfRt fromlocalRfttupleRyR6RJt unfilteredRtcreateRR|RR&RRR-Rt getmarkersRR;Rt enumerateRR RR(RGRHt precursort successorsRtindicesRRZRtsuccsRottrRktprecRRR/RMRRt markerstoitert isrelevantRRRXtind((RRs=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRas      #      #    tdebugpathcompleteRUtfullscomplete an entire pathtnormalsshow only normal filestaddedsshow only added filestremovedsshow only removed filess FILESPEC...c @s!fd}d}dr/|d7}ndrF|d7}ndr]|d7}nj|s{d g}ntt}}xC|D];}|||pd \} } |j| |j| qW|j||jd jfd t|D|jd d S(s)complete part or all of a tracked path This command supports shells that offer path name completion. It currently completes only files already known to the dirstate. Completion extends only to the next path segment unless --full is specified, in which case entire paths are used.c@sj}tjjtjjtj|}jtj }|jkri|j | riggfStjj |r|d7}n|t |}tj dk}|r|j tj d}nt |}d}tt}} | j|j} } x|jD]\} } | j |r| d|kr|rW| j dtj } n|rm| | qn| jtj |}|dkr| | | q| | qqW|| fS(Nt/Ri(RR>RhR(RRR?trootR tossepRtisdirR=RR;RRR(Rht acceptableRRtrootdirtfixpathstspeclent fullpathsRtdirstadddirtaddfileRURR(RRH(s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pytcompletes6 '      R[RtnmR RNR RMRtnmars c3@s!|]}j|VqdS(N(tpathto(RR(tcwdRH(s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pys sN(R?R;RzRERR( RGRHtspecsRRRRRRRURO((RRRHs=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRs&           /t debugpeercC@sitd 6}|j|tj|i|}|jdk }|j}|jtd|j |jtd|rtdn td|jtd|rtdn tdWdQXdS( s+establish a connection to a peer repositorytdevelsdebug.peer-requestsurl: %s s local: %s RRs pushable: %s N(Rsdebug.peer-request( R>tconfigoverrideRRRRftcanpushRERR/(RGRht overridesRRR ((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRs  /tdebugpickmergetools check for files in this revisiont changedeletes!emulate merging change and deletes [PATTERN]...t inferrepoc O@stj|}i}|drN|d|d<|jdtj|dn|j|dZtjjd}|dk r|jdtj|n|j dd}|r|jd tj|nt j ||jd }t j |||}|d } x|j |D]} || } zV|jsJ|jd tntj||| | jd | jk| \} } Wd|js|jnX|jd| | fqWWdQXdS(sfexamine which merge tool is chosen for specified file As described in :hg:`help merge-tools`, Mercurial examines configurations below in this order to decide which merge tool is chosen for specified file. 1. ``--tool`` option 2. ``HGMERGE`` environment variable 3. configurations in ``merge-patterns`` section 4. configuration of ``ui.merge`` 5. configurations in ``merge-tools`` section 6. ``hgmerge`` tool (for historical reason only) 7. default tool for fallback (``:merge`` or ``:prompt``) This command writes out examination result in the style below:: FILE = MERGETOOL By default, all files known in the first parent context of the working directory are examined. Use file patterns and/or -I/-X options to limit target files. -r/--rev is also useful to examine files in another context without actual updating to it. With --debug, this command shows warning messages while matching against ``merge-patterns`` and so on, too. It is recommended to use this option with explicit file patterns and/or -I/-X options, because this option increases amount of output per file according to configurations in hgrc. With -v/--verbose, this command shows configurations below at first (only if specified). - ``--tool`` option - ``HGMERGE`` environment variable - configuration of ``ui.merge`` If merge tool is chosen before matching against ``merge-patterns``, this command can't show any helpful information, even with --debug. In such case, information above is useful to know why a merge tool is chosen. ttoolRGt forcemergeswith --tool %r tdebugmergepatternstHGMERGEswith HGMERGE=%r Rswith ui.merge=%r RFR#RRoNs%s = %s (RGR&(R RR{R|RRtenvironRRfRR&RR'RR2t pushbufferR>Rt _picktooltisbinaryRt popbufferRE(RGRHR$RR!thgmergetuimergeRRXR#RhtfctxR%ttoolpath((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR"*s60 !      t debugpushkeysREPO NAMESPACE [KEY OLD NEW]c O@stj|i|}|r|\}}}|j;} | jdi|d6|d6|d6|d6j} WdQX|jtj| d| SxRt|j |j D]5\} } |j dt j | t j | fqWdS( saccess the pushkey key/value protocol With two args, list the keys in the given namespace. With five args, set a key to new if it currently is set to old. Reports success or failure. tpushkeyt namespaceRRtnewNs s%s %s (RRtcommandexecutort callcommandtresultRqR R|RtlistkeysRRER8t escapestr( RGRR4tkeyinfoRttargetRRR5RRMRR((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR2ys  (t debugpvecsA Bc C@s7tj||}tj||}tj|}tj|}||krWd}n=||krld}n(||krd}n||Brd}n|jtd||jtd||jtd|j|jf|jtdt|j|jtj|j |j |j ||fdS( Nt=t>tsN( R&RRxRRfRR;RRtrebuildR( RGRHRFRRt changedfilest manifestfilest dirstatefilest manifestonlytdsonlyt dsnotadded((Rs=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pytdebugrebuilddirstates      tdebugrebuildfncachecC@stj||dS(srebuild the fncache fileN(R"trebuildfncache(RGRH((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRUst debugrenamesrevision to debugs [-r REV] FILEc O@stj|}tj||jd}tj||f||}x|j|D]}||}|jj|j } |j |} | r|j t d| | dt | dfqV|j t d| qVWdS(sdump rename informationRFs%s renamed from %s:%s iis%s not renamed N(R RR&RRR'RtfilelogtrenamedtfilenodeRKRERR( RGRHtfile1R$RRRXRDR0RYRK((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRWs 1t debugrevlogROtdumpsdump index datacE @sL tj|}tj|d||}|jdrt|}|jdd}t}xUtj|D]D}|j |} | dkr|} n|j |} |j |} |j |\} } |j |}||}|t|j |8}|j|y||j|}Wntk r:d}nX|jd|| | |j||j||j| |j| |j| |j| |||t|| fqnWdS|j}|d@}g}t}|tj@r|jdn|tj@rt}|jd n|s+d g}nd}d}d}d}d}d}tjd }d}d}d}d}d}d} g}!g}"g}#d9ddg}$d9ddg}%d9ddg}&tjd }'d9ddg}(i})i}*d }+t|}x>tj|D]-}|j |\} } |j |},|dkre|+|j ||$n| tkr~|d7}n|j|}-|,tkr'|!jd|"j|j||#j|-|-dkr|d7}|d7}q|d7}|dcd7<|+|-|%|+|-|'dns|!j|!|,d|"|,}.|j|}/|"j|.|#j|/|.|-|-dkr|d7}|d7}n|j|r|+|-|&|d7}|j|}0||0cd7<|+|-|'|0n|+|-|(|,|dkrO|d7}|,| kr3|d7}q|,| kr| d7} qnK|,| krh|d7}n2|,| kr|d7}n|,tkr|d7}nt j!|dr|j"||d}1n|j#j"||d}1|1rt$|1dd!}2nd}2|2|)kr#d|)|2|:r|5|:}>nddfd}?dfd}@d}A|jd||jddj'||jd|@|:}B|?|:}C|jd|C||jd|B|A|||jd|B|A||||jd|C||jd|B|A|||jd|B|A||||jd |B|A||||jd!|B|A|||x:t(|D],}0|jd"|0|B|A||0|q8 W|jd#|B|A|3||jd$|C|:|jd!|B|A|6|7|:x:t(|D],}0|jd"|0|B|A|8|0|:q W|jd#|B|A|9|:d%}D|jd|jd&|C|xEt(|)D]7}2|j|D|2|j|B|A|)|2|qP W|jd'|C|:xEt(|)D]7}2|j|D|2|j|B|A|*|2|:q W|jd|?t&|;|<|=|>}B|jd(|B|;|jd)|B|<|jd*|B|=|jd+|B|>|dkr |jd|jd,t)|$n|jd-t)|%|jd.t)|&xHt(|'D]:}0|0dkr q n|jd/|0ft)|'|0q W|jd0t)|(|3dkrH |jd|@|3}B|@|3d1}C|jd2|B|A||3|dkr |jd3|C|A|||jd4|C|A| ||jd5|C|A|4|n|rH |jd6|B|A||3|jd7|B|A||3|jd8|B|A||3qH nd9S(:s'show data and statistics about a revlogR\R]se# rev p1rev p2rev start end deltastart base p1 p2 rawsize totalsize compression heads chainlen iis:%5d %5d %5d %5d %5d %10d %4d %4d %4d %7d %9d %11d %5d %8d itinlineRZs(none)cS@sdS(Ni((((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR'scS@s dddgS(Ni(Rf(((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR>scS@s^|ddks ||dkr-||dRt defaultdictRfRRit issnapshott snapshotdepthR0RR`t_revlogtbytestsumRRRR(ERGRHR?RRMtnumrevsttsRRFtdbasetcbasetclenRRtrst compressionRtformatRtgdeltat nummergestnumemptyt numemptytextt numemptydeltatnumfulltnumsemit numsnapdepthtnumprevtnump1tnump2tnumothert nump1prevt nump2prevt chainlengthsRqt chainspanstdatasizetfullsizetsemisizet snapsizedeptht deltasizetchunktypecountstchunktypesizesR_RRtbaseaddrtrevaddrtdepthtsegmentRkt numdeltastnumoprevt totalrawsizet fulltotalt semitotalt snaptotalt deltatotalRt avgchainlent maxchainlent maxchainspant compratioRdRgRhRJtfmt2Rl((RcRfs=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR\s          !!                                                     "  "     ""                 tdebugrevlogindexR~s revlog formattFORMATs[-f FORMAT] -c|-m|FILEc K@sXtj|}tj|d||}|jdd}|dkratjtd|n|jrst }nt }d}x*|D]"}t ||j |}PqW|dkr|j r|jddj|d j|fqh|jd dj|d j|fnO|dkrh|j rK|jd dj|qh|jd dj|nx|D]}|j |} |dkrpy|j| } Wntk rttg} nX|j r*|jd ||j||j||j||| || d|| dfqP|jd||j||| || d|| dfqo|dkro|j|} |j r|jd||j||j||j||j||j|| d| d|| f qP|jd||j||j||j|| d| d|| fqoqoWdS(s#dump the contents of a revlog indexRR~iisunknown format %di s* rev offset length linkrev %s %s p2 RRs rev linkrev %s %s p2 s? rev flag offset length size link p1 p2 %s s- rev flag size link p1 p2 %s s% 6d % 9d % 7d % 7d %s %s %s s% 6d % 7d %s %s %s s+% 6d %04x % 8d % 8d % 8d % 6d % 6d % 6d %s s!% 6d %04x % 8d % 6d % 6d % 6d %s N(ii(R RR RgRRRBRR2RRR=RRRER3trjustRRtRRhRiR1R.RRn( RGRHR?RRMR~R5R6RRR8tpr((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR s`         #         '. %   3. 5t debugrevspecRs/print parsed tree after optimizing (DEPRECATED)s show-revss(print list of result revisions (default)sshow-sets+print internal representation of result sets no-optimizeds"evaluate tree without optimizationsverify-optimizedsverify optimized resulttREVSPECc @stj|}jdddfdfdfdtjfdtjfdtjfg}|d r|d }n|d r|d rtjt d nt d |D}t }t }j r%|d r%|j d|j ddg|dr%|j dq%n|drQ|drQtjt dn|ddgkrt|j |nNx:|dD].}||krtjt d|qqW|j |di} d+} tj|dtj|} x|D]\}} | | | |<} ||ks7||kr| | kr|dsM|dkrajd|njtj| d| } qqW|d rbtj| d|} tj| d|}|ds|dd+kr!j r!jdtj| djdtj|dnt| } t|}| |krIdSjdddjdddtjd+| |}x|jD]\}}}}}|d-krx/| ||!D]}jd!|dd"qWn|d.kr"x/|||!D]}jd$|dd%qWn|d&krx)| ||!D]}jd'|q<WqqWd(Stj| }||}|ds|dd+krj rjd)tj|dn|d*sd+Sx|D]}jd,|qWd+S(/sparse and apply a revision specification Use -p/--show-stage option to print the parsed tree at the given stages. Use -p all to print tree at every stage. Use --no-show-revs option with -s or -p to print only the set representation or the parsed tree respectively. Use --verify-optimized to compare the optimized result with the unoptimized one. Returns 1 if the optimized result differs. t revsetaliasRcS@s|S(N((R((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRn stexpandedc@stj|jS(N(R%t expandaliasesR(R(taliasesRG(s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRo s t concatenatedRRt no_optimizeditverify_optimizeds1cannot use --verify-optimized with --no-optimizedcs@s|]\}}|VqdS(N((RRZRU((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pys z sRRs'cannot use --optimize with --show-stageRsinvalid stage name: %sRAs* %s: s tshow_sets* analyzed set: s* optimized set: is --- analyzed Rs diff.file_as+++ optimized s diff.file_bRRs-%s s diff.deletedtinserts+%s s diff.insertedtequals %s is* set: t show_revsNs%d (RR(RR(R RRR%t foldconcatRRRRBRR;RRRzRfRR$tlookupfnRERt makematcherR8RR-tdifflibtSequenceMatchert get_opcodes(RGRHRRRRRt showchangedRZt treebystaget printedtreeRRUtarevstbrevstsmRtalotahitblotbhiRtfuncR/((RRGs=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRT s           $  #   "    #  t debugservetsshstdios*run an SSH server bound to process handlestlogiofds$file descriptor to log server I/O tot logiofilesfile to log server I/O tocK@s)tj|}|ds1tjtdnd }|drc|drctjtdn|dry#tjt|ddd}Wqt k r}|j t j krntjt|ddd}qXn#|drt |ddd}nt j||d |}|jd S( srun a server with advanced settings This command is similar to :hg:`serve`. It exists partially as a workaround to the fact that ``hg serve --stdio`` must have specific arguments for security reasons. Rs&only --sshstdio is currently supportedRRs)cannot use both --logiofd and --logiofiletabiRtlogfhN(R RRRBRRfR>R?R,R RtESPIPERR3t sshservert serve_forever(RGRHRRRR((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR s"   #& tdebugsetparentss REV1 [REV2]cC@sZtj||j}tj||dj}|j|j||WdQXdS(sDmanually set the parents of the current working directory This is useful for writing repository conversion tools, but should be used with care. For example, neither the working directory nor the dirstate is updated, so file status may be incorrect after running this command. Returns 0 on success. RN(R&RRRxt setparents(RGRHRKRLtnode1tnode2((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR s  tdebugssls[SOURCE]c K@stjs!tjtdn|sN|sEtjtdnd}ntj|j|\}}tj |}d}idd6dd6}|j |kry)|j t |jp||j f}Wqtk rtjtdqXntjtd d d lm}tjtjd tjd tjdd} z| j|| jt} |jtd|j |j| dt} | s|jtd|j| s|jtdq|jtdn|jtdWd| jXdS(stest a secure connection to a server This builds the certificate chain for the server on Windows, installing the missing intermediates and trusted root via Windows Update if necessary. It does nothing on other platforms. If SOURCE is omitted, the 'default' path will be used. If a URL is given, that server is used. See :hg:`help urls` for more information. If the update succeeds, retry the original operation. Otherwise, the cause of the SSL error is likely another issue. s6certificate chain building is only possible on Windowss>there is no Mercurial repository here, and no server specifiedRaithttpsitsshsmalformed port number in URLs,only https and ssh connections are supportedi(twin32t ssl_versiont cert_reqstca_certss&checking the certificate chain for %s tbuilds-certificate chain is incomplete, updating... sfailed. sdone. s$full certificate chain is available N(R t iswindowsRRBRRRRR0R/RftschemeRR,tportRR[Rtsslt wrap_socketRt PROTOCOL_TLSt CERT_NONEtconnectt getpeercertR>RqtcheckcertificatechainR@R( RGRHRRR)R/taddrt defaultportRRtcertR((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR s>  )  tdebugsubsrevision to checks[-r REV] [REV]cC@sztj||d}x^t|jjD]G\}}|jd||jd|d|jd|dq+WdS(Nspath %s s source %s is revision %s i(R&RRfRRRRE(RGRHRFRRR((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR0 s "tdebugsuccessorssetstclosests#return closest successors sets onlys[REV]c O@si}t}t}xtj||D]}||}|jd||xtj||jd|dd|D]u} | r|jd|j|| dx5| dD]&} |jd|j|| qWn|jdquWq%Wd S( s}show set of successors for revision A successors set of changeset A is a consistent group of revisions that succeed A. It contains non-obsolete changesets only unless closests successors set is set. In most cases a changeset A has a single successors set containing a single successor (changeset A replaced by A'). A changeset that is made obsolete with no successors are called "pruned". Such changesets have no successors sets at all. A changeset that has been "split" will have a successors set containing more than one successor. A changeset that has been rewritten in multiple different ways is called "divergent". Such changesets have multiple successor sets (each of which may also be split, i.e. have multiple successors). Results are displayed as follows:: Here rev2 has two possible (i.e. divergent) successors sets. The first holds one element, whereas the second holds three (i.e. the changeset has been split). s%s RRs iiRs N(RuRR&RRERtsuccessorssetsR( RGRHR/RRtctx2strtnode2strRFRtsuccssetR((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR; s $     t debugtemplatesapply template on changesetstDtdefinesdefine template keywords KEY=VALUEs&[-r REV]... [-D KEY=VALUE]... TEMPLATEcK@sd}|drM|dkr4tjtdntj||d}ni}x|dD]}yLd|jddD\}}| s|dkrtn||| sR>iRGs malformed keyword definition: %st templatealiass s * expanded: t resourcess* keywords: %s s, s* functions: %s N(RfRt RepoErrorRR&RRRRBRRR,RR{RRRttemplateresourcest maketemplatertsymbolsuseddefaultRERRt renderdefaultRR'tshowR t strkwargsR(RGRHttmplRR/tpropsRORRRRtnewtreettresR'tkwdstfuncst displayerRM((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyRp sJ  "  !  "   #  # !tdebuguigetpasstprompts prompt texttTEXTs [-p TEXT]cC@s$|j|}|jd|dS(sshow prompt to type passwords respose: %s N(tgetpassRE(RGRRM((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR st debuguipromptcC@s$|j|}|jd|dS(sshow plain prompts response: %s N(RRE(RGRRM((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR stdebugupdatecachesc O@s:|j(|j|jdtWdQXWdQXdS(s'warm all known caches in the repositoryRN(RxRt updatecachesR>(RGRHR$R((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR  s tdebugupgradereposextra optimization to performtrunsperforms an upgradecC@stj||d|d|S(s^upgrade a repository to use different features If no arguments are specified, the repository is evaluated for upgrade and a list of problems and potential optimizations is printed. With ``--run``, a repository upgrade is performed. Behavior of the upgrade can be influenced via additional arguments. More details will be provided by the command output when run without ``--run``. During the upgrade, the repository will be locked and no writes will be allowed. At the end of the upgrade, the repository may not be readable while new repository data is swapped in. This window will be as long as it takes to rename some directories inside the ``.hg`` directory. On most machines, this should complete almost instantaneously and the chances of a consumer being unable to access the repository should be low. R R(R.t upgraderepo(RGRHR R((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR  st debugwalks[OPTION]... [FILE]...c O@sctj|}tj|d||}|jrP|jdtj|dnt |dj |}|ssdSd}|j ddrtj dkrd}nd t g|D]}t|^qt g|D]}t|j|^qf}x\|D]T}||||j||j|r:d p=d f} |jd | jqWdS( s&show how files match on given patternss * matcher: s NcS@s|S(N((R((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR sRGtslashR cS@s tj|S(N(R0R((R((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR ssf %%-%ds %%-%ds %%stexactR[s%s (R RR&R'RfRRER8RR-Rt configboolR RR=RKRtrstrip( RGRHR$RRXRRURDRJR@((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR s   ! "2 7tdebugwhyunstablecC@sxtj|tj||D]h}d}|jdr^djd|dDd}n|jd|d||d|dfqWd S( s$explain instabilities of a changesetR[tdivergentnodesRcs@s+|]!}d|j|jfVqdS(s%s (%s)N(Rtphasestr(RR((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pys ss %s: %s%s %s t instabilitytreasonRN(Rt whyunstableR&RRRRE(RGRHRFtentrytdnodes((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR s% t debugwireargstthreetfourtfivesREPO [OPTIONS]... [ONE [TWO]]c O@stj|}tj|||}xtjD]}||d=q.Wi}x-|jD]\}}|rV|||rt-j4|d?}nt-j.|}|| |j?r|j@}|j6tdEt-jA|dFtdGdHqG |j6tdEt-jA|dFtdGdHq2|dIkr|d/k r|tjtdJng}q2|dKkr |j6tdLt3|xItB| jC|D]2\}} |j6tdM|t-j:| fqWd/}q2|j0dNr | s0 tjtdOn|j1d<dH}!t3|!dPkrl tjtdQn|!d=\}"i}#d/}$g}%x|D]}|j2}tDjEdR|}&|&r tjF|&jGd=}tjF|&jGdH}||#| ----------- Send a request to run a named command, whose name follows the ``command`` string. Arguments to the command are defined as lines in this block. The format of each line is `` ``. e.g.:: command listkeys namespace bookmarks If the value begins with ``eval:``, it will be interpreted as a Python literal expression. Otherwise values are interpreted as Python b'' literals. This allows sending complex types and encoding special byte sequences via backslash escaping. The following arguments have special meaning: ``PUSHFILE`` When defined, the *push* mechanism of the peer will be used instead of the static request-response mechanism and the content of the file specified in the value of this argument will be sent as the command payload. This can be used to submit a local bundle file to the remote. batchbegin ---------- Instruct the peer to begin a batched send. All ``command`` blocks are queued for execution until the next ``batchsubmit`` block. batchsubmit ----------- Submit previously queued ``command`` blocks as a batch request. This action MUST be paired with a ``batchbegin`` action. httprequest --------------------------- (HTTP peer only) Send an HTTP request to the peer. The HTTP request line follows the ``httprequest`` action. e.g. ``GET /foo``. Arguments of the form ``: `` are interpreted as HTTP request headers to add to the request. e.g. ``Accept: foo``. The following arguments are special: ``BODYFILE`` The content of the file defined as the value to this argument will be transferred verbatim as the HTTP request body. ``frame `` Send a unified protocol frame as part of the request body. All frames will be collected and sent as the body to the HTTP request. close ----- Close the connection to the server. flush ----- Flush data written to the server. readavailable ------------- Close the write end of the connection and read all available data from the server. If the connection to the server encompasses multiple pipes, we poll both pipes and read available data. readline -------- Read a line of output from the server. If there are multiple output pipes, reads only the main pipe. ereadline --------- Like ``readline``, but read from the stderr pipe, if available. read -------- ``read()`` N bytes from the server's main output pipe. eread --------- ``read()`` N bytes from the server's stderr pipe, if available. Specifying Unified Frame-Based Protocol Frames ---------------------------------------------- It is possible to emit a *Unified Frame-Based Protocol* by using special syntax. A frame is composed as a type, flags, and payload. These can be parsed from a string of the form: ``request-id`` and ``stream-id`` are integers defining the request and stream identifiers. ``type`` can be an integer value for the frame type or the string name of the type. The strings are defined in ``wireprotoframing.py``. e.g. ``command-name``. ``stream-flags`` and ``flags`` are a ``|`` delimited list of flag components. Each component (and there can be just one) can be an integer or a flag name for stream flags or frame flags, respectively. Values are resolved to integers and then bitwise OR'd together. ``payload`` represents the raw frame payload. If it begins with ``cbor:``, the following string is evaluated as Python code and the resulting object is fed into a CBOR encoder. Otherwise it is interpreted as a Python byte string literal. R+s --localssh requires a repositoryRRCthttp2tssh1tssh2sinvalid value for --peerRs*valid values are "raw", "ssh1", and "ssh2"s/cannot specify --localssh with an explicit paths (waiting for commands on stdin) s-RRs --sshstdiotstdintstdouttstderrtbufsizeiRtlogdataRYRsssh://localserverR,s.creating ssh peer for wire protocol version 1 tautoreadstderrs.creating ssh peer for wire protocol version 2 susing raw connection to peer s)creating ssh peer from handshake results thttps*only http:// paths are currently supportedsMercurial debugwireprotot useragentt loggingfhRt loggingnamet logdataapist loggingoptst sendaccepts/creating http peer for wire protocol version 2 t experimentalshttppeer.advertise-v2R-topenerNs;could not instantiate HTTP peer for wire protocol version 2sRthe server may not have the feature enabled or is not allowing this client versions'--peer %s not supported with HTTP peerss$unsupported connection configurationsraw+s!cannot call raw/raw+ on this peerR[cs@s|]}|jVqdS(N(R%(RRo((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pys stflushscannot call flush on this peertcommands6cannot send commands unless peer instance is availableRiseval:issending %s command tPUSHFILEtrbs result: %s sremote output: %s s response: %s tbprefixRit batchbeginsnested batchbegin not allowedt batchsubmits#sending batch with %d sub-commands sresponse #%d: %s s httprequest s+cannot use httprequest without an HTTP peerisDinvalid httprequest: expected format is "httprequest s^([a-zA-Z0-9_-]+): (.*)$s BODYFILE sframe s#unknown argument to httprequest: %scs@s|]}t|VqdS(N(Ru(RRU((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pys  sc@s tjS(N(R Rj((R(s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR sRscS@sdS(N(Rf(((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR ss Content-Typesapplication/mercurial-cbors cbor> %s Rt readavailables(readavailable not available on this peertreadlines#readline not available on this peert ereadlines$ereadline not available on this peersread sread not available on this peerseread s eread not available on this peersunknown action: %ssunclosed "batchbegin" request(RCR.R/R0(R>shttppeer.advertise-v2(RCsraw+(YR RRRBRt interactiveRER-R)RrRfR7thgcmdR t subprocesstPopentrapplyt tonativestrtPIPER1R2R3RR0tmakeloggingfileobjectR>R)t sshv1peert sshv2peertmakepeerR/RtauthinfoRzR@R2RR?RR*RR-Rt httpv2peerRR8t unescapestrR@RRR%R=tevalpythonliteralRvRqRt _callpushRR:R6R7R8R4tcommandresponsetobjectsR Rt _submitbatchtreR'tstrurltgroupRsR2tmakeframefromhumanstringturlreqtrequestt get_methodturlerrturlerrorRktheadersRR5t decodeallRRHR,tkill(+RGRHRhRtblockstprocR1R2R3R?RIR/R6RtuRUt openerargstbatchedcommandstactiontlinesR}RAR@tfieldsRRRtresRRtvalRtchunkRbthttppathRftbodytframesRXtframetreqtcttcount((Rs=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyR*9 s                                               "     !             (t __future__RRiRRRRR>RR]RRRRiRLRnRti18nRRRRRRRRR[RR R R R R RRRRRRRRRRRtlockmodRRRRRRRRR R!R"R#R$R%R&R'R(R)R*R+R,R-R.R/RR0R1R>R2R3R4tutilsR5R6R7R8t revlogutilsR9RnRRAR>R:RORfR@RWRRRRRRRRR RRR!R&tdebugrevlogoptsRARHt formatteroptsRPRRRRRRRRRR R#R0R7R9R<RRRRRRt commitopts2RRRtwalkoptst mergetooloptsR"R2R=RTRURWR\RRRRRRRRRRR R RRRR)R*(((s=/usr/lib64/python2.7/site-packages/mercurial/debugcommands.pyts               ./"  '         8        . $.     ;=! * "   ('!   Z*c!  j<'D J'!!  ) " =   ]!=  3! 5!!!   )