\x89\x50\x4E\x47\x0D\x0A\x1A\x0A PNG  \x89\x50\x4E\x47\x0D\x0A\x1A\x0A  13\c@@sYddlmZddlmZddlmZmZmZmZddl m Z m Z m Z m Z mZmZmZmZmZmZmZmZddlmZejZejZejZejZejZejZddZddZ d Z!id d 6d d 6dd6dd6dd6Z"e"de"dddd7hd?Z9e$d@ddd7hdAZ:e$dBddhdCZ;e$dDdddhdEZ<dFZ=dGZ>dHZ?e$dIdddJZ@e$dKdddLZAe$dMdddd:hdNZBdOZCe$dPdddd:hdQZDe$dRdddd:hdSZEdTZFddheF_Ge$d dddhdUZHe$dVdd-ddhdWZIdXZJe$dYdddhdZZKe$d[ddhd\ZLe$d]ddhd^ZMe$d_dd`hdaZNe$dbddhdcZOe$dddddhdeZPe$dfddhdgZQe$dhdd`hdiZRe$djddd`d7hdkZSe$dldddhdmZTe$dndddhdoZUe$dpddhdqZVe$drddhdsZWe$dtddhduZXe$dvddhdwZYe$dxdddhdyZZe$dzddhd{Z[e$d|ddhd}Z\e$d~ddhdZ]dZ^e$dddhdZ_e$ddddhdZ`e$ddd-hdZae$dddhdZbe$dddhdZce$ddd-hdZde$ddddhdZedZfe#jgZhdS(i(tabsolute_importi(t_(thextnullidtwdiridtwdirrev( tdiffutiltencodingterrorthbisectti18ntobsutiltpatchtpycompatt registrartscmutilt templateutiltutil(t stringutilc@s|j|d|j|d|j|d}d}|dk rl|d|7}tj|d}n tj}||kridddgfd 6||tk rx|j||jdj DqnX| |d |f||_sN(tresourcetNoneRt stringmatcherRtalwaysRtpopttagsttagtypetdatetsortedtparentsRtmaxtKeyErrortappendtextend(tcontexttmappingtpatternRt cachenametmatchRRttodottR'R!tptagstpdatetpdisttptagR((RRs:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt getlatesttags+sL           $6)  c@s:idkr!tnfd}|S(Nc@s|kri|<j|}x`|D]U}|j|}|j|j|}|of|d||<|kr,Pq,q,Wn||kr||Sy&||j}|o|dSWntjk rdSXdS(slooks up all renames for a file (up to endrev) the first time the file is given. It indexes on the changerev and only parses the manifest if linkrev != changerev. Returns rename info for fn at changerev rev.iN(tfiletlinkrevtrenamedtnodeRt LookupErrorR#(tfnRtfltitlrR>(tendrevtrcacheR(s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt getrenamedis       (R#R(RRERG((RERFRs:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt getrenamedfnds  cC@sctj}|d}ttg|jD]}|jddd^q(tj|jtS(s"Return a dict of log column labelssbookmark: %s branch: %s changeset: %s copies: %s date: %s extra: %s=%s files+: %s files-: %s files: %s instability: %s manifest: %s obsolete: %s parent: %s phase: %s summary: %s tag: %s user: %s t:ii( R tidentitytdicttzipt splitlinestsplitR RtTrue(Rtcolumnsts((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt getlogcolumnss  2s{rev}:{node|formatnode} tparents{rev}:{node|formatnode}tmanifests{name} ({source})t file_copys {key}={value}tenvvars{key}={value|stringescape}textratfilecopytauthortrequiresRcC@s t||S(sAlias for ``{user}``(tshowuser(R0R1((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt showauthorstbisectRcC@s:|j|d}|j|d}tj||jS(s'String. The changeset bisection status.RR(R"R tlabelR?(R0R1RR((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt showbisectstbranchcC@s|j|d}|jS(sMString. The name of the branch on which the changeset was committed. R(R"R`(R0R1R((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt showbranchstbranchescC@s_|j|d}|j}|dkrFt||d|gddSt||dgddS(sList of strings. The name of the branch on which the changeset was committed. Will be empty if the branch name was default. (DEPRECATED) RtdefaultR`tpluralRb(R"R`t compatlist(R0R1RR`((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt showbranchess   t bookmarksc@ss|j|d}|j|d}|j}|jfd}t||d|}t|||tjS(s{List of strings. Any bookmarks associated with the changeset. Also sets 'active', the name of the active bookmark. RRc@si|d6d6d6S(Ntbookmarktactivetcurrent((tv(Ri(s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pytsRh(R"Rgt_activebookmarkt_showcompatlistt_hybridR RJ(R0R1RRRgtmakemaptf((Ris:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt showbookmarkss  tchildrencC@sZ|j|d}g|jD]}d|j|f^q}t||d|ddS(s/List of strings. The children of the changeset.Rs%d:%sRstelementtchild(R"RsRRe(R0R1Rtcctxt childrevs((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt showchildrens/tcurrentbookmarkcC@s t||S(sUString. The active bookmark, if it is associated with the changeset. (DEPRECATED)(tshowactivebookmark(R0R1((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pytshowcurrentbookmarkstactivebookmarkcC@sM|j|d}|j|d}|j}|rI||jkrI|SdS(sDString. The active bookmark, if it is associated with the changeset.RRt(R"RmRg(R0R1RRRi((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyRzs  R)cC@s+|j|d}tj|jddS(s<Date information. The date when the changeset was committed.Rtshowfmts%d.0%d(R"RR)(R0R1R((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pytshowdatestdesccC@s|j|d}|j}t|tjrLtjtj|jSt|tjrqtj|jS|jSdS(s.String. The text of the changeset description.RN( R"t descriptiont isinstanceRtlocalstrttolocalt fromlocaltstript safelocalstr(R0R1RRQ((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pytshowdescriptions tdiffstattuic C@s|j|d}|j|d}tj|itd6}|jd|}tjtj|}tj |\}}} } } dt || | fS(siString. Statistics of changes with the following format: "modified files: +added/-removed lines" RRtnoprefixtoptss %d: +%d/-%d( R"Rt diffalloptstFalsetdiffR t diffstatdataRt iterlinest diffstatsumR( R0R1RRtdiffoptsRtstatstmaxnametmaxtotaltaddstremovestbinary((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt showdiffstatstenvvarsc@s\|j|d}|jtjfdtDt||dddS(s5A dictionary of environment variables. (EXPERIMENTAL)Rc3@s|]}||fVqdS(N((R tk(tenv(s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pys sRVRdR(R"texportableenvironRtsortdictR*t compatdict(R0R1R((Rs:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt showenvvarss %textrasc@s|j|d}|jtjfdtDfd}gD]}||^qY}t||d|dd}t||fdS(sRList of dicts with key, value entries of the 'extras' field of this changeset.Rc3@s|]}||fVqdS(N((R R(R(s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pys !sc@si|d6|d6S(NRtvalue((R(R(s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyRl"sRWRdRc@sd|tj|fS(Ns%s=%s(Rt escapestr(R(R(s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyRl&s(R"RWRRR*RnRo(R0R1RRpRtcRq((Rs:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt showextrass % cC@s|j|d}|j|d}d|ks@|d|kr~|jj|d|d|d|}||d<||d8s(R"RRLR t iterbytestrtupdate(R0R1RRRtstatmaptfiles((Rs:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt_getfilestatusmap2s%$cC@s/t||}||}tj||||S(N(RRtcompatfileslist(R0R1tnametindexRR((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt_showfilesbystat;s t file_addsRcC@st||ddS(s/List of strings. Files added by this changeset.tfile_addi(R(R0R1((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt showfileadds@st file_copiesRc C@s|j|d}|j|d}|j|d}|j|djd}|dkrd|kr|t||d@sc@sK|}i|d6|jd6}|jdt|jjD|S(NRturlcs@s!|]\}}||fVqdS(N((R RRk((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pys Ds(RRR*t suboptionsR (RR!td(tpaths(s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyRpAs &c@sd||fS(Ns%s=%s((R(turls(s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyRlFsN( R"RRRRR*R RoR#(R0R1RRp((RRs:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt showpeerurls9s  %t predecessorsc@sy|j|d|j|d}ttj|j}tjt|}td|fdfdS(sBReturns the list of the closest visible successors. (EXPERIMENTAL)RRc@si|d6S(NR((R(R(s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyRlQsc@stj|S(N(RR(R(R(s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyRlRsN( R"R*R tclosestpredecessorsR?R tmaplistRRoR#(R0R1RR((Rs:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pytshowpredecessorsHs  treporootcC@s|j|d}|jS(s5String. The root directory of the current repository.R(R"troot(R0R1R((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt showreporootTstsizecC@s|j|d}|jS(s:Integer. Size of the current file in bytes. (EXPERIMENTAL)R(R"R"(R0R1R((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pytshowsizeZsRcC@sttj||d}tj|||}|s4dSt||}||krgt||dt}n|j|S(s7String. Status code of the current file. (EXPERIMENTAL)RNR(Rt runsymbolt stringifyRROR(R0R1RR((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt showstatusas tsuccessorssetsc @sjdjd}|js4dStj|jdt}g|D]%}g|D]}t|^qf^qY}g}xB|D]:}td |fdfd}|j |qWfdfd}t|||d t j S( sReturns a string of sets of successors for a changectx. Format used is: [ctx1, ctx2], [ctx3] if ctx has been split into ctx1 and ctx2 while also diverged into ctx3. (EXPERIMENTAL)RRR}tclosestc@si|d6S(NR((R(R(s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyRl|sc@stj|S(N(RR(R(R(s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyRl}sc@stj|S(N(RR%(R(R0R1(s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pytrendersc3@s"djfd|DVdS(Ns; c3@s|]}|VqdS(N((R R(R)(s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pys s(tjoin(tdata(R)(s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pytgenscS@s i|d6S(Nt successorset((R((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyRlsN( R"RR R'R?RORRoR#R.R RJ( R0R1RtssetstsstnR+thR,((R0R1R)Rs:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pytshowsuccessorssetsms 2 Rc@s|j|d|j|d}tj|}|dkrKg}ng}x$|D]}|d}g|D]}t|^qo}td|fdfd}g}x|dD]} t| d} td| d D} d} | d dk r"td | d D} n| | f| d d !| f| d } |j| qW|ji|d6|d6qXWtj |S(sReturns a list of dict for each final successor of ctx. The dict contains successors node id in "successors" keys and the list of obs-markers from ctx to the set of successors in "markers". (EXPERIMENTAL) RRRc@si|d6S(NR((R(R(s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyRlsc@stj|S(N(RR(R(R(s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyRlsRics@s|]}t|VqdS(N(R(R R0((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pys siics@s|]}t|VqdS(N(R(R R0((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pys siiN( R"R tsuccessorsandmarkersR#RRottupleR.Rt mappinglist(R0R1RRR+RCRR0t finalmarkerstmthexprecthexsucst hexparentst newmarker((Rs:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyRs.      &tp1revcC@s"|j|d}|jjS(syInteger. The repository-local revision number of the changeset's first parent, or -1 if the changeset has no parents.R(R"RR(R0R1R((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt showp1revstp2revcC@s"|j|d}|jjS(sInteger. The repository-local revision number of the changeset's second parent, or -1 if the changeset has no second parent.R(R"tp2R(R0R1R((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt showp2revstp1nodecC@s"|j|d}|jjS(sString. The identification hash of the changeset's first parent, as a 40 digit hexadecimal string. If the changeset has no parents, all digits are 0.R(R"RR(R0R1R((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt showp1nodestp2nodecC@s"|j|d}|jjS(sString. The identification hash of the changeset's second parent, as a 40 digit hexadecimal string. If the changeset has no second parent, all digits are 0.R(R"R?R(R0R1R((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt showp2nodesR+c@s|j|d|j|d}tj|}g|D]}|j^q=}g|D]9}d|jfd|jfd|jfg^q\}t||d|}t||fdfdd tS( sList of strings. The parents of the changeset in "rev:node" format. If the changeset has only one "natural" parent (the predecessor revision) nothing is shown.RRRR?tphaseRSc@si|d6S(NR((R(R(s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyRlsc@stj|S(N(RR(R(R(s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyRlstkeytype( R"RtmeaningfulparentsRRtphasestrRnRotint(R0R1RtpctxsR!tprevsR+Rq((Rs:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt showparentssCREcC@s|j|d}|jS(s!String. The changeset phase name.R(R"RH(R0R1R((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt showphasestphaseidxcC@s|j|d}|jS(s.Integer. The changeset phase index. (ADVANCED)R(R"RE(R0R1R((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt showphaseidxsRcC@s|j|d}tj|S(s8Integer. The repository-local changeset revision number.R(R"Rtintrev(R0R1R((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pytshowrevsc@sf|j|dt||g|D]}d|^q%}t||fdtjdtS(sWhelper to generate a list of revisions in which a mapped template will be evaluatedRs%dc@si|6|d6S(NR((R(RR(s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyRlsRF(R"RnRoR RJRI(R0R1RRtrRq((RRs:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt showrevslists , tsubreposcC@s|j|d}|j}|s4t||dgS|jdjpJi}g}x>|D]6}||ks||||krZ|j|qZqZWx*|D]"}||kr|j|qqWt||dt|S(s:List of strings. Updated subrepositories in the changeset.Rtsubrepoi(R"tsubstateReR+R.R*(R0R1RRVt psubstateRTtsub((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt showsubreposs     R'cC@st||dS(s8List of strings. Any tags associated with the changeset.R'(R(R0R1((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pytshowtagsst termwidthcC@s|j|d}|jS(s+Integer. The width of the current terminal.R(R"R[(R0R1R((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt showtermwidthstusercC@s|j|d}|jS(s/String. The unmodified author of the changeset.R(R"R](R0R1R((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyR[st instabilitiescC@s1|j|d}t||d|jddS(sYList of strings. Evolution instabilities affecting the changeset. (EXPERIMENTAL) Rt instabilityRdR^(R"ReR^(R0R1R((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pytshowinstabilities"st verbositycC@s=|j|d}|jrdS|jr,dS|jr9dSdS(sOString. The current output verbosity in 'debug', 'quiet', 'verbose', or ''.RtdebugtquiettverboseR}(R"t debugflagRcRd(R0R1R((s:/usr/lib64/python2.7/site-packages/mercurial/templatekw.pyt showverbosity+s   t whyunstablec @s|j|d|j|d}dtj|}xw|D]o}|jdrF|d}td g|D]}|j^qrfdfd}||ds"R       9  ! ! !!  !  !  !!!  $ $$ !$ !! $ !!)! ! !