\x89\x50\x4E\x47\x0D\x0A\x1A\x0A PNG  \x89\x50\x4E\x47\x0D\x0A\x1A\x0A  13\c @@s ddlmZddlZddlZddlZddlmZddlmZm Z m Z m Z ddl m Z mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z*ddl+m,Z,m-Z-e(j.Z.dd e/ed fgZ0d d e/ed fgZ1ddd ededfd dd ededfd de/edfgZ2ddgededfddgededfgZ3ddd eded fd!d"d ed#ed$fgZ4d%d&d ed'ed(fd)d*d ed+ed,fgZ5d-d.d ed/ed0fgZ6d d1d ed2ed3fd-d.d ed/ed0fgZ7d4d5e/ed6fd7d8e/ed9fd!d:d ed;ed<fd=d>e/ed?fd d@e/edAfdBdCe/edDfge7Z8dEdFe/edGfd7d8e/ed9fd dHe/edIfd dJe/edKfgZ9dLdMe/edNfdOdPe/edQfdRdSe/edTfdUdVe/edWfgZ:d dXe/edYfd4dZe/ed[fd d\e/ed]fge:d^d_d ed`ed<fd d@e/edAfd dad edbedcfgZ;ddded edfedgfgZ<dhdid edjedkfgZ=dldme/ednfgZ>dodpe?edqfddre?edsfd dtd edufgZ@dvZAdwZBdxZCdyZDdzZEe/d{ZFe/d|ZGd}ZHd~eIfdYZJdZKdZLdZMdZNdZOdZPdZQdZRdZSdZTdZUdZVdeUdePfdeUdeTfdeUdeRfdeUdeQfdeUdeOfdeVeSffZWdZXdZYe?dZZe[dZ\dZ]dZ^e[e/dZ_dZ`dZae?e/e/d dZbdZcdZde/dZee/e/e/e/dZfdZgdZhdeIfdYZiddZje?dZkdZle?dZmgZngZoiZpiZqdZrgZsiZtdZudZvdZwde?e/e/dZxe?e/e/dZye/dZzdZ{dddZ|dZ}de~fdYZdZdeIfdYZdZdZdZdZdZe/dZdZdZdZdZdZd dZe/e/d e?dZdZdZdZe/e/dZdZdZe?e/dZe(jZe(jZe(jZde[e?ededfde[e?ededfgZe?dZdZdedfgZdZdZdZdS(i(tabsolute_importNi(t_(thextnullidtnullrevtshort(t bookmarkst changelogtcopiestcrecordt dirstateguardtencodingterrort formattert logcmdutiltmatchtmerget mergeutiltobsoletetpatchtpathutiltphasestpycompattrevlogt rewriteutiltscmutiltsmartsett subrepoutilt templatekwt templatertutiltvfs(tdateutilt stringutiltnsdry-runs)do not perform actions, just print outputttconfirmsask before applying actionstetsshsspecify ssh command to usetCMDt remotecmds,specify hg command to run on the remote sidetinsecures>do not verify server certificate (ignoring web.cacerts config)tItincludes)include names matching the given patternstPATTERNtXtexcludes)exclude names matching the given patternstmtmessagesuse text as commit messagetTEXTtltlogfilesread commit message from filetFILEtdtdates(record the specified date as commit datetDATEtutusers&record the specified user as committertUSERtTttemplatesdisplay with templatetTEMPLATEtstyles,display using template map file (DEPRECATED)tSTYLEtpRs show patchtgtgitsuse git extended diff formattlimits!limit number of changes displayedtNUMtMs no-mergessdo not show mergeststats(output diffstat-style summary of changestGtgraphsshow the revision DAGtattextstreat all files as texttbinarys+generate binary diffs in git mode (default)tnodatessomit dates from diff headerstwsignore-all-spaces'ignore white space when comparing linestbsignore-space-changes+ignore changes in the amount of white spacetBsignore-blank-liness(ignore changes whose lines are all blanktZsignore-space-at-eols#ignore changes in whitespace at EOLtnoprefixs&omit a/ and b/ prefixes from filenamess show-functions%show which function each change is intreverses&produce a diff that undoes the changestUtunifieds"number of lines of context to showtroots&produce diffs relative to subdirectorytDIRttttoolsspecify merge tooltTOOLtst similaritys-guess renamed files by similarity (0<=s<=100)t SIMILARITYtStsubrepossrecurse into subrepositoriestcRsopen changelogtmanifests open manifesttdirsopen directory manifests:^HG: ------------------------ >8 ------------------------$cC@stjtjf}t||S(N(t crecordmodtuihunkRt recordhunkt isinstance(txt hunkclasses((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pytishunkscC@s^t}xN|D]F}t|r|jjr||kr|j|jjqqW|S(N(tsetRhtheadert isnewfiletaddtfilename(tchunkstoriginalchunkstnewlyaddedandmodifiedfilestchunk((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pytnewandmodifieds    cC@s |jdS(Nt|(tsplit(tcmd((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt parsealiasessc@s8d|jfd}t|d|S(Nc@sS|jdd}x:tjfdD] \}}||d||q+WdS(NtlabelR#c@sS(N(((targs(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyts(tpopRt difflabel(torigRxtkwRwRqR2((Rxs7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt wrapwrites%c@s||S(N((Rxtkwargs(toldwriteR~(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pytwrapstwrite(Rtsetattr(tuiR((RR~s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pytsetupwrapcolorwrites   cC@syG|rF|r'tj|tj}n tj}tj||||SWn=tjk r}|jd|j|jtdnXt j|||S(Ns%s sfalling back to text mode ( Rbt testdecoratorttestchunkselectort chunkselectort filterpatcht fallbackerrortwarnR0RR(Rt originalhunkst usecursesttestfilet operationtrecordfnR%((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt filterchunkss  cC@sftj|}|jdd}t|}z"t|||||\}}Wd||_X||fS(s Prompts the user to filter the originalhunks and return a list of selected hunks. *operation* is used for to build ui messages to indicate the user what kind of filtering they are doing: reverting, committing, shelving, etc. (see patch.filterpatch). t experimentalt crecordtestN(Rbt checkcursestconfigRRR(RRRRRRt newchunkstnewopts((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt recordfilters   c @stj|}|jsR|r4td|}n td}tj|n|jdsn|jnfdfd} t||| ||S(Ns)running non-interactively, use %s insteadsrunning non-interactivelyR9c' @s+t|dt|d}t|jdk}|rPtjtdnd}|jd}|sg} | j |_ ||_ n|j d|} |s|j || || |ntj|d|dt} t| _t| _t| _tj|d | d| } tj| } y|| \}}Wn/tjk rj}tjtd |nX|j|t|| }t}x?|D]7}y|jt|jWqtk rqXqW| j| j| j}g|D]}||kr|^q}|s+|j td d St| j}rI|}n1g|D]$}||ksn||krP|^qP}i}|r|jjd }yt j!|Wqt"k r}|j#t#j$krqqXnzx|D]}t%j&d|j'dddd|\}}t j(||j)d||ft*j+|j,||dt|||j||j?j@dt2dtd|#n| r*y@|j)d|j)|jAtjB|||dddWq*tjk r&}tjt%jC|q*Xn~g|D]}$|j,|$^q4}|||t%jD|SWdy|j?}%x}|jED]o\}&}|j)d||&f|%|&d kr|%jF|&nt*j+||j,|&dtt j:|qW|rt jG|nWnt"k r%nXXdS(!s%This is generic record driver. Its job is to interactively filter local changes, and accordingly prepare working directory into a state in which the job can be delegated to a non-interactive commit command such as 'commit' or 'qrefresh'. After the actual job is done by non-interactive command, the working directory is restored to its original state. In the end we'll record interesting changes, and everything else will be left in place, so the user can continue working. tcommitis9cannot partially commit a merge (use "hg commit" instead)cS@stjd||fdS(Ns%s: %s(R tAbort(tftmsg((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pytfailstforceRtoptst whitespacetchangesserror parsing patch: %ssno changes to record isrecord-backupstprefixt/Rt.Rasbackup %r as %r tcopystattreviewR#tactiontdifftrepopatht branchmergetmatchersapplying patch teolmodeNsrestoring %r to %r R"(HtcheckunfinishedtTruetNonetlentparentsR RRtgettappendt explicitdirtbadtstatustcheckcommitpatternsRtdifffeatureoptsRLRBtshowfuncRt parsepatcht PatchErrortupdateRrRitfilestAttributeErrortmodifiedtaddedtremovedRtjointostmkdirtOSErrorterrnotEEXISTRtmkstemptreplacetclosetdebugRtcopyfiletwjointstringioRmRttelltseektFalseRbt diffhelptextt patchhelptexttreadtedittpathttruncatetunlinkRt matchfilestkeystmergemodtdirstatetp1tgetvaluet internalpatchtbytestrt strkwargst iteritemst normallookuptrmdir('RtrepoR0RRtwctxRRRtvdirsRtdiffoptst originaldiffRoRnRterrRpt contendersthtchangedRtnewfilesRttobackuptbackupst backupdirtfdttmpnametfpR_tfnametdopatcht patchtextt reviewedpatchR/tnfRtrealname(t backupallt commitfunctfilterfn(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt recordfuncs           %             )  "   c @s-|j|||||SWdQXdS(N(twlock(RRR0RR(R(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt recordinwlocks ( Rt byteskwargst interactiveRR RRtusernameR( RRRt cmdsuggestRRtpatsRRR((RRRRs7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pytdorecords   tdirnodecB@s;eZdZdZdZdZdZdZRS(s Represent a directory in user working copy with information required for the purpose of tersing its status. path is the path to the directory, without a trailing '/' statuses is a set of statuses of all files in this directory (this includes all the files in all the subdirectories too) files is a list of files which are direct child of this directory subdirs is a dictionary of sub-directory name as the key and it's own dirnode object as the value cC@s.||_tg|_g|_i|_dS(N(RRitstatusesRtsubdirs(tselftdirpath((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt__init__s  cC@s|jj||fdS(s/Add a file in this directory as a direct child.N(RR(R RmR((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt _addfileindirscC@sd|krx|jdd\}}||jkr^tj|j|}t||j| yield (status, dirpath). dirpath will end in '/'. 2) Otherwise, we do following: a) Yield (status, filepath) for all the files which are in this directory (only the ones in this directory, not the subdirs) b) Recurse the function on all the subdirectories of this directory iRN(RRRzRRR tvaluest tersewalk(R t terseargstonlystRtfpathtdirobj((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRs (t__name__t __module__t__doc__R R RRR(((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRs     cC@sed}x?tj|D].}||krtjtd|qqWtd }d}i}xO|D]G}|dd!}x't||D]} |j| |qWg||s +; cC@s td||f}t|S(Ns%To continue: %s To abort: %s(RR3(t continuecmdtabortcmdR((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt _helpmessageSs  cC@s tddS(Nshg rebase --continueshg rebase --abort(R?(((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt _rebasemsgXscC@s tddS(Nshg histedit --continueshg histedit --abort(R?(((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt _histeditmsg[scC@s tddS(Nshg unshelve --continueshg unshelve --abort(R?(((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt _unshelvemsg^scC@s tddS(Nshg graft --continueshg graft --abort(R?(((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt _graftmsgascC@s tddS(Ns hg commitshg merge --abort(R?(((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt _mergemsgescC@std}t|S(NsTo mark the changeset good: hg bisect --good To mark the changeset bad: hg bisect --bad To abort: hg bisect --reset (RR3(R((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt _bisectmsgis c@s fdS(Nc@s|jjS(N(Rtexists(R(Rm(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRyps((Rm((Rms7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pytfileexistspredicateoscC@st|djdkS(Ni(RRR(R((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt_mergepredicatersthisteditshistedit-statetbisects bisect.statetgraftt graftstatetunshelvet shelvedstatetrebaset rebasestateRcC@sdt|jjdd}xBtD]:\}}}||krCq"n||r"|||fSq"WdS(Ntcommandssstatus.skipstates(RiRt configlisttSTATES(Rtskiptstatetstatedetectionpredicatetmsgfn((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt _getrepostates   c C@st|}d}|r|\}}}td|}|jdt|d|t|}|r|jd|d|n|r|} |jd| d|qndS(Nsstatus.morestatuss.The repository is in an unfinished *%s* state.s%s Rw(RXRtplainR3R<( Rtfmt statetupleRwRURVt helpfulmsgtstatemsgtconmsgthelpmsg((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt morestatuss   c C@s*i}i}||kr$|g}n |j}g}x|D]}t|}|j|d} ||krw|} n3|sx*|D]} | j|r| } PqqWn| dk r=|djds| jdr|||f|| (aliases, command table entry) for each matching command. Return debug commands (or their aliases) only if no normal command matches. iRN(RRvtextendRt startswith( Ruttabletstricttchoicet debugchoiceRtallcmdsR%taliasestfoundRI((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt findpossibles0           "  cC@st|||\}}||kr,||St|dkr_t|}tj||n|ryt|jdStj||dS(s9Return (aliases, command table entry) for command string.iiN(RjRR7R tAmbiguousCommandtlistRtUnknownCommand(RuRcRdReRgtclist((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pytfindcmds  c@s|j|j|jdt|tj||}|s^tjdn|jd|}t |dkrtjt dnt j ||d||j }|jj|k r||jkrtjt dn|jd|r*tjt d n|jd |rTtjt d n|jd |r~tjt d ni}ddlm}xu|D]m}||j} | |krqnfd} |jdtj| |fj} tj| d<jj} jj} | |kra|| d} n| |kr~|| d} n|j|| | fjj| djdjd| d|}|j|}|f|j<|jdt|qWtj||ddt|d}t |j!dkr|j"|jj}|dk rddlm#}|j$||ddtqn|j%t dt |WdQXWdQXWdQXdS(s/ Change the branch name of given revs to label tbranchessempty revision sets roots(%ld)is,cannot change branch of non-linear revisionsschange branch ofs(a branch of the same name already existssmerge() and %lds&cannot change branch of a merge commitsobsolete() and %lds,cannot change branch of a obsolete changesetsheads(%ld) - head()s)cannot change branch in middle of a stack(tcontextc@s(y |SWntjk r#dSXdS(N(R tManifestLookupErrorR(RtnewctxR(tctx(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt filectxfns s*changing branch of '%s' from '%s' to '%s' t branch_changeiR9R6textratbranchsnew node id is %s s branch-changetfixphase(thgt quietemptys changed branch on %d changesets N(&Rtlockt transactiont bailifchangedRtrevrangeR RtrevsRRRtprechecktfirstRRxt branchmapR#RqRRtnodeRwtp2tmemctxt descriptionRR9R6t commitctxt cleanupnodesRRRRRzRR(RRRRwtrootsRUt replacementsRqtrevt oldbranchRuRwRRtmctnewnodeRtnewidRz((Rts7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt changebranchsr  +                cC@sUxNtjjtjj|dsP|tjj|}}||krdSqW|S(Ns.hg(RRtisdirRtdirnameR(R@toldp((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pytfindrepo's $ c C@s|r9|jjtkr9tjtdd|n|jd \}}}}|sm|sm|sm|rtjtdd|n|d}x0t|j D]}|j |j d|qWdS(s enforce the precondition that working directory must be clean. 'merge' can be set to false if a pending uncommitted merge should be ignored (such as when 'update --check' runs). 'hint' is the usual hint given to Abort exception. soutstanding uncommitted mergethintisuncommitted changesN( RRRR RRRRR7tsubstatetsubR~( RRRRRRRRtRZ((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyR~/s  cC@s|jd}|jd}|rB|rBtjtdn| r|ry@t|rp|jj}ndjtj |j }Wqt k r}tjtd|t j |jfqXn|S(s3 get the log message according to -m and -l option R0R3s6options --message and --logfile are mutually exclusives s"can't read commit message '%s': %s(RR RRtisstdiofilenametfinRRRtreadfileR.tIOErrorR t strtolocaltstrerror(RRR0R3tinst((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt logmessageAs   "#cC@sHt|tr |r@|dSn t|jdkr@|dS|dS(sreturn appropriate editform name (referencing a committemplate) 'ctxorbool' is either a ctx to be committed, or a bool indicating whether merging is committed. This returns baseformname with '.merge' appended if it is a merge, otherwise '.normal' is appended. s.mergeis.normal(RetboolRR(t ctxorboolt baseformname((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt mergeeditformTs  c @s@|ssr%fdSr8fdStSdS(s&get appropriate commit message editor according to '--edit' option 'finishdesc' is a function to be called with edited commit message (= 'description' of the new changeset) just after editing, but before checking empty-ness. It should return actual text to be stored into history. This allows to change description before storing. 'extramsg' is a extra message to be shown in the editor instead of 'Leave message empty to abort commit' line. 'HG: ' prefix and EOL is automatically added. 'editform' is a dot-separated list of names, to distinguish the purpose of commit text editing. 'getcommiteditor' returns 'commitforceeditor' regardless of 'edit', if one of 'finishdesc' or 'extramsg' is specified, because they are specific for usage in MQ. c @s"t|||dddS(Nt finishdesctextramsgteditform(tcommitforceeditor(RR_RZ(RRR(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRy{sc@st|||dS(NR(t commiteditor(RR_RZ(R(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRysN(R(RRRRR((RRRs7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pytgetcommiteditores  cC@s|g}xftj|dtD]O\}}}|dkrW|jtj|||!q|j|||!qWdj|S(NR/tstringR#(Rt scantemplateRRR!t escapestrR(ttmpltpartsttyptstarttend((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt_escapecommandtemplates %  cC@s/|s |Stj|t|}|j|S(sExpand a literal template 'tmpl' in a way suitable for command line '\' in outermost string is not taken as an escape character because it is a directory separator on Windows. >>> from . import ui as uimod >>> ui = uimod.ui() >>> rendercommandtemplate(ui, b'c:\\{path}', {b'path': b'foo'}) 'c:\\foo' >>> rendercommandtemplate(ui, b'{"c:\\{path}"}', {'path': b'foo'}) 'c:{path}' (R t maketemplaterRt renderdefault(RRtpropsRW((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pytrendercommandtemplates cC@su|j}tj|j|}tj|j|dtjd|}i|d6}|rh|j|n|j|S(sExpand a literal template 'tmpl' byte-string against one changeset Each props item must be a stringify-able value or a callable returning such value, i.e. no bare list nor dict should be passed. tdefaultst resourcesRt( RR ttemplateresourcesRRRtkeywordsRR(RtRRRttresRWtmapping((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pytrendertemplates   c C@sidd6dd6dd6dd6d d 6d d 6d d 6}|d!k rPd|d>> _buildfntemplate(b'foo-%b-%n.patch', seqno=0) 'foo-{reporoot|basename}-{seqno}.patch' >>> _buildfntemplate(b'%R{tags % "{tag}"}%H') '{rev}{tags % "{tag}"}{node}' '\' in outermost strings has to be escaped because it is a directory separator on Windows: >>> _buildfntemplate(b'c:\\tmp\\%R\\%n.patch', seqno=0) 'c:\\\\tmp\\\\{rev}\\\\{seqno}.patch' >>> _buildfntemplate(b'\\\\foo\\bar.patch') '\\\\\\\\foo\\\\bar.patch' >>> _buildfntemplate(b'\\{tags % "{tag}"}') '\\\\{tags % "{tag}"}' but inner strings follow the template rules (i.e. '\' is taken as an escape character): >>> _buildfntemplate(br'{"c:\tmp"}', seqno=0) '{"c:\\tmp"}' s{node}tHs{rev}tRs {node|short}Rs${sub(r"[^\w]", "_", desc|firstline)}R/s7{if(revwidth, pad(rev, revwidth, "0", left=True), rev)}Rt%s{reporoot|basename}RNs{total}tNs{seqno}R"s3{pad(seqno, total|stringify|count, "0", left=True)}s{pathname|basename}RZs-{if(pathname|dirname, pathname|dirname, ".")}R5s {pathname}R@R/Riis)incomplete format spec in output filenameis-invalid format spec '%%%s' in output filenameR#N( RRRRRtfindR!RR RRtKeyErrorR( tpatttotaltseqnotrevwidthtpathnametexpandertnewnameRRRRR"R_((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt_buildfntemplatesP          %    cK@s2|s |St||}t||tj|S(N(RRRR(RtRRR((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt makefilenamescC@s| p|dkS(sATrue if the given pat looks like a filename denoting stdin/stdoutt-((R((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRst_unclosablefilecB@s>eZdZdZdZdZdZdZRS(cC@s ||_dS(N(t_fp(R R((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyR scC@sdS(N((R ((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRscC@s t|jS(N(titerR(R ((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt__iter__scC@st|j|S(N(R#R(R tattr((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt __getattr__ scC@s|S(N((R ((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt __enter__ scC@sdS(N((R texc_typet exc_valuetexc_tb((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt__exit__s(RRR RRRRR(((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRs      twbcK@sn|dk}t|rO|j}|r9|jj}n |jj}t|St|||}t||S(NRtrb(RR(RRRtfoutRRRtopen(RtRtmodeRtwritableRRtfn((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt makefileobjs     c C@s|d}|d}|d}d}|r?|r?td}nZ|rZ|rZtd}n?|sl|sl|r|rtd}q|std}qn|rtj|nd} |r|r|jj} n|rHd|jkrtjtd n|jd s|d }n|jj |} t | r| } qnH|rc|jj d } n-|r|j |} t | r| } qn|rt | t j rqtj| d r| j} q| dk rtjtd | qqn| s|stjtdn|s<tj|tdntjj|sjtjtd|nt j tjtjdt|d d} n| S(s:opens the changelog, manifest, a filelog or a given revlogRR`Ras:cannot specify --changelog and --manifest at the same times5cannot specify --changelog and --dir at the same times6cannot specify filename with --changelog or --manifestsFcannot specify --changelog or --manifest or --dir without a repositoryt treemanifests9--dir can only be used on repos with treemanifest enabledRR#t_revlogs!%r does not appear to be a revlogscannot give path to non-revlogsinvalid argumentssrevlog '%s' not foundtauditis.iN(RRR Rt unfilteredRt requirementstendswitht manifestlogt getstorageRtfileReRRt safehasattrRt CommandErrorRRtisfiletvfsmodRR R9R( RRutfile_Rt returnrevlogtcltmfRaRRtdirlogtfilelog((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt openstoragesd            "cC@st||||dtS(spObtain a revlog backing storage of an item. This is similar to ``openstorage()`` except it always returns a revlog. In most cases, a caller cares about the main storage object - not the revlog backing it. Therefore, this function should only be used by code that needs to examine low-level revlog implementation details. e.g. debug commands. R(RR(RRuRR((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt openrevlog\s c @sjijdjdd  fd} f d}fd}fd}tj|}|stjtdnt|dkrtjtd n|j } t j j | o+t j j |  st|dksYtj|d rqtjtd ntj| rtjtd | qn|} r|} ng} xE|D]=} || } | sqn| j| | | | | fqW| s tjtd nd }xV| D]N\}} x?| D]7\}}}||||||r@|d7}q@q@Wq-W|d kS(Ntaftertdry_runc@sg}rd}nd}tj|gdt}xj|D]}j|}|j|}|j|}||kr|r|dkrjtd|n|rI|dkrIjtd|qIqIn|j |||fqIW|S(Nt?s?rtglobbeds&%s: not copying - file is not managed Rs2%s: not copying - file has been marked for remove ( RRRtwalkRtreltexactRRR(Rtsrcst badstatesR/tabsRURR(RRRRR(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pytwalkpatss$    c @stjj|}d|krY|jdd\}}jj|d|}nj|}j|}j|} j|} tj |j |} | dk rj t d|j|j| ftStjj|} t} | r~||kr~jj|jj|kr~slj t d|tSt} t} q~n r| srR| dkrRdsR| dkrt d}rd}nd }rt d |}q-t d |}n-t d }r!t d }n t d}j ||j |tSnr| srj t d||fnj t d||ftSnBsy| rtj|ntjj|pd}tjj|stj|n| r4|d}tj| |tj||ntj| |dt}Wqtk r}|jtjkrj t d|t}qj t d|tj|jfrt d }n t d}tSqXnj s| r@r j!t d||fq@j!t d||fn||, ) i(RqRmR0R9R6RxtnodeidRRt no_committ import_branchtbypasststripRR[is message: %s R#Rsnot a Mercurial patchs\warning: import the patch as a normal revision (use --exact to import the patch as a merge) tdefaulttpartialRRgY@s import.normalRRtallowemptycommittimportRteditorRwNs import.bypassRus3warning: can't check exact import with --no-commit s%patch is damaged or loses informationsapplied to working directorys created %s(RRB(1R#RqRtfloatRRRR?RRRRR RRt RepoErrorRRt setparentsRt setbranchRiRRRRRRlRRRRRtextrapreimporttextrapreimportmapRtconfigoverrideRtextrapostimporttextrapostimportmapRxt filestoret patchrepoR!t forcebytestrRRRR(%RRt patchdataRRtmsgst updatefuncRqRR0R9R6RxR;RRtnocommitt importbranchRR?Rtsimtrejectstcmdline_messageR"RARR%R/RRDRwtidfunct overrideststoreRR((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt tryimportonews                          ( cC@stj|}g|jD]}|r|j^q} |j} |rY| jn| rl| d} nt} |jd||jd|j dd|j |jd|j |j dd|j |j |j | o| d kd d | |j d d t||jdt| t| dkrc|jdt| dn|jd|jtjt| dd xAtD]9} t| ||} | dk r|jd| qqW|j dd|jj|jd|jrUtj|| ||d|}xa|D]\}}|j|d|q/Wn7tj|| ||d|}|jddj|dS(NiRts# HG changeset patch R9s # User %s s # Date %d %d R6s # %s R@Rxs # Branch %s Rs # Node ID %s s # Parent %s iRtnames# %s tdescs%s s RRwRR#(RtbinnodeRRRxRRRRqRYRR9R6t formatdatet condwriteRRtdatat formatlistRtmaplistt extraexporttextraexportmapRRtrstriptisplainRtdiffuiRR(RRtRZRt switch_parentRRRR@RRxtprevtheaderidRjt chunkiterRqRw((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt _exportsingle)s@+    " +    c C@szxst|dD]b\}}||} |jdsL|jjd|n|jt|| |||||qWdS(s,Export changesets to stdout or a single fileitWx| D]} tj || f}|j j d| xH| | D]<\} } |j || } t || |||| |qWWdQXqWdS(s,Export changesets to possibly multiple filescs@s!|]}tt|VqdS(N(Rtstr(t.0R((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pys asiRRRs%s N(RtmaxRtsortdictRpRt setdefaultRR t maybereopenRRqRrRn(RRtbasefmt fntemplateRjRRRRtfilemapRRRtR%RZ((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt_exportfntemplate]s     #   s hg-%h.patchcC@sXtj||||s8t|||d|||nt|||||||dS(sexport changesets as hg patches Args: repo: The repository from which we're exporting revisions. revs: A list of revisions to export as revision numbers. basefm: A formatter to which patches should be written. fntemplate: An optional string to use for generating patch file names. switch_parent: If True, show diffs against second parent when not nullid. Default is false, which always shows diff against p1. opts: diff options to use for generating the patch. match: If specified, only export changes to files matching this matcher. Returns: Nothing. Side Effect: "HG Changeset Patch" data is emitted to one of the following destinations: fntemplate specified: Each rev is written to a unique file named using the given template. Otherwise: All revs will be written to basefm. s N(Rt prefetchfilesRsR}(RRRzR{RjRR((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pytexportss c C@sitj|||t|dd}tj|j|di#}t|||||||WdQXdS(s*Export changesets to the given file streamR]s RN(RR~R#R RRs(RRRRjRRR%RZ((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt exportfilesc C@sr|dk r"|jdd|n|jddt|j|j}|j|dd|jtt|dd|jdd |j|j }|dk r|jd d |jtt|ddd d n|jdd|j |j |j j }|jddtjtj|}|jdd|j|ddd d |jddS(sdutility function to display obsolescence marker in a readable way To be used by debug function.tindexs%i tprednodes%s t succnodesR]Rtflags%X t parentnodess{%s} tseps, R6s(%s) tmetadatas{%s}tfmts%r: %rs N(RRRRRRaRctmapRRR`R6RR:RzRtrapplyt maybebytestrt formatdictRY(RZtmarkerRtsuccsRtmetatsmeta((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt showmarkers"     ("(c@stj|tj|}ifd}xnt||idd6|D]P}|j}|krS|jtd|tj |fd|SqSWt j tddS(s;Find the tipmost changeset that matches the given date specc@s3|j}|dr/||j         t _followfiltercB@seZedZdZRS(cC@s+||_t|_t|_||_dS(N(RRtstartrevRiRt onlyfirst(R RR((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyR @s   c@sfd}jtkr+|_tS|jkrjsYjjjnx||D])}|jkrfjj|tSqfWn^jsjj|jn|jkrjj|jj||tStS(Nc@sFjr#jjj|dd!Stdjjj|SdS(NiicS@s |tkS(N(R(Rf((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRyKs(RRRRtfilter(R(R (s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt realparentsGs  (RRRRRlRtremoveR(R RRtparent((R s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRFs$    (RRRR R(((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyR?s c @s3jdjdp*jdtsFgSt jptj otjd}ijjsr ny|syt Wqtk rt}x;j D]%}|dks|j krPqqWgSqXn|ror>t j t dndtffdY}| nxjd dD]|}|j}t}td d } x@tj|| d d D]%} |j| r | g qqWqW f d } | S(szIterate over files and the revs in which they changed. Callers most commonly need to iterate backwards over the history in which they are interested. Doing so has awful (quadratic-looking) performance, so we use iterators in a "windowed" way. We walk a window of revisions in the desired order. Within the window, we first walk forwards to gather data, then in the desired order (usually backwards) to display it. This function returns an iterator yielding contexts. Before yielding each context, the iterator will first call the prepare function on each context in the window in forward order.t all_filesRRRRs5can only follow copies/renames for explicit filenamest lazywantedsetc@s5eZfdZfdZdZRS(c@st|_t|_dS(N(RiR(R (R(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyR s c@s||jkrtS||jkr&tS|jj||}g|jD]}|rO|^qO}|r||<|jj|tStSdS(N(RiRRRtdiscardRRl(R tvalueRtRtmatches(tchangeRR(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt __contains__s + cS@s$|jj||jj|dS(N(RRRi(R R((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRs(RRR RR((RRRR(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRstpruneiiic 3@shrBjrBt djd fd}n fd}t }t}xtD]}g}xXtj|D]G}t|d}|dkrt }Pq||r|j |qqWxct |D]U}j|}||s)fd}|}n|qWx|D]}|VqAW|rmPqmqmWdS(NRRc@sj|o|kS(N(R(R(tffR(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pytwantsc@s |kS(N((R(R(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRsc3@sJrt}n j}x"|D]}|r(|Vq(q(WdS(N(RR(tfiterR(tallfilesRtR(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt fns_generators    ( talwaysRRRRRRRtnextRRRR7( Rtitt stopiterationRtnrevsRRRR( RRRRRRtprepareRRR(RtRs7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pytiterates4      ((RRRitanypatsRt __getitem__RRRRR[R RRtobjectRRRRRR( RRRRtslowpathRRRRtstopRfR(( RRRRRRRRRRs7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyResD (    %   *(c @sfd}gfd}g}|d} d} tj|\} } | s^| rytj|| |j} n|jdttj|} |j}xt |j | dt | j dtdt dt D]}j |}|s | r|| kr|jj|r| r3| |n|j||jsP| r||jtdj|d d q|qqWxt | j D]}| j|}yltj|}|jdrj|j||t |n"j|j||t|Wqtjk rD|jtd ||qXqW|jd s| j|}jfd |DnS(Nc@stjj|S(N(RRR(R(R(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRysc@sj|pj||S(N(RR(Rfty(RR(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRyst includeexactR^R!R"tfulls adding %s Rwsui.addremove.addeds#skipping missing subrepository: %s Rc3@s'|]}|jkr|VqdS(N(R(RuR(R(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pys s(RRtcheckportabilityalerttcasecollisionauditorRt narrowmatchRR/tbadmatchR7RRRRRR RRRRRRt subdirmatcherRRaRlR t LookupError(RRRRt explicitonlyRRtbadfntnamesRtccatabortRRRRRtsubpathRtsubmatchtrejected((RRRs7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRlsH   !+  %& cC@s|j||<|jjd||jfxN|jdD]=}||}x*|jD]}|j|j||qTWq:WdS(Nsadding %s = %s sfilelog("path:.hgsub")(RURRRRRt addwebdirpath(Rt serverpathtwebconfRRtR((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyR s   c@sY|r$|r$tjtdnfd}gfd}|d} g} |jdtj|dt} t| j | j | j | j } |rg| D]} j | r| ^q} nxt| jD]}| j|}ytj|}|j|d|d|\}}jg|D]} |d| ^q?| jg|D]} |d| ^qgWqtjk r|jtd ||qXqW|srxjD]} | |jkr|jj|  r| | krk|jj| rX|jj| |jkr5qn|jtd j| nj| qkqqWn|rtd }x| D]}|jtd ||f}|d kr6xv|d kr2xA|j|dD],\}}|jd|t j!|fqW|jtd ||f}qWn|dkrHqq|dkrd| j"|q|dkr| j#|}| |3Pq|dkrPqqWnxV| D]N} |j$sj |  s|r|jtdj| ddqqW|sO| j| jfdD| jfd| Dn| fS(Ns/cannot specify both --dry-run and --interactivec@stjj|S(N(RRR(R(R(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRy,sc@sj|pj||S(N(RR(RfR(RR(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRy.sRR RRRs#skipping missing subrepository: %s s+not removing %s: file is already untracked s[Ynsa?]$$ &Yes, forget this file$$ &No, skip this file$$ &Skip remaining files$$ Include &all remaining files$$ &? (display help)s forget %s %siis%s - %s iiis removing %s Rwsui.addremove.removedc3@s'|]}|jkr|VqdS(N(R(RuR(R(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pys tsc3@s!|]}|kr|VqdS(N((RuR(R(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pys us(%R RRRRR/RRR7RRRR RRRRRRaRRRRRRFRRRRt promptchoicetextractchoicesRR tlowerRRR(RRRRRRRRRRtforgotRZRRRRRtsubbadt subforgott responsesRmRR_RWtfnindex((RRRRs7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyR)sz  $$+(,"    $       cC@sd}|jp"ddh|j@}x|j|D]}|j|jd||r||} |jdd| j| jn|jd||j ||j |d}q5Wxt |j D]} t j| |} |s |j| s t| jr|j| } yC|j| p1|} | j|| ||| dkr^d}nWqtjk r|jtd |j| qXqqW|S( NitsizeRRts size flagss % 10d % 1s Ris#skipping missing subrepository: %s (RtdatahintRRrRqRRRRbRYRR7RR/RRtanyRRt printfilesR RRRR(RRtR/RZRR^trett needsfctxRtfcRRRtrecurse((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRxs.  % '! c  @sfd} d} |jd|dt} | d| d| d| df\} } }}|d|dkrg}t}nt}tj}|jtdd t|d td }x|D]}t j ||}|s|j |st |j r|jj|}y.|j||||||rNd} nWqtjk r|jtd | |qXqqW|jtj|}|j }|jtd d t|d td}x|D]fd}|j|kpj}|jks|sdks|s|kr\qn|jjr|jjr|jtd|jq|jtd|jnd} qW|j|r| ||| }nz|r|}| | |}|jtdd t|d td}xV|D]N|j|jsh|kr|jtd|jnd} qCW|jn||}|jtdd t| t| d td}x>| D]6|j|jtd|jd} qWx>| D]6|j|jtd|jd} q+W|jt|}|jtd d t|d td}xZ|D]R|js|j  r|j|jtd|jddqqW|j|s|js|sxT|D]I| krGq/n|jj dd}|jj!dtd|q/Wn|dj"|WdQXn|rx|D]}|j#|qWn| S(Nc@stjj|S(N(RRR(R(R(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRysiRR iiit searchingRtunitR^s#skipping missing subrepository: %s tdeletingRc@s/x(jD]}j|dr tSq WtS(NR(RRbRR(R(RR(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt insubreposRs"not removing %s: no tracked files s#not removing %s: file is untracked tskippings#not removing %s: file still exists s<not removing %s: file is modified (use -f to force removal) sLnot removing %s: file has been marked for add (use 'hg forget' to undo add) s removing %s Rwsui.addremove.removedRRt ignoremissingR($RRRRR7Rt makeprogressRRR/RRRRt incrementRt removefilesR RRtcompleteRtdirsthasdirRRRFRRRRRRRRR(RRR/RRRR^RtwarningsRRRZRRRR RtsubstprogressRRRt deleteddirsRRRRlt remainingRtwarning((RRRs7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRs.    '       !                       # cC@sr||j}|r1|jj||}n|j|jd||jdd||jd|dS(sHook for adding data to the formatter used by ``hg cat``. Extensions (e.g., lfs) can wrap this to inject keywords/data, but must call this method first.RtRbs%sRN(RbRt wwritedataRrRqR(RZRtRRtdecodeRb((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt_updatecatformatter s c @sd}tjfd} tjdkrj rjd} |j} j} yK| r| | j| drtj |j g| | dSWqt k rqXntj |j gx'j D]} | | d}q Wxt jD]}j|}yUtj|}|j|tjj|jtjsd}nWq5tjk r|jtdtjj|q5Xq5W|S(Nic @sd}rdtdtjj|}ytjtjj|Wqdtk r`qdXntj |&}t ||j dWdQXdS(NRR( RRRRRR RRR RyRR(RRmRZ(RzRtR{RRR(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyR s  is#skipping missing subrepository: %s (RRRRRRt manifestnodeRRR~RRRR7RRR/RtcatRRRt_pathRR tRepoLookupErrorRR(RRRtRRzR{RRRRRtmfltmfnodeRRRR((RzRtR{RRRs7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyR s<%       c C@s|jd}|r+tj||di|fj76}d}|jdrit?j@|dd6}n|jAdd}tjB||dd|d t3d!|d"||jC}tjDjE@}x|D]}|jF|qWtjG@} x| D]}|jH|qWWdQXWdQXWdQX|S(#Ni(Rqsamending changeset %s tamendR9R6iRR#s5failed to mark all new/missing files as added/removeds.hgsubc3@s!|]}|r|VqdS(N((RuR(R(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pys sic @sy|krj|S|jkr2dS|}|j}j|||j|jdd|kdd|kdj|}|SWntk rdSXdS(NR4R2tisexecRfR( RRRRt memfilectxRRbRR(Rtctx_RtfctxRtmctx(RqRt filestoamendtoldR(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRu s        scopying changeset %s to %s c@s*yj|SWntk r%dSXdS(N(RRR(RR%R(R)(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRu s s commit.amendRRt amend_sourceRRJRRuRwRDtsecretRqRshistory-editing-backupRRyt targetphasetbackup(IR#RqRt isenabledtcreatemarkersoptRRqRRRR|R}RR:RRwRR9R6R RRRRiRRRRRR RRt precommitt_statustAssertionErrort writestateRR4RRtcheckunresolvedRt pathcopiesRRRRRRRRRRRRRRt stripdescRR+RRGRR t fromlocalRRRRRtnormalRtdrop(!RRR)RwRRtbaseR9R6RRRR t commitsubst newsubstatetmsRRRuR0RRDt pureextratnewtnewdesct commitphaseRRt obsmetadataR-Rt normalfilest removedfiles((RqRR(RR)Rs7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyR"l s       " %             #cC@s2|jr|jSt|||d|dtS(NRtunchangedmessagedetection(RRR(RRtR R((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyR/ s  c C@s|std}ng|jdD]}|r%|^q%}|jddd} xm|rdj|} |jjd| rt||||| } } Pn|jqVWt ||||} t j } t j |j|j} |jj| | o| jo|j}|jj| |j|jd|d|d|jd d }|}tjt|d tj}|r||j }ntjd d |}t j | |r||}n|jstjtdn|r|| krtjtdn|S(Ns$Leave message empty to abort commit.Rit changesettcommittemplateRtpendingRRRRs(?m)^HG:.*( |$)R#sempty commit messagescommit message unchanged( RRttinsertRRRRtbuildcommittemplateRztbuildcommittextR R9RtchdirRUtcurrenttransactionRRt writependingRR9RwRtretsearcht _linebelowt MULTILINERRR?R R(RRtR RRRRER%tformst templatetexttreft committexttolddirttrRHt editortextRJt stripbelow((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyR5 sD(   !   cC@s|j}tj|dd}tj|||}|jjjd|jj dD|skd}n|j |j |d||j S(Ncs@s*|] \}}|tj|fVqdS(N(Rt unquotestring(Rutktv((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pys k sRGR#R( RR t templatespecRRtchangesettemplaterRWtcacheRt configitemst pushbuffertshowt popbuffer(RRtR RRURtspecRW((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRJg s   cC@s3djg|jdD]}|rd|^qS(Ns sHG: %s(RRt(RRI((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pythgprefixu sc C@s[g}|j|j|j}}}|jrN|j|jn|jd|jd|jttd|jt||jd|jttd|j|jr|jttdn|j r|jttd|j nt j |rP|jttd|j n|j g|D]}ttd|^q]|j g|D]} ttd | ^q|j g|D]} ttd | ^q|j g|D]} ttd | ^q| rA| rA| rA|jttd n|jdd j|S(NR#s>Enter commit message. Lines beginning with 'HG:' are removed.sHG: --suser: %ss branch merges branch '%s's bookmark '%s's subrepo %ssadded %ss changed %ss removed %ssno files changeds (RRRRRRfRR9RRxRtisactivewdirparentt_activebookmarkRaR( RRtR RtedittextRRRRZR((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRKx s0&    #  &#0000 c C@s||dkri}n||}|j}|jd r|r||krg|D]0}|j|krT|j|krT|^qT r|jjtdn|jdsxR|D]G}|jr|j|kr|jjtd|j qqWn|jj rC|jj td|j |j fn5|jj rx|jj td|j |fndS(NR"screated new head t close_branchs reopening closed branch head %d scommitted changeset %d:%s (RRRRRxRRRt closesbranchRt debugflagRRR( RRRxtbheadsRRtRRfR((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt commitstatus s    "> * / cC@s#|jdtj|d||S(NR(RRRR(RRR((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pytpostcommitstatus sc>@s tj|}|\}}j}j} ||krH|}ni|j+ |jdt} |d} tj | ||t fd| j D} j st jd} x9| j| D](}j|j|f| scS@stS(N(R(RfR((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRy sc@su|krdS|jkr#dS|d}x!D]}|j|r4dSq4Wjdj||fdS(NRs%s: %s (RRbRR(RRtpath_R(RtR/RR(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyR s   tnode1RR!R"R RRIs reverting %s treverts adding %s Rls removing %s RR9sforgetting %s Rsundeleting %s tundeletesno changes needed to %s tnoopsfile not managed: %s iiiit no_backups#saving current version of %s as %s Rs(subrepository '%s' does not exist in %s!(RrRlRs(>RRRR`RRRRRRR7RRR/RRRRRRRRiRRRRR!RR"R RRR9RRRlR8RRRR RtitemsRRtorigpathRqRRR RRR~Rt_performrevertRRrRRR RR(>RRRtRRRRRRRRRt targetsubsRRRRtkindRRRt_deletedR!R tmodaddedt dsmodifiedtdsaddedt dsremovedt localchangestmergeaddRRRRtdeladdedRtremovunkRt dsremovunktactionstbackupinteractiveR-tcheckRtdsmodifiedbackupRt backupanddelt disptableRRRctxlistRtdobackuptbaknametneeddataR]toplisttprefetchRtsublistR((RtR/RRs7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRr sV        & " )  *                   % #                    %    # !  *    c$@sj|\}}j} g} fd} fd} fd} tjjdt}xddD]}|rjjtd|}|dkr| d|jj |q| j |q{| d|jj |q{WxddD]}|||rwjjtd |}|dkrg| d|| |q| j |q| d|| |qWx=d dD]-}||| d |jj |qWd}| |kr|t krjj}qjj}nt}|rgd dD]}|| kr,|^q,}tj|}tjjd t}t|_t|_d }t}| |krd}t}n|rtjjd|d|}n$tjdj|d|}tj|}y:tj|d|\}}|rFtj|}nWn/tjk rx}tjtd|nXt||}|dkrt}nt }x1t!td|DD]}| d |qWx|D]}t"|rm|j#j$}|j#j$|krmj%|} tj&j|j'|}!t(j)| |!|j |qmn|j*|qW|j+}"|j,d|"ry#tj-j|dddWqtjk r}tjt.j/|qXn~nCx@d dD]0}| d || ||r ||q q WxLddD]<}||krL| d|| |jj0|qLqLWjj}| |kr|t krjj}nx7ddD]'}| d|| |||qWt1j2|}#xTddddd dD],}||#kr6jj3|#||q6q6WdS(sfunction that actually perform all the actions computed for revert This is an independent function to let extension to plug in and react to the imminent revert. Make sure you have the working directory locked when calling this function. c@s-|}j||j|jdS(N(twwriteRbR(RR(RtR(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pytcheckout s c@sWy/jjdd}jj|d|Wntk rBnXjj|dS(NRRR(RRRRRRR(RR(R(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pytdoremove s  c@sF|\}}jjs#| rBjj|d|ndS(Ni(RRR(RRRR(RRR(s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt prntstatusmsg stcachedRis(forget added file %s (Yn)?$$ &Yes $$ &NoRs(remove added file %s (Yn)?$$ &Yes $$ &NoR9RrRRtapplyRRserror parsing patch: %scs@s*|] }t|r|jjVqdS(N(RhRjRm(RuR_((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pys S siRRlRsN(4RRt pathauditorRURRRRRR9RRRRRR8RiRRRRRLRBRRRRt reversehunksR RRRrRR7RhRjRmRRwRRRRRRRRRRlRR5R:($RRRtRRRRRRRtexcluded_filesRRRt audit_pathRReR8RpttorevertR/RRRRRoRnRRRR_RRRRR((RRtRRs7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyRx s                 -    '$   #  !  #        - sgraft in progresss6use 'hg graft --continue' or 'hg graft --stop' to stopt updatestateslast update was interrupteds,use 'hg update' to get a consistent checkoutcC@sx_tD]W\}}}}}|s|r4|r4qn|jj|rtj|d|qqWx`tD]X\}}}}}| si|r|rqin|jj|ritj|d|qiqiWdS(sLook for an unfinished multistep operation, like graft, and abort if found. It's probably good to check this right before bailifchanged(). RN(tunfinishedstatesRRFR R(RRRt clearablet allowcommitRR((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyR scC@sxNtD]F\}}}}}| r|jj|rtj|d|qqWxQtD]I\}}}}}|rX|jj|rXtj|jj|qXqXWdS(s[Check for unfinished operations (as above), and clear the ones that are clearable. RN(RRRFR RRRR(RRRRRR((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pytclearunfinished s shg graft --continuecC@s}td}x4tD],\}}|jj|r||tfSqW|djdtdtdtry|tdtfSdS(sCheck for an unfinished operation and return the command to finish it. afterresolvedstates tuples define a .hg/{file} and the corresponding command needed to finish it. Returns a (msg, warning) tuple. 'msg' is a string and 'warning' is a boolean. s continue: %stmissingRRxs hg commitN(NN(RtafterresolvedstatesRRFRRtdirtyR(RtcontmsgRR((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyt howtocontinue s "cC@sVt|\}}|dk rR|r;|jjd|qR|jjd|ndS(sInform the user about the next action after completing hg resolve If there's a matching afterresolvedstates, howtocontinue will yield repo.ui.warn as the reporter. Otherwise, it will yield repo.ui.note. s%s N(RRRRRq(RRR((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pytcheckafterresolved s  cC@sLt|}d}|dr)|d}ntjtd|d|dS(sRaise an abort suggesting how to properly continue if there is an active task. Uses howtocontinue() to find the active task. If there's no task (repo.ui.note for 'hg commit'), it does not offer a hint. iisno %s in progressRN(RRR RR(RttaskRR((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pytwrongtooltocontinue s   (t __future__RRRROti18nRRRRRRR#RRRR RbR R R R RRR/RRRRRRRRRRRRRRRRRRtutilsR R!RRt dryrunoptst confirmoptst remoteoptstwalkoptst commitoptst commitopts2t formatteroptst templateoptstlogoptsRt diffwsoptst diffopts2t mergetooloptstsimilarityoptst subrepooptsRtdebugrevlogoptsRQRhRrRvRRRRRRR-R3R<R?R@RARBRCRDRERGRHRSRXR`RjRRoRRR~RRRRRRRRRRRRRR:RIRLRJRMR\ReRfRnRsR}RRRRRRt ExceptionRRRRRlRRRRRRRRR"RRRJRfRKRnRoRrRxthookst outgoinghookst summaryhookstsummaryremotehooksRRRRRRR(((s7/usr/lib64/python2.7/site-packages/mercurial/cmdutil.pyts^   "                       F %$        d 1             &  W       D  =    +     a& - O  v 4  1   0  #