m RDc@sJdklZdkTdklZeedeedeedeedeedeedd efd YZd efd YZd Z dZ dZ ghddZ e de dZe de dZdZdZdZdZdZe e e e dZe e e e de dZe edZe eie ehdZdZdefd YZd!Z d"Z!e ed#Z"d$Z#d%Z$e d&Z%d'Z&d(Z'd)Z(e d*Z)d+Z*e d,Z+d-Z,d.Z-d/Z.d0Z/dd1Z0e d2Z1d3Z2d4Z3e d5Z4d6Z5d7Z6d8Z7d9Z8e d:Z9d;Z:d<Z;d=Z<d>Z=d?Z>d@Z?dAZ@dBZAdCZBdDdEZCdFdGZDdHZEdIZFe dJZGe dKZHe dLZIe e e dMZJe dNZKdOZLdDdPZMe dQZNdRZOdSZPdTZQdUZRdVZSdWZTdXZUdYZVdZZWe d[ZXd\ZYd]ZZd^Z[d_Z\e eee e d`Z]e eee e daZ^dbZ_hdce#dddegedffdgdhgedifdjdke edlfgedmf<dne$dddegedffdgdhgedifdjdke edlfgedof<dpe&dqdrdedsfdtdue edvfdwdxe edyfdzd{e ed|fdjd}e ed~fdde edfdddegedffdgdhgedifgedf<de'dde edfdddedfdqdrdedfdddedfdddegedffdgdhgedifgedf<de(dde edfdddedfdddedfdzd{dedfdddedfdwdxdedfdddegedffdgdhgedifgedf<de)dde edfgedf<de*dddedfdqdrdedfdddegedffdgdhgedifgedf<de+dde edfdqdrgedfdde edfdde edfdddedfdddedfgedf<de,dde edfdddedfdddedfdzd{dedfdwdxdedfdddegedffdgdhgedifgedf<de.dde edfdde edfdddegedffdgdhgedifdjdke edlfgedf<de/gedf<de0dde edfgedf<de1dqdrdedfgedf<de2gedf<de3gedf<de4gedf<de5gedf<de6gedf<de7gedf<de8gedf<de9gedf<de:dddegedffdgdhgedifgedf<de;dqdrgedfdtdue edvfdde edfdde edfdde edfdde edfdddegedffdgdhgedifgedf<de=dddedfdtdue edvfdde edfgedf<de>dddegedffdgdhgedifgedf<de?dde edfdde edfdde edfdde edfdjde edfdqdrgedfdwdxe edfdddegedffdgdhgedifg edf<de@dde edfdddedfdqdrdedfdddedfgedf<de"ged f<d eAged f<d eBdd dedfdddedfdddedfdde edfgedf<deCdde edfdde edfdddedfdjde edfdddedfdde edfdqdrgedfdddedfdddedfdddedfg edf<deDdddedfdddedfged f<d!eEdqdrded"fdde ed#fdd$e ed%fdddegedffdgdhgedifged&f<d'eFdde edfd(d)ged*fdd+ded,fdqdrged-fdde edfdddedfdd.e ed/fdde edfdddedfdddegedffdgdhgedifg ed0f<d1eGged2f<deHdd3ded4fdde ed5fged6f<d7eIdde edfdde edfdde edfdddedfdqdrged8fdjde edfdddedfdddedfdddedfg ed9f<d:eJdde edfdqdrded;fdddedfdddedfged<f<d=eKged>f<d?eMdwd@e edAfdddedfdde edfdqdrgedfdddedfgedBf<dCeNdde edDfdddedfdqdrged8fdddedfgedEf<dFeOddgedfdzd{dedGfdwdxdedxfdHdIdedJfdddedKfdddedLfgedMf<dNePgedOf<dPeQdde edQfdde edRfdddegedffdgdhgedifgedSf<dTeRdde edUfdde edfdddegedffdgdhgedifdjdke edlfgedVf<dWeSdqdrdedXfddYe edZfdddeged[fdgdhged\fdjdke edlfged]f<d^eTged_f<d`eUgedaf<dbeVddcdeddfdzdee edffddgdedhfdidjdedkfddldmednfdtdodedpfdjdqdedrfddsdedtfddudedvfddwe edxfddydedzfddded{fd|d}e ed~fg edf<deWdde edfdtde edfdqde edfdzde edfdwde edfdde edfdjde edfdde edfdde ed#fdddegedffdgdhgedifg edf<deXdde edfdddedfdzd{dedfdwdxdedfdqdrdedfgedf<deYgedf<deZdde edfdddedfdde edfdddedfgedf<de[dwd@e edfgedf<de\gedf<de]dd3dedfdde edfdde edfdde ed5fgedf<de_gedf<de!gedfR?RARB((Rtincreasing_windows]s       itrevstip:0csMi|}|djo-iiit ||<}n|S(N( tchcacheR,RDtchtNoneRt changelogtreadtlookuptstr(RDRF(RRE(Rt getchangews -c#sii}x|iddD]\}}g}x>t |||dD]%}|i |i |i |qSW|ix#|D]}||jo|VqqWq)WdS(Nii(RRHtcounttcl_countRCtfilelogR)twindowtrevstxrangetjtappendtlinkrevR/treverseRD(ROR)RSRDRPRQRN(RRC(Rt filerevgens #  ic#sgx`iiddD]B\}}x3t|||dD]}||dfVqAWqWdS(Niii( RCRRHRMR)RPRRRSRL(R)RSRP(RLRRC(Rt changerevgens  c#sxdtD]\}}dddjdfVg}|||!D]}|jo ||qWqW~}t |}|i xD|D]<}i |pt|d}d||fVqWx|D]}d|dfVqWqWdS(NiRPiitaddtiter(RCtlenRQR)RPRRDtwantedtnrevstlisttsrevstsorttfncacheR,tfilterR3RLtfnsRG(RcR]R)RDRRPR_(R3RaRLRCRQR\(Rtiterates =  )N((RCR.RR'R(RR3R8RHRMtFalsetmaptinttrevrangetuiRQR\tslowpathRaRERLR9R:RWR@tmaxtminrevtmaxrevtfile_tfileROtTrueRDt setdefaultRTRXt changefilesRbtmatchesRd(RiRR'R(RORnRlR8RmRDRCRQRRrRsRWRaRdRjR\RXR3RLRE((RR3RaRLRCRQR\RERtwalkchangerevsBsP)       t:cCs|p|Snyt|}t||jo tn|djo||ii7}n|djo d}n!||iijo tnWn`tj oTy|ii |i |}Wqt j ot i td|qXnX|S(sturn user-level id of changeset into rev number. user-level id can be tag, changeset, rev number, or negative rev number relative to number of revs (-1 is tip, etc).isinvalid revision identifier %sN(tvaltdefvalRgtnumRKt ValueErrorRRHRMRDRJtKeyErrorRRR(RRvRwRx((Rtrevfixs&     "cCs|p|iiddfSnd}t|djoz|d}t|joM|i td\}}t ||d}t |||i i d}qHt ||d}nt|djokt|djpt|djot itdnt ||dd}t ||dd}nt itd|dj o|it|}n|it||fS(sdreturn pair of nodes, given list of revisions. second item can be None, meaning use working dir.iiistoo many revisions specifiedN(RQRtdirstatetparentsRGR?R[R>t revrangeseptsplitR{RHRMRRRRJRK(RiRRQR?R>((Rtrevpairs(  #" c csh}x|D]}t|jo|itd\}}t||d}t|||i i d}||jodpd}xt ||||D].}||joqnd||R?R{RRHRMtstepRRRDRKRG( RiRRQR?RDR>RRR((RRhs(     cshdd<dd<dd<}hdd<d d <} yo| i|no$dj od | d stRcstiiS(N(RKRRHRDR/((RR/(RRsthcs tS(N(tshortR/((R/(RRst%cCsdS(NR((((RRstbcstiiiS(N(RR tbasenameRR+((R(RRscsttiiS(N(RKR=RDR/tzfilltrevwidth((R/R(RRsR=cs tS(N(RKttotal((R(RRstNcs tS(N(RKtseqno((R(RRstncstittS(N(RKRRR[R((RR(RRscstiiS(N(RR Rtpathname((R(RRstscstiipdS(NR&(RR tdirnameR((R(RRstdcsS(N(R((R(RRstpiiR#s.invalid format spec '%%%s' in output file name(t node_expandertexpanderR/tupdateRRGRRRtnewnameR[tpattpatlenR)tcRTR!RztinstRRRR(RRR/RRRRRRRRR)RR((RR/RRRRRt make_filenamesB6!          twbc Cs| p |djo"d|jo tiptiSnt|dod|jo|Snt|dod|jo|Sntt||||||||S(Nt-twtwriteRIR=(RtmodetsyststdouttstdinthasattrtopenRRR/RRRR(RRR/RRRRR((Rt make_file+s"c CsdtfdY}d }d }zS|oBtii|ot i t d|nt |d}n1t idddd\}}ti|d}|}|o |id tid } n|id |} t}xm|pet}x<ti|D]+}t}|i| iti|qW|i| itiqW|i| id }|SWd |d j o|i n|d j oti!|nXd S( sWrite a bundle file and return its filename. Existing files will not be overwritten. If no filename is specified, a temporary file is created. bz2 compression can be turned off. The bundle file will be deleted in case of errors. t nocompresscBstZdZdZRS(NcCs|S(N(R(tselfR((Rtcompress@scCsdS(NR#((R((RtflushBs(RRRR(((RR?s sfile '%s' already existsRtprefixs hg-bundle-tsuffixs.hgtHG10i tHG10UNN("tobjectRRGtfhtcleanuptfilenameRR texistsRRRRttempfiletmkstemptfdtfdopenRRtbz2t BZ2CompressortzRetemptyRpt changegroupt chunkitertcgtchunktgenchunkt closechunkRtclosetunlink( RRRRRRRRRR((Rt write_bundle7sD   #!  c #s|piid}nii|}ii|d}t i |d} |pi ||d|}n|\}}}}}"o+td|||f\}}}n| o| o| odSn|oZii|}ii|dt i |dd}d}n;t idt i d}d }|io d}!nP|iot pt!}g} ||gD]}|o| ||qq~ }!|i%}| i'd p|d }| i'd p|d } | i'dp|d} | i'dp|d}x|D]}d}||jo i.|i||}n||}|i1t2i3|| |||||!d|d |d | d| d|q_Wxi|D]a}d}||}|i1t2i3|| |||||!d|d |d | d| d|qWxy|D]q}i.|i||}d}|i1t2i3|| |||||!d|d |d | d| d|qdWdS(NiiR0cs t|S(N(RRR(R(R(RRyscsS(N(t_date2(tf(R(Rtdate2scsi|i|S(N(RRoRRItmmap2(R(RR(RRIsicsfy,titii|ifSWn3t j o'}|i t i jonSnXdS(N(RtdatestrRtlstatRtwjoinRtst_mtimettztOSErrorterrterrnotENOENTR(RR(RRR(RRs ,cs i|S(N(RtwreadR(R(R(RRIst show_functiontshowfunctignore_all_spacetignorewstignore_space_changetignorewsamounttignore_blank_linestignoreblanklinesttext(5tnode1RR|R}RHRItchangetmanifesttmmapRRtdate1Rtnode2RR0R R R R R RfRRRtmakedateRRitquietRGR=tverboseRRthexfuncRR/tdiffoptsR(R,RRRRRttoRottntfpRtmdifftunidiffR(#RRiRRRRR0RRR(RRRRRRRRRRIRRR R/RR RR RRRR RR=R ((RRRRRRtdodiffkst      8    *  * * cCs;|i|}|djo|i|}||||jo1||}|ii td d i |n|ii!td |ii"i|dt|df|iitd |d|iitd | |iio|ii |i|d|}xt$tdtdtdg|D]:\} } | o'|ii'd| d i | fq+q+Wn(|ii'tdd i |d|di(} | oo|iio:|iitd|ii| |iidq|iitd| i*dn|iiddS(s(show a single changeset or file revisions%d:%s Niiischangeset: %d:%s stag: %s sparent: %d:%s sbranch: %s t smanifest: %d:%s suser: %s sdate: %s sfiles:sfiles+:sfiles-:s %-12s %s sfiles: %s iis description: s ssummary: %s s (+RRRHtlogt changenodeRGR/RDRiRRRRIRRRtdateRR}Rt debugflagtnullidRRR[RtnodetagsttagtstatustparenttbrinfotbrR!tdebugRRR:tkeytvaluetnotetstript descriptiont splitlines(RRDRRRRRR}RR RRRRRRR((RtshowsZ    w:  *& '= "$ /' ((RRRRRGR (((RRs  cCs_|id}|oti|dt}n-|idd}|oti|}n|idp|idd}|p|o|oYt i i |pBti d|}|pti |}n|o |}qqnyti|||}Wn+tj o}ti|idnX|o|i|n|Snt||S( svshow one changeset. uses template or regular display. caller can pass in 'style' and 'template' options in opts.ttemplatetquotedRit logtemplatetstyles map-cmdline.iN(R(R,ttmplt templatert parsestringReRitconfigtmapfileRR tisfilet templatepathtmapnametchangeset_templaterRRt SyntaxErrorRRRRt use_templateR(RiRR(RRRRR((Rtshow_changesets0"cCs4|itdti|itddS(s(output version and copyright informations'Mercurial Distributed SCM (version %s) s Copyright (C) 2005 Matt Mackall This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. N(RiRRtversiont get_versionR(Ri((Rt show_versionscsgd}ddd}o?djo2y|Wqtj o|qXnipot ni t di ddjoi t dn5ioi t dni t d ioi d tfng}xD]\}}|i d |dfxo|D]g\} } }} |i d | od | | od| fd| |ot d|pdffquWqKW|otg}|D]&} | do|t| dqq~}xN|D]B\}}|oid|||fq2id|q2WndS(sshow help for a command, extension, or list of commands With no arguments, print a list of commands and short help. Given a command name, print help for that command. Given an extension name, print help for that extension, and the commands it provides.csotidnt|\}}id|d|di}|pt d}ni o|i dd}nid|i i pet|djo(it dd i|dn|doid |dfqndS( Ns s%s iis(No help text available)s%s is aliases: %s s, toptions(t with_versionRRiRtfindcmdRtaliasesR)RtdocRRR trstripR[R!t option_listsRT(RR)R$R#(R&R!Ri(Rthelpcmd2s     ( c sh}h}xtiD]\}}|iddd}|o|| oqndjo|i d oqn|i d}i o|i doqn|di} | ptd} n| iddi||<|i d||R?RERAR@RDRCR5RBR<RR RF((RiRR!R&R5Rthelp_'sH     ]@ c Osg}xt|||D]\}}}}|o6|i o|i t d|n|i |q|ii|djo(|i t d||i |qqW|idp|i|ndS(sadd the specified files on the next commit Schedule files to be version controlled and added to the repository. The files will be added to the repository at the next commit. If no names are given, add all files in the repository. s adding %s t?tdry_runN(tnamesR2RR'R(R4tabstrelR7RiRRRRTR|tstateR,RY( RiRR'R(R4RLRKRMR7((RRYs cOs&|itdt||||S(sadd all new files, delete all missing files (DEPRECATED) (DEPRECATED) Add all new files and remove all missing files from the repository. New files are ignored if they match any of the patterns in .hgignore. As with add, these changes take effect at the next commit. This command is now deprecated and will be removed in a future release. Please use add and remove --after instead. sJ(the addremove command is deprecated; use add and remove --after instead) N(RitwarnRtaddremove_lockRR'R((RiRR'R(((Rt addremoves c Cs_gg}}xt|||D]\}}} } |djoe|i i |djoL|i ||ip| o)|itd|o| p|qn|i i |djo`tii|  oL|i ||ip| o)|itd|o| p|qq q W|idp*|i|d||i|d|ndS(NRRIs adding %s R=s removing %s RJtwlock(RYtremoveR2RR'R(R4RLRMR7R|RNRTRiRRRRR RR,RR( RiRR'R(RRR4RLRSRYRMR7((RRPs & -- 1cs~d}hd} hd}|ptitdnd| gdt gd|gd|gg}|d o&|d o|d od |dWqqWdS(sshow changeset information per file line List changes in files, showing the revision id responsible for each line This command is useful to discover who did a change or when a change took place. Without the -a option, annotate will avoid processing files it detects as binary. With -a, annotate will generate an annotation anyway, probably with undesirable results. cstii|S(N(RRRHR/RD(RD(R(RtgetnodescsLy |SWn9ti|i|}||<|SnXdS(N(tucacheRDRRiRt changectxRtu(RDRW(RRURi(Rtgetnames  $ csJi|}|djo*tii|i}|  *$'"%   -> c Ks}|do|i|d}n<|ii\}}|tjoti t dnt |||}t ii||ijoti t dnt|g|\}}}|idpd}|d} |djoW|djoti t dnti}| pt ii|id } qCnt || |} ti|||||d  || d S( sZcreate unversioned archive of a repository revision By default, the revision used is the parent of the working directory; use "-r" to specify a different revision. To specify the type of archive to create, use "-t". Valid types are: "files" (default): a directory full of files "tar": tar archive, uncompressed "tbz2": tar archive, compressed using bzip2 "tgz": tar archive, compressed using gzip "uzip": zip archive, uncompressed "zip": zip archive, compressed using deflate The exact name of the destination archive or directory is given using a format string; see "hg help export" for details. Each member added to an archive file has a directory prefix prepended. Use "-p" to specify a format string for the prefix. The default is the basename of the archive, with suffixes removed. RDs6uncommitted merge - please provide a specific revisions%repository root cannot be destinationttypeRRRs$cannot archive plain files to stdouts-%ht no_decodeN(R(RRJR/R|R}tp2RRRRRtdestRR trealpathR+R.RgR3R,tkindRRRRtarchivaltarchive( RiRRkR(R/RjRmRgR3R((RRo"s*      !c stii\}}|tjotit dni |}i i|\} }| tjotit dn|tjo|dptit dni |d} | | |fjo/tit dt| t|fn| } n+|dotit dn| } i|dtdt|i} t| | d i dp$ti || ti"|| nt#}Wd|oi$| gnXWnti%j o}ti't(|nrt)j oe}|i*t*i+joitd |qitd ||i,f|d 7}dSnXi.p| o!i0td || fn|| <| |jo(i d oi2|| ni4|||fdS( Ns*%s: not overwriting - %s collides with %s tafters?rRps"%s: not overwriting - file exists RJR&R=s%s: deleted in working copy s%s: cannot copy - %s iscopying %s to %s (5Rt canonpathRR+Rttargett abstargetR6t reltargetttargetsR,tprevsrcRGRiRORtabssrcR(RR RR|RNRRt targetdirtisdirtmakedirstrestoretundeleteRRtshutiltcopyfiletrelsrctcopymodeReRStErrorRRRKRRRRterrorsRR7RRRzRRT( RRRRR7RRRRRRR(RRRRiRRRR((RRzsX  C   %    ! cstii|o|tii|}o t tii |dn t |ot ti7nd}n$od}n d}|S(Nicstii|S(N(RR R!RkRtstriplen(R(RkR(RRSscstiitii|S(N(RR R!RkRR(R(Rk(RRUscsS(N(Rk(R(Rk(RRWs(RR RRRRRR+Rtabspfxt destdirexistsR[RRtseptres(RRktsrcsRRR(RRR(RkRRt targetpathfnJs   c slti|ddod}nBtii|}t |t ddjod}t |ot ti7ntiitiitii|dog|}t tii|d}|o|t ti7}n|||jo |q2nd}n$od}n d}|S(Nicstiitii|S(N(RR R!RkRR(R(Rk(RR]scsYd}xLD]D}tii|d|}tii |o|d7}q q W|S(Nii( tscoreRRRR R!RkRRR(RRRR(RkR(Rtevalpathcsicstii|S(N(RR R!RkRR(R(RkR(RRuscstiitii|S(N(RR R!RkRR(R(Rk(RRyscsS(N(Rk(R(Rk(RR{s(RtpatkindRRGRRRR+RRR[RRRRRR RR!RkRRt striplen1R( RRkRRRRRRR(RRR(RkRRRttargetpathafterfnZs(! 2  s"no source or destination specifiedisno destination specifieds@with multiple sources, destination must be an existing directoryRsno files to copys(consider using --after) ('RRRRRRRRzRRR^R'RRRR[tpopRkRR RRRRGR(ttfntcopylistRRR2RRRR7RRTt targetpathRiRO(RiRR'R(RRRRRRRRRRRRRRRRRkRRzR7RR((RiRR(RRRRRRRtdocopysT 4%  6  !# $cOs1|id}t|||||\}}|S(smark files as copied for the next commit Mark dest as having copies of source files. If dest is a directory, copies are put in that directory. If dest is a file, there can only be one source. By default, this command copies the contents of files as they stand in the working directory. If invoked with --after, the operation is recorded, but no copying is performed. This command takes effect in the next commit. NOTE: This command should be treated as experimental. While it should properly record copied files, this information is not yet fully used by merge, nor fully reported by log. iN(RRRRRiR'R(terrsR(RiRR'R(RRRR((RRzscCs{tititidt|dd}|i|i ||i |}|id|i|t|fdS(s<find the ancestor revision of two revisions in a given indextauditR#is%d:%s N(trevlogRtopenerRRRetindexR=tancestorRJtrev1trev2RRiRRDR(RiRRRRR=((Rt debugancestors-$c Ks|dog}tg}|o't|\} }|i|dnxX|D]P}xG|D]?}|do|id|dn|id|dq\WqOW|i ddi |dSnt|i}|i|i ddi |dS( s=returns the completion list associated with the given commandR iis-%ss--%ss%s s N(R(R R=totablestcmdR"R#tentryRTRRfRiRR!t findpossibleR1tclistR`( RiRR(RfR RRRRR#((Rt debugcompletes&    cCs|p|ii}n|i|}|ii|}|d}|ii |}|i }|i i ||idS(sArebuild the dirstate as it would look like for the given revisioniN(RDRRHRRJRIRRRt readflagsRRRR|trebuildt iteritems(RiRRDRRRRR((Rtdebugrebuildstates  cCs|ii\} } |ii|ii}|i}|i |i i| d}|i i| d}|i i|} |i i|} d}x|D]}|ii|} | djo8|| jo+|itd|| f|d7}n| djo8|| jo+|itd|| f|d7}n| djoE|| jo8|| jo+|itd|| f|d7}qqWxX| D]P}|ii|} | d jo+|itd || f|d7}qqW|otd }ti|nd S( s0validate the correctness of the current dirstateitnrs%%s in state %s, but not in manifest1 iRs&%s in state %s, but also in manifest1 R2s+%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(RR|R}tparent1tparent2RIRftdcR1R`RHtm1ntm2nRtm1tm2RRRNRiRORterrorRR(RiRRRR1RRRRRNRRRR((Rtdebugcheckstates@    '  c Gs|o\tg}|D]}d|jo ||qq~djotitdqcnx|iD]\}}}|d|}|o^xr|D]O}||jo|i d||fq||jo|i |dqqWqp|i d||fqpWdS(s/show combined config settings from all hgrc files With no args, print names and values of all config items. With one arg of the form section.name, print just the value of that config item. With multiple args, print names and values of all config items with matching section names.R&isonly one config item permitteds%s=%s s N(tvaluesR[RtvRRRRit walkconfigtsectionRRtsectnameR( RiRRRRRRRR((Rt debugconfigs ?   cCs@|ptt}n|ii|i||i|dS(smanually set the parents of the current working directory This is useful for writing repository conversion tools, but should be used with care. N(RRRRR|t setparentsRJR(RiRRR((Rtdebugsetparentssc Cs|ii|ii}|i}|ixg|D]_}|i d||d||dd@||dt i dt i ||d|fq6Wx;|ii D]-}|i td|ii ||fqWd S( s)show the contents of the current dirstates%c %3o %10d %s %s iiiis%x %Xiscopy: %s -> %s N(RR|RIRfRR1R`RnRiRttimetstrftimet localtimetcopiesRR(RiRRR1RnR((Rt debugstate$s    7& cCstititidt|d d|d}y#|i |i |i |Wn+t j otitd|nXdS(s*dump the contents of an data file revisionRis.iisinvalid revision identifier %sN(RRRRRReRnR=RiRtrevisionRJRDRzRR(RiRnRDR=((Rt debugdata2s#c Cstititidt|dd}|i ddxt |i D]}|i |}|i|}|i d||i||i||i||i|t|t|dt|dfqQWdS( s"dump the contents of an index fileRR#is' rev offset length base linkrevs nodeid p1 p2 s"% 6d % 9d % 7d % 6d % 7d %s %s %s iN(RRRRRReRnR=RiRtrangeRMR)R/R}tppR>tlengthtbaseRUR(RiRnR/RR)R=((Rt debugindex;s-cCstititidt|dd}|i dxt |i D]}|i |}|i|}|i d|i|d|f|dtjo(|i d|i|d|fqMqMW|i ddS( s dump an index DAG as a .dot fileRR#is digraph G { s %d -> %d is} N(RRRRRReRnR=RiRRRMR)R/R}RRDR(RiRnR/RR)R=((Rt debugindexdotGs- $,cCs|it||gd}|oyU|i|}|ii|}|i i|d}|t||gd}Wqt i tfj o|i|}qXn |i}|i|}|o/|itd|dt|dfn|itddS(sdump rename informationisrenamed from %s:%s is not renamed N(RRoR"R=RDRJRRHRIRRR2Rt RepoErrorRzRtrenamedRiRRR(RiRRoRDR2RR=R((Rt debugrenameSs /c Ostt|||}|pdSndtg}|D]\}}} } |t |q8~tg}|D]\}}} } |t | qn~f}xU|D]M\}}} } |||| | odpdf} |id| iqWdS(s&show how files match on given patternsNs%%s %%-%ds %%-%ds %%sR7R#s%s (R^R2RR'R(R-RkRR4RLRMR7R[tfmtRDRiRR%( RiRR'R(RR4R-RRLRMRDR7((Rt debugwalkgsv$c Osmt|||d\}}t|||\}}}t t i |||||d|d|dd|dS(sdiff repository (or selected files) Show differences between revisions for the specified files. Differences between files are shown using the unified diff format. When two revision arguments are given, then changes are shown between those revisions. If only one revision is specified then that revision is compared to the working directory, and, when no revisions are specified, the working directory files are compared to its parent. Without the -a option, diff will avoid generating diffs of files it detects as binary. With -a, diff will generate a diff anyway, probably with undesirable results. RDR0RR(N(RRiRR(RRR.R'RcR3R8RRR( RiRR'R(RcR3R8RR((Rtdiffss c Cs|i|}g} |ii|D]} | tjo | | q&q&~ } |do| i n| o | dpt}|ii |} t||d|d|d|d|} | tijo|id| in| id| id | d | id | d | id t|| idt|t| d jo| idt| d n| i| di| idt| ||||d|d| tijo| indS(Nt switch_parentiRRRRs%s s# HG changeset patch s # User %s is # Date %d %d is # Node ID %s s # Parent %s is R(RRJR\R/RRHR}RRR(RVtprevRIRRRRRRRRRiRRRRR[R%RR(RiRR\RRRR(R/RRRRR}R((Rtdoexports,>     c Os|ptitdnd}tt|||}t |}t t t |} t |djo tdp td}|i|x4|D],}|d7}t|||||| |qWdS(sdump the header and diffs for one or more changesets Print the changeset header and diffs for one or more revisions. The information shown in the changeset header is: author, changeset hash, parent and commit comment. Output may be to a file, in which case the name of the file is given using a format string. The formatting rules are as follows: %% literal "%" character %H changeset hash (40 bytes of hexadecimal) %N number of patches being generated %R changeset revision number %b basename of the exporting repository %h short-form changeset hash (12 bytes of hexadecimal) %n zero-padded sequence number, starting at 1 %r zero-padded changeset revision number Without the -a option, export will avoid generating diffs of files it detects as binary. With -a, export will generate a diff anyway, probably with undesirable results. With the --switch-parent option, the diff will be against the second parent. It can be useful to review a merge. s&export requires at least one changesetiisExporting patches: sExporting patch: N(t changesetsRRRRR^RhRiRRQR[RRkRfRtmsgRtcsetRR(( RiRRR(RRRRQRR((Rtexports ,  c Os|itdg}xt|||D]w\}}}}|i i |djoL|i||ip| o)|itd|o|p|qq,q,W|i|dS(sdon't add the specified files on the next commit (DEPRECATED) (DEPRECATED) Undo an 'hg add' scheduled for the next commit. This command is now deprecated and will be removed in a future release. Please use revert instead. s7(the forget command is deprecated; use revert instead) Rsforgetting %s N(RiRORtforgetR2RR'R(R4RLRMR7R|RNRTRR( RiRR'R(R4RRLRMR7((RRs 1c$s[d}do|tiO}nti|| d\dodnhd} dd t fd Y h d } h h  d }#h}h}t|\}}d}t x|D]\} }}| d jo| i"q| djoi#i$i%t&|}i(i$|d}h|((RR<ls    cCs}g}|iiD]}|tjo ||qq~} | p|itddSn|i ot pt } |i \}} }}}ddig}| D]}|| |q~|p| p|p|odpdfg} |ipfg}t|i| D]!}|o|di|qq~} | o| idi| q_n|idd i| dS( sIprint information about the working copy Print a short summary of the current state of the repo. This summary identifies the repository state using one or two parent hash identifiers, followed by a "+" if there are uncommitted changes in the working directory, followed by a list of tags for this revision. sunknown Ns%s%sRR#Rs + s%s R(RRR|R}RRRiRRRRRRRR R R R R R!RRRRfRttagst parenttagsRT(RiRRRR?R R R RRR R}R@RR ((Rtidentifys;` AcOs|f|}|dpt|n|d}|d}tid} tidddti }xW|D]O}t ii||}d%} d%}d%}t}tii}|djo)|iti}|it d n-|it!|}|it d |t"i#d d \}} t i&|d }zp|d} | o'| i(dd} |i)d| n|d}|o|i)d|nd}d&}x3|i,D]%}|i.}|i)d|||joqn|i0dt1} |i3| }|o|i)t d|i5d|d7}t}t6i7}| o|i9| |i9dnx| |i5d i:D]}|i<do4|i)t dt1}|i=d|i>nY|oQ|i<do|d}|i)d|q1|i<d o|d}q1n|i<d!p|i9||i9dqqW|i?} |o2|i9| | i@dp|i9dqqq| o&| o|djo| d| 7} qqW|d"o|d"} n| o| i} nd%} |i)t d#| |iA|ptBiCt d$ntBi || |} tE| djotF||| hn|iG| | ||Wd%t iH| XqmWd%S('s-import an ordered set of patches Import a list of patches and commit them individually. If there are outstanding changes in the working directory, import will abort unless given the -f flag. You can import a patch straight from a mail message. Even patches as attachments work (body part must be type text/plain or text/x-patch to be used). From and Subject headers of email message are used as default committer and commit message. All text/plain body parts before first diff are added to commit message. If imported patch was generated by hg export, user and description from patch override values from message headers and body. Values given on command line with -m and -u override these. To read a patch from standard input, use patch name "-". RpRR s(?:From |[\w-]+:)s%^(?:Index:[ \t]|diff[ \t]|RCS file: |s'retrieving revision [0-9]+(\.[0-9]+)*$|s(---|\*\*\*)[ ])Rsapplying patch from stdin s applying %s Rs hg-patch-RtSubjects Rs Subject: %s tFroms From: %s is text/plains text/x-patchsContent-Type: %s tdecodesfound patch at byte %d is s# HG changeset patchspatch generated by hg export s# User is# Date s# Rrs message: %s sno diffs foundN(s text/plains text/x-patch(Itpatch1tpatchesR(RRRR R.R0tmailret MULTILINEtdiffretpatchRR R!tpfRGRrRRRethgpatchtemailtParserRtparseRRRRiRRRoRRRttmpnameRttmpfpR3Rt diffs_seentok_typesR2tparttget_content_typet content_typet get_payloadRptpayloadRR2R>t cStringIOtStringIORRR RDRtseekttruncatetgetvaluetendswithRRRRR[RPR~R(RiRRERFR(RSRIRQR RrRXRRPRGRKRRRTRRVRRDRR2RJRRRRRL((Rtimport_s                      RBcKs|i|}|i|ti||}|i |d|d} | p|i t ddSnd}z|d} | p|i os|i| d}t|| d|i} }|do d}n|ipti||i| }qnd} |do2g}|dD]}||i|q$~} n|ii| | d} |d o| int|||}x| D]}g}|ii"|D]}|t$jo ||qq~}|d ot%|d joqn|i&d ||d o?|o |dpt$} t(|||| ||i)dqqWWdt*|do|i+n|ot,i-|nXdS(s{show new changesets found in source Show new changesets found in the specified path/URL or the default pull location. These are the changesets that would be pulled if a pull was requested. For remote repository, using --bundle avoids downloading the changesets twice if the incoming is followed by a pull. See pull for valid source format details. Rpsno changes found NRtincomingRRDit newest_firstt no_mergesiRRJs R(.RiRRRR(RRRRt findincomingR`RRRGRRtlocalRRRt bundlerepotbundlerepositoryR+RQRRDRJRHt nodesbetweenRfRVRR>RR}RRR[R RRRRRRR(RiRRR(RR>RDRR}RRQRR`RfRRRR((RR`sP        2 > R&cKs'|i|ti||dddS(screate a new repository in the given directory Initialize a new repository in the given directory. If the given directory does not exist, it is created. If no directory is given, the current directory is used. It is possible to specify an ssh:// URL as the destination. Look at the help text for the pull command for important details about ssh:// URLs. tcreateiN(RiRR(RRRk(RiRkR(((RtinitUs  c Os|dodpd}|d}|o|i|}nd }xt|||d|ddD]\}}} } | o |i i|djoqan|d o&|itii|i||qa|i|o| p||qaWd S( sjlocate files matching specific patterns Print all files under Mercurial control whose names match the given patterns. This command searches the current directory and its subdirectories. To search an entire repository, move to the root of the repository. If no patterns are given to match, this command prints all file names. If you want to feed the output of this command into the "xargs" command, use the "-0" option to both this command and "xargs". This will avoid the problem of "xargs" treating single filenames that contain white space as multiple filenames. RRs RDR/R-s(?:.*/|)RItfullpathN(R(R?RDRRJR/RGR2R'R4RLRMR7R|RNRiRRR R!R+( RiRR'R(R/R4R?RDRLRMR7((Rtlocateds  ! &c OsdtfdY}t||||\}}}|doiyt |d} Wn(t j ot itdnX| djot itdqn ti} d}t|||}x|D]\}}}|djo||}||_q|djo|i||ii|} g}|ii| D]}|t jo ||qHqH~}|d ot!|d joqn|d ot!|d joqn|d o||}d}xg}|d D]}||i%q~D]c}||d i%jp8||di%jp!|di'|dd i%jp d }PqqW|oqq{nd} |do"|i*|ii|g} n|i+|d| |doE|o |dpt } t-|||| | d||i.dqq|djo|| joPn|i/|o)x&|i/|D]} |i1| qPWn|i2|o3|d 7}x&|i2|D]} |i.| qWqqqWdS(sshow revision history of entire repository or files Print the revision history of the specified files or the entire project. By default this command outputs: changeset id and hash, tags, non-trivial parents, user, date and time, and a summary for each commit. When the -v/--verbose switch is used, the list of changed files and full commit message is shown. tduicBsPtZdZdZdZdZdZdZdZdZ RS( NcCs||_h|_h|_dS(N(RiRthunktheader(RRi((RRs  cCs'||_g|i|R5RDRctduRoRHR/RRR}RRR[RtmisstkwtlowertkR!RGRR=R RRRRnRRpRm(RiRR'R(R>RxRlRDR}RRsRRRR4RwRMRcRyRR{R3RLR5RR((RRsp         >  ,R   "    c Cs|o^y/|i|}|ii|}|d}Wqttij o|i i|}qtXn|i i }|i i|}|i i |}|i}|ixD|D]<}|idt||||odpd|fqWdS(soutput the latest or given revision of the project manifest Print a list of version controlled files for the given revision. The manifest is the list of files being version controlled. If no revision is given then the tip is used. is %40s %3s %s t755t644N(RDRRJRRHRIRRRRRR2RR7R1RR`RRiRR( RiRRDRR7RR2RR((RRs   cKst||d|dt|S(s-Merge working directory with another revision Merge the contents of the current working directory and the requested revision. Files that changed between either parent are marked as changed for the next commit and a commit must be performed before any further updates are allowed. R/RvN(RRiRR/RpR((RiRR/R(((RRvscKs|i|pd|pd}|i|d} |do2g}|dD]}||i |qM~} nt i ||} |i| d|d}|p|itddSn|ii|| d}|do|int|||}x|D]} g}|ii| D]}|tjo ||q%q%~} |d ot| d joqn|id | |d o?| o | dpt} t|||| | |id qqWdS(sshow changesets not found in destination Show changesets not found in the specified destination repository or the default push location. These are the changesets that would be pushed if a push was requested. See pull for valid destination format details. s default-pushRBRDRpsno changes found NiRaRbiRRJs ( RiRRkRR(RGRQRRDRRJRRRRRfRRRHRgRVRR>RR}RRR[R RRR(RiRRkR(RR>RRDRfRR}RRQR((Rtoutgoing s2   2 > c KsB|oQ| oIy|i|}d}Wntij oqXX|it dn|o`|o|i |d|} n|i |} g}| iD]} || iq~}n|ii}d} |dj o|i|} nt|||} x5|D]-}|tjo| id|d| q q WdS(sishow the parents of the working dir or revision Print the working directory's parent revisions. sE'hg parent REV' is deprecated, please use 'hg parents -r REV instead tchangeidRRN(RnRDRRJRGRRRiRORR_R^RVRR}tcpR/RR|RR;R=RR(R>RRR ( RiRRnRDR;R(RRRRR>RR^((RR}+s, 1  cCs|oaxC|idD]2\}}||jo|id|dSqqW|itddSn8x4|idD]#\}}|id||fqxWdS(s,show definition of symbolic path names Show definition of symbolic path name NAME. If no name is given, show definition of available names. Path names are defined in the [paths] section of /etc/mercurial/hgrc and $HOME/.hgrc. If run inside a repository, .hg/hgrc is used, too. tpathss%s Ns not found! is%s = %s (RRit configitemsRR RROR(RiRRRR ((RRLs    cCs|djodSn|o5|djot||SqQ|itdn|djo|itdn|itddS(Niis$not updating, since new heads added s3(run 'hg heads' to see heads, 'hg merge' to merge) s((run 'hg update' to get a working copy) (tmodheadst optupdateRRiRRR(RiRRR((Rt postincoming`s   c Ks|i|}|i|ti||}|it d|d}|do'|i ot it dn>|do2g}|dD]}||i|q~}n|i|d|d|d}t||||dS(spull changes from the specified source Pull changes from a remote repository to a local one. This finds all changes from the repository at the specified path or URL and adds them to the local repository. By default, this does not update the copy of the project in the working directory. Valid URLs are of the form: local/filesystem/path http://[user@]host[:port]/[path] https://[user@]host[:port]/[path] ssh://[user@]host[:port]/[path] Some notes about using SSH with Mercurial: - SSH requires an accessible shell account on the destination machine and a copy of hg in the remote path or specified with as remotecmd. - path is relative to the remote user's home directory by default. Use an extra slash at the start of a path to specify an absolute path: ssh://example.com//tmp/repository - Mercurial doesn't use its own compression via SSH; the right thing to do is to configure it in your ~/.ssh/ssh_config, e.g.: Host *.mylocalnetwork.example.com Compression off Host * Compression on Alternatively specify "ssh -C" as your ssh command in your hgrc or with the --ssh command line option. spulling from %s RDs0pull -r doesn't work for remote repositories yetR<RpRN(RiRRRR(RRRRRRGRQRdRRRRDRJRRRR( RiRRR(RRDRRRQ((RRms  2c Ks|i|pd|pd}|i|ti||}|id|d}|do2g}|dD]}||i|qp~}n|i||dd|}|djS( scpush changes to the specified destination Push changes from the local repository to the given destination. This is the symmetrical operation for pull. It helps to move changes from the current repository to a different one. If the destination is local this is identical to a pull in that directory from the current one. By default, push will refuse to run if it detects the result would increase the number of remote heads. This generally indicates the the client has forgotten to sync and merge before pushing. Valid URLs are of the form: local/filesystem/path ssh://[user@]host[:port]/[path] Look at the help text for the pull command for important details about ssh:// URLs. Pushing to http:// and https:// URLs is possible, too, if this feature is enabled on the remote Mercurial server. s default-pushRBspushing to %s RDRpRQiN(RiRRkRR(RRRRRGRQRRDRRJtpushR=( RiRRkR(RRDRRQR=((RRs   2cOsI|itd|d}| o?|do4yt|di}Wqdtj oqdXn| o%|d oti tdnt |t |}|do$|t|dii7}nt|i|d|d|D]\} } }}}| joqn| o|| |nA|dj o|||n#oi:t dnPqW||jo)oi:t dqqn|djo&|i i |ii |d}n|jo>| o&|| jo||!t,q!q%||#t,qqWi1dp|ii)|d|i+|t,tit,d|dt,}$|ii+|dd|ii+| dd|ii+|#dd|$SndS(srevert files or dirs to their states as of some revision With no revision specified, revert the named files or directories to the contents they had in the parent of the working directory. This restores the contents of the affected files to an unmodified state. If the working directory has two parents, you must explicitly specify the revision to revert to. Modified files are saved with a .orig suffix before reverting. To disable these backups, use --no-backup. Using the -r option, revert the given files or directories to their contents as of a specific revision. This can be helpful to"roll back" some or all of a change that should not have been committed. Revert modifies the working directory. It does not commit any changes, or change the parent of the working directory. If you revert to a revision other than the parent of the working directory, the reverted files will thus appear modified afterwards. If a file has been deleted, it is recreated. If the executable mode of a file was changed, it is reset. If names are given, all files matching the names are reverted. If no arguments are given, all files in the repository are reverted. RDsGworking dir has two parents; you must specify the revision to revert toiR1RR/R0RRs reverting %s s adding %s s removing %s sforgetting %s sundeleting %s cs|did<|o~d ortiio_d}i t d|fidp$ti|ti|qnip oi|dndS(Niit no_backups%s.origs#saving current version of %s as %s RJ(txlistRTRLRtdobackupR(RR RRMtbaknameRiRRR,RRRRR7R(RRR(R7RRLRiRMR((Rthandle s & sfile not managed: %s sno changes needed to %s RJRqRRR=N(<RR|R}RRjR(RJR/RRRRRRIRHR7tpmfRGRRRKt target_onlyR2R'R;R4RLRMR7RpRRfR9R8R R R R R R|RYRSRRRRet disptableR-tentriesR`R,tmfentryRR,thitlisttmisslistt backuphitt backupmissRiROR=(&RiRR'R(RRRRRRRKR,RR RR RYRLRMRR/R RRRRRRR R7RjR4R7RR|R RSR=R((RiR(RRLRMR7RR|7 s  "      !r       &  cCs|idS(sroll back the last transaction in this repository Roll back the last transaction in this repository, restoring the project to its state prior to the transaction. Transactions are used to encapsulate the effects of all commands that create new changesets or propagate existing changesets into a repository. For example, the following commands are transactional, and their effects can be rolled back: commit import pull push (with this repository as destination) unbundle This command should be used with care. There is only one level of rollback, and there is no way to undo a rollback. This command is not intended for use on public repositories. Once changes are visible for pull by other users, rolling a transaction back locally is ineffective (someone else may already have pulled the changes). Furthermore, a race is possible with readers of the repository; for example an in-progress pull from the repository may fail if a rollback is performed. N(Rtrollback(RiR((RR scCs|i|iddS(smprint the root (top) of the current working dir Print the root directory of the current repository. s N(RiRRR+(RiR((RR+ scKs|doF|djotitdnti||}|i nd}x:|i D],}||o|i d|||qdqdW|djo-|idd otitdn|do|d oti\}} ti} | id|| ftitittd d B| d | }ti| ti|d tid nytii ||}Wn8t"i#j o)} t%i&td | id nX|i'o|i"i(\}}|d jot"i+}n1yt"i,|d }Wnt"i#j onX|djo!|i-td||fq{|i-td|n|do>t.|dd} | i0t1ti2d| in|dog}|di dD]}|t5|q~\}} ti|ti0| dti| ti6i7ti8i7ti.t%i9ti:} | d joti<| d n| d joti<| d n| djoti<| dn| djoti| qn|i dS(sexport the repository via HTTP Start a local HTTP repository browser and pull server. By default, the server logs accesses to stdout and errors to stderr. Use the "-A" and "-E" options to log to files. tstdios no repo foundsEname templates style address port ipv6 accesslog errorlog webdir_conftwebt webdir_conftdaemontdaemon_pipefdss--daemon-pipefds=%d,%dtP_DETACHiiscannot start server: s0.0.0.0iPslistening at http://%s:%d/ slistening at http://%s/ tpid_fileRs t,RiN(iii(=R(RRGRRRt sshserverRiRt serve_forevertoptlistRRft setconfigRRtpipetrfdtwfdRtargvRRTtspawnvptP_NOWAITRqtpidRRIt_exitthgwebtservert create_serverthttpdtsocketRRRRRt getsocknametaddrtportt gethostnamet gethostbyaddrRRRRRKtgetpidRRRgRRtstderrtnulldevtO_RDWRRtdup2(RiRR(RRRfRRRRRRRRRRRR((Rtserve st    !  %   !  :        c Os,|dotpt}t|||\}}}|o |i pd} g}|i d|d|d|D]4}|g} |D]}| ti| |q~ qp~\}}}}} }dd|fdd |fd d |fd d |fdd| fdd|fg}|dodpd} xg}|D] }||do ||q3q3~p|D]\} }}|dod| }nd|| f}x|D]}|i!|||i"doY|i"d oH| djo;|i#i$i%|o%|i!d|i#i$|| fqqWqaWdS(sshow changed files in the working directory Show changed files in the repository. If names are given, only files that match are shown. The codes used to show the status of files are: M = modified A = added R = removed ! = deleted, but still tracked ? = not tracked I = ignored (not shown by default) = the previous added file was copied from here tignoredR#RR0t show_ignoredR tMR tAR RR t!R RIR/RRs it no_statuss%%s%ss%s %%s%sRs %s%sN(&R(RpReRR.RR'RR3R8RRRRRt_[2]RRR6R R R R R Rt changetypesR?tcttopttchartformatRRiRR,R|RR;(RiRR'R(RRR8RRR?R RRRRR RR RR RR3R RRRR((RR6 s$YN< DcKsD|djotitdn|d j o;|itd|dotitdqnn|do|d}n|ot |i |}nn|i i\}}|tjotitdn|tjotitdnt |}|i|||d|d |d |d d S( sadd a tag for the current tip or a given revision Name a particular revision using . Tags are used to name particular revisions of the repository and are very useful to compare different revision, to go back to significant earlier versions or to mark branch points as releases, etc. If no revision is given, the parent of the working directory is used. To facilitate version control, distribution, and merging of tags, they are stored as a file named ".hgtags" which is managed similarly to other project files and can be hand-edited if necessary. The file '.hg/localtags' is used for local tags (not shared among repositories). Rsthe name 'tip' is reservedsTuse of 'hg tag NAME [REV]' is deprecated, please use 'hg tag [-r REV] NAME' instead RDs)use only one form to specify the revisionsno revision to tagsoutstanding uncommitted mergesRdRrRRN(RRRRtrev_RGRiROR(RRRJR=R|R}RyRjRR(RiRRRR(RjRyR=((RRd s&       !cCs|i}|ix|D]\}}y&d|ii|t|f}Wnt j o d}nX|i o|i d|q|i d||fqWdS(selist repository tags List the repository tags. This lists both regular and local tags. s%5d:%ss ?:?s%s s %-30s %s N(RttagslistRRVRRRHRDRR=RzRiRR(RiRRRR=R((RR? s   &  cKs|ii}d}|do|i|g}nt|||i d|d||do*t ||||ii |d|ndS(s6show the tip revision Show the tip revision. R;RRRJiN( RRHRRRGRR(R=RRiR RR}(RiRR(RR((RR s " c Ksti|}|id}|idptit d|n{|idptit d|nN|djo d}n4|djo d }ntit d ||ti |d }|iti|d }t||||d S(skapply a changegroup file Apply a compressed changegroup file generated by the bundle command. itHGs%s: not a Mercurial bundle fileRs%s: unknown bundle versiontHG10BZccs;ti}|idx|D]}|i|Vq WdS(NtBZ(RtBZ2Decompressortzdt decompressRR(RRR((Rt generator s   Rccsx|D] }|VqWdS(N(RR(RR((RR ss#%s: unknown bundle compression typeitunbundleRN(turllibturlopenRRRIRnRRRRRt filechunkitertgenRtaddchangegroupt chunkbufferRRRiR(( RiRRR(RRRRnR((RR s    cCs!|itd|idS(sundo the last commit or pull (DEPRECATED) (DEPRECATED) This command is now deprecated and will be removed in a future release. Please use the rollback command instead. For usage instructions, see the rollback command. s7(the undo command is deprecated; use rollback instead) N(RiRORRR(RiR((Rtundo sc Ks=|o|itdnt||||||||S(supdate or merge working directory Update the working directory to the specified revision. If there are no outstanding changes in the working directory and there is a linear relationship between the current version and the requested version, the result is the requested version. To merge the working directory with another revision, use the merge command. By default, update will refuse to run if doing so would require merging or discarding local changes. sE(the -m/--merge option is deprecated; use the merge command instead) N( RvRiRORRRR/tcleanRptbranchR((RiRR/RvRRpRR(((RR sc Ks_|o|id|}g} x0|D](} ||| jo| i| q&q&Wt| djoR|i t d|x0| D](} t |||i d| d|qWdSnt| djo1| d}|i t dt||fq@|i t d|dSn'|o|i|p |ii}|i|d |d |d |S( NRisFound multiple heads for %s RRisUsing head %s for branch %s sbranch %s not found tallowRpt forcemerge(RRR=RtfoundRRTR[RiRORRR(R R/RRJRHRRRvRRp( RiRR/RvRRpRR(RRR((RR s(& '&cCs |iS(sPverify the integrity of the repository Verify the integrity of the current repository. This will perform an extensive check of the repository's integrity, validating the hashes and checksums of each entry in the changelog, manifest, and tracked files, as well as the integrity of their crosslinks and indices. N(RR(RiR((RR s s^addR/R$s)include names matching the given patternstXR%s)exclude names matching the given patternsRsdry-runs)do not perform actions, just print outputshg add [OPTION]... [FILE]...sdebugaddremove|addremoves"hg addremove [OPTION]... [FILE]...s ^annotateR=RDsannotate the specified revisionRRstreat all files as textRWRslist the authorRRs list the dateR[s"list the revision number (default)RR\slist the changesets5hg annotate [-r REV] [-a] [-u] [-d] [-n] [-c] FILE...Ros no-decodes"do not pass files through decodersRRs%directory prefix for files in archivesrevision to distributeRRhstype of distribution to createshg archive [OPTION]... DESTRRvs,merge with old dirstate parent after backoutR2Rrsuse as commit messageRRssread commit message from srecord datecode as commit dateRs'parent to choose when backing out mergesrecord user as committershg backout [OPTION]... REVRRRps,run even when remote repository is unrelatedshg bundle FILE DESTRRfRs(print output to file with formatted namesprint the given revisionshg cat [OPTION]... FILE...s^clonetURs'do not update the new working directorys0a changeset you would like to have after cloningRs"use pull protocol to copy metadataRs)use uncompressed transfer (fast over LAN)R.tsshsspecify ssh command to uset remotecmds,specify hg command to run on the remote sides"hg clone [OPTION]... SOURCE [DEST]s ^commit|ciRRQs9mark new/missing files as added/removed before committings#read the commit message from srecord user as commitershg commit [OPTION]... [FILE]...scopy|cpRs'record a copy that has already occurreds+forcibly copy over an existing managed files$hg copy [OPTION]... [SOURCE]... DESTRsdebugancestor INDEX REV1 REV2RR sshow the command optionssdebugcomplete [-o] CMDRsrevision to rebuild tos debugrebuildstate [-r REV] [REV]RRsdebugconfig [NAME]...Rsdebugsetparents REV1 [REV2]RRsdebugdata FILE REVRsdebugindex FILERsdebugindexdot FILERsdebugrename FILE [REV]Rsdebugwalk [OPTION]... [FILE]...s^diffRs show-functions%show which function each change is inRsignore-all-spaces'ignore white space when comparing linesRsignore-space-changes+ignore changes in the amount of white spacetBsignore-blank-liness(ignore changes whose lines are all blanks4hg diff [-a] [-I] [-X] [-r REV1 [-r REV2]] [FILE]...s^exports switch-parentsdiff against the second parents&hg export [-a] [-o OUTFILESPEC] REV...sdebugforget|forgetshg forget [OPTION]... FILE...R:t0Rsend fields with NULRsprint all revisions that matchR)s ignore-casesignore case when matchingsfiles-with-matchess(print only filenames and revs that matchs line-numbersprint matching line numbersssearch in given revision rangesprint user who committed changes%hg grep [OPTION]... PATTERN [FILE]...R<R;s show branchesRsdisplay using template map files,show only heads which are descendants of revR sdisplay with templateshg heads [-b] [-r ]thelpshg help [COMMAND]s identify|ids hg identifys import|patchR is]directory strip option for patch. This has the same meaning as the corresponding patch optionRs base paths.skip check for outstanding uncommitted changess7hg import [-p NUM] [-b BASE] [-m MESSAGE] [-f] PATCH...s incoming|inRs no-mergessdo not show mergess newest-firstsshow newest record firstsfile to store the bundles intoRJs show patchs*a specific revision you would like to pullsChg incoming [-p] [-n] [-M] [-r REV]... [--bundle FILENAME] [SOURCE]s^inits+hg init [-e FILE] [--remotecmd FILE] [DEST]Rks(search the repository as it stood at revs*end filenames with NUL, for use with xargsRjs-print complete paths from the filesystem roots"hg locate [OPTION]... [PATTERN]...s ^log|historyR{Russearch for a keywordRss!limit number of changes displayeds$show the specified revision or ranges only-mergessshow only mergesshg log [OPTION]... [FILE]Rshg manifest [REV]Rs$merge with head of a specific branchs&force a merge with outstanding changesshg merge [-b TAG] [-f] [REV]s outgoing|outs*a specific revision you would like to pushs-hg outgoing [-M] [-p] [-n] [-r REV]... [DEST]s^parentss#show parents from the specified revshg parents [-b] [-r REV] [FILE]Rshg paths [NAME]s^pullRs.update the working directory to tip after pulls>hg pull [-u] [-r REV]... [-e FILE] [--remotecmd FILE] [SOURCE]s^pushs force pushs<hg push [-f] [-r REV]... [-e FILE] [--remotecmd FILE] [DEST]sdebugrawcommit|rawcommits date codetFRs file listscommit messagescommit message files'hg debugrawcommit [OPTION]... [FILE]...Rs hg recovers ^remove|rms'record remove that has already occurredsremove file even if modifiedshg remove [OPTION]... FILE...s rename|mvs)record a rename that has already occurreds$hg rename [OPTION]... SOURCE... DESTs^revertsrevision to revert tos no-backups"do not save backup copies of filess%include names matching given patternss%exclude names matching given patternsshg revert [-r REV] [NAME]...Rs hg rollbackR+shg roots^servet accesslogs#name of access log file to write toRsrun server in backgroundsdaemon-pipefdssused internally by daemon modetEterrorlogs"name of error log file to write toRisport to use (default: 8000)taddresssaddress to useRs0name to show in web pages (default: working dir)s webdir-confs9name of the webdir config file (serve more than one repo)spid-files#name of file to write process ID toRsfor remote clientst templatessweb templates to usestemplate style to uset6tipv6suse IPv6 in addition to IPv4shg serve [OPTION]...s ^status|stR sshow only modified filesR sshow only added filesR sshow only removed filesR s%show only deleted (but tracked) filesR s%show only unknown (not tracked) filesRsshow ignored filess no-statusshide status prefixtCRsshow source of copied filesshg status [OPTION]... [FILE]...RRdsmake the tag locals message for tag commit log entrysrevision to tags7hg tag [-l] [-m TEXT] [-d DATE] [-u USER] [-r REV] NAMER?shg tagsRshg tip [-b] [-p]Rs2update the working directory to tip after unbundleshg unbundle [-u] FILEsdebugundo|undoshg undos^update|up|checkout|cos&checkout the head of a specific branchs&allow merging of branches (DEPRECATED)Rs overwrite locally modified filess'hg update [-b TAG] [-m] [-C] [-f] [REV]Rs hg verifyRs hg versionRRs/repository root directory or symbolic path nameRschange working directoryRtnoninteractives4do not prompt, assume 'yes' for any required answerstqRssuppress outputRRsenable additional outputRsset/override config optionRsenable debugging outputtdebuggersstart debuggertlsprofs(print improved command execution profilet tracebacksprint traceback on exceptionRstime how long the command takestprofilesprint command execution profiles#output version information and exitRsdisplay help and exitsVclone init version help debugancestor debugcomplete debugdata debugindex debugindexdotspaths serve debugconfigcCsh}h}xtiD]}|idid}d}||jo |}n-x)|D]!}|i |o |}Pq[q[W|dj oD|di do|t|f|| (aliases, command table entry) for each matching command. Return debug commands (or their aliases) only if no normal command matches. R*R(iRN( tchoicet debugchoiceR,R1R.R0RR#RGRRRR(RRR.RRRR#((RR s*      cCst|}|i|o ||Snt|djo)|i}|it||n|o|i dSnt |dS(s9Return (aliases, command table entry) for command string.iiN( RRRR;R[R1RR`RRR(RRR((RR" s    cGs tidS(N(RtSignalInterrupt(R((Rt catchterm scCstittiddS(Ni(RtexittdispatchR(((Rtrun st ParseErrorcBstZdZRS(s7Exception raised on errors in parsing the command line.(RRR(((RR s c Csh} h} yti|t| }Wn*tiij o}td|nX|or|d|d}}t |\} }| d}|id|}|o|i|}nt|d}n d}g}x;tD]3}|i|d|d| |d|dfqWyti||| }Wn*tiij o}t||nXx-tD]%}|d}| || |<| |=qbW||o |dpd|| | fS(Niitdefaultsi(R t cmdoptionst fancyoptsRR=tgetoptt GetoptErrorRRRGRR"R#R)RiRRRR^RRfRTR( RiRRR)RRRfRRRR R#((RRO s: 1  cCsytit|SWnvtj ojd|}xJtiD]<\}}|i d|p ||joti|Sq;q;Wt|nXdS(s'return module with given extension nameR&N( RtmodulestexternalRRztdotnameRR{RR^(RR{RR((RR6 s  !c sM x;dSD]3}tt|d}|oti|tqqWy#tiddtidjWn6t i j o'}ti itd|dSnXxiD]\}}y|o,d |id d }ti||}n@d }y|d |}Wntj o||}nX|it||ikp|il|fnteimj o6}itd?|ikp|il|i9fntnioj o"}itd@|dAnjt ij oitdBnBtj oqyitdCWqI tpj oD}|igtgiqjo%iroitdDq{ q qI Xntpj o}tC|dEoitd|qI tC|dFo"itdG|ijdqI tC|dHo9|d5tgiqjo%iroitdIq qI t|dJdoXt|dKdo'itdL|i9|ilfq itd|i9qI nt8j oZ}tC|dKo'itd>|i9|ilfqI itd|i9n9t i j o4}itd@|i)d5|i)ddMntsj op}ttiuti`d4}tw|d4jonix|dMitdN|t?|n|tyj o}|izSnaitdOitdPitdQitdRt{i|nXdS(TNtSIGBREAKtSIGHUPtSIGTERMRs --tracebackis abort: %s ishgext_%sR&RcCsCt|}|id}x!|dD]}t||}q&W|S(NR&i(t __import__RR7Rt componentstcompRq(RR RR7((Rtimporth s   shgext.%ss&*** failed to import extension %s: %s tuisetupR9smodule %s overrides %s RcCsPti}|ddjo/|d|d|d|dtif}n|S(Nif0.0iiii(RttimesRRtclock(R((Rt get_times. s /c so}itd|dd|dd|dd|dd|ddfdS(Ns4Time: real %.3f secs (user %.3f+%.3f sys %.3f+%.3f) iiiii(RRRWRORR(R(RRRW(Rt print_time4 s RRRRRRRs%s: %sRR#R RRR)t reposetupcsS(N(tfuncRWRRR((RRRRWR(RR` scsS(N(RRWRR((RRRWR(RRb sRshg.profs-exception raised - generating profile anyway tcallsi(R(slsprofsYlsprof not available - install from http://codespeak.net/svn/user/arigo/hack/misc/lsprof/tsubcallsttopi Rotclimitiiis hg %s: %s shg: %s s&hg: command '%s' is ambiguous: %s Rshg: unknown command '%s' s abort: %s! s%timed out waiting for lock held by %sslock held by %ssabort: %s: %s sabort: could not lock %s: %s sabort: s! skilled! s interrupted! s broken pipe tcodeRsabort: error: %s Rs broken pipe RRsabort: %s - %s s s%s: invalid arguments s1** unknown exception encountered, details follow s>** report bug details to http://www.selenic.com/mercurial/bts s** or mercurial@selenic.com s*** Mercurial Distributed SCM (version %s) (R sSIGHUPsSIGTERM(}RRqtsignalRGRxRRiRRRWRRRRRRt extensionstext_nametload_from_nameR3t module_nametimpt load_sourceR7Rt ImportErrorRRRtKeyboardInterruptt ExceptionROt print_exct itervaluesRRR9RR,RRORRRR RRRRtatexittregistert updateoptstpdbt set_traceRtchdirRRRR RRRRHRtnorepoRRRRt optionalrepoRthotshott hotshot.statstProfiletproftruncallRtstatstloadt strip_dirst sort_statst print_statst mercurialRtProfilerRtenableRptdisabletStatstgetstatsR`tpprintRt post_mortemtexc_infoRRR!RtlocktLockHeldRt ETIMEDOUTtlockerRRCRtLockUnavailableRt RevlogErrorRtEPIPERt TypeErrorRt extract_tbttbR[Rt SystemExitRRR(RRRLRRRxRR5RRR9RRRRRR3R R7R0RRRRRRWRRR R ((RRRRRWRRRR sz#       %      )#               $    +8.1  "$ ''/ N(mt demandloadR/ti18ntgettextRtglobalsR%RRRRR"R.RGR;R2RtR~R{RRhRRRpRRtalwaysReRRRRRRRHRYRQRPRcRoRRRRR~RRzRRRRRRRRRRRRRRRRR:R<RAR_R`RiRkRRRvR~R}RRRRRRRSRR|RR+RRRR?RRRRRRR,R=R.R/RR"RRRRORR6R(bRRARRHRRRR;RQRYR}R~RRRRRORRRR/R|RSRRvRRR{RtR~RR,RRR"RkRR?RNRRRR`RR~RRR2RcRR<RRRRRRRRRzRRiR:R6RRR+RRRRRRoRRR_RRRR=RRRRRhR.RRRRR.R"RRRPRRR((RRIs       w   , 4M D      = / >    *    !      '    ~ 9  " _  "!  , $ # /    I . '    k-     &