\x89\x50\x4E\x47\x0D\x0A\x1A\x0A PNG  \x89\x50\x4E\x47\x0D\x0A\x1A\x0A  13\c@@sVddlmZddlZddlZddlmZddlmZmZm Z ddl m Z m Z m Z mZmZmZmZmZmZmZmZmZmZmZmZmZddlmZmZdZde!dd d e!dd Z"d e#fd YZ$d Z%de#fdYZ&de&fdYZ'de&fdYZ(dZ)dZ*e!dZ+de!dZ,dZ-dZ.dZ/i d:d6d;d6d<d 6d=d"6d>d%6d?d'6d@d)6dAd,6dBd.6Z0d/Z1d0Z2d1Z3d2Z4d3Z5d4Z6ddd5Z7d6Z8d7Z9d8Z:d9Z;dS(Ci(tabsolute_importNi(t_(tnullidtwdiridtwdirrev(tdagopterrort formattertgraphmodtmatchtmdifftpatchtpathutiltpycompattrevsett revsetlangtscmutiltsmartsett templatekwt templatertutil(tdateutilt stringutilcC@s|jd}|ruyt|}Wn&tk rMtjtdnX|dkr{tjtdq{nd}|S(s0get the log limit according to option -l/--limittlimits limit must be a positive integerislimit must be positiveN(tgettintt ValueErrorRtAbortRtNone(toptsR((s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pytgetlimit+s  tc @s$| r'tj|j|j| } nd} | dkr|j| }| d7} xO|jD]>}|j| s_jtd|j||fq_q_Wn|r|j dddt }d}j sj }qn||j ||||d|d | d | d | |dk s3jr|p<}|ritjtjd |gnxtjtjD]}|j|qWn|rtjtjd |ntjd d|jr2fd}x]tjtj|D]}j|qWn*x'D]\}}j|d|q9W| r ||}||}xtj||D]\}}|}y$|dk r|j|d}nWntk rd}nXtj||}|j |||d|d|d|d | qWndS(sshow diff or diffstat.Rt/s(warning: %s not inside relative root %s tcontextitnoprefixiPRtprefixtrelroott hunksfilterfntwidthc[@s|S(N((tchunkstkwargs((s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pyt_sc3@s/x(D] \}}j|d|VqWdS(Ntlabel(R*(tchunkR*(R'tui(s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pytgenbsR*itchangeststattfpN( R t canonpathtroottgetcwdtuipathtfilest startswithtwarnRtcopytFalsetplaint termwidthtdiffRtcanwritewithoutlabelsR tdiffstatRt iterlinest filechunkitert chunkbuffertwritet diffstatuit difflabeltcanbatchlabeledwritesRt itersubrepostsubstatetKeyErrortmatchmodt subdirmatcher(R,trepotdiffoptstnode1tnode2R R.R/R0R#R2t listsubreposR%R$t uirelroott matchrootR&toutR+R-R*tctx1tctx2tsubpathtsubt tempnode2tsubmatch((R'R,s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pytdiffordiffstat9s^!  !     $!  "     tchangesetdiffercB@s,eZdZdZdZedZRS(sBGenerate diff of changeset with pre-configured filtering functionscC@stj|jS(N(RtmatchallRK(tselftctx((s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pyt_makefilematcherscC@sdS(N(R(R\R]((s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pyt_makehunksfiltersc C@sh|j}|j}|jj}t|||||d|j|d|d|j|dS(NR R/R%(RKtnodetp1RYR^R_(R\R,R]RLR/RKR`tprev((s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pytshowdiffs   (t__name__t __module__t__doc__R^R_R9Rc(((s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pyRZ|s  cC@sdd|jg}|jr2|jdn|jrv|jdx(|jD]}|jd|qXWndj|S(Ns log.changesets changeset.%sschangeset.obsoleteschangeset.unstablesinstability.%st (tphasestrtobsoletetappendt isunstablet instabilitiestjoin(R]tlabelst instability((s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pytchangesetlabelss   tchangesetprintercB@sbeZdZd d edZdZdZd dZdZ dZ dZ dZ RS( s9show changeset information when templating not requested.cC@s||_||_||_|p't|_tj|||_|oT|jd|_ |ol|jd|_ i|_ i|_ d|_d|_tj|_dS(NR/R (R,RKtbufferedRZt_differR t diffalloptst _diffoptsRt _includestatt _includedifftheaderthunkRt lastheadertfooterRt getlogcolumnst_columns(R\R,RKtdifferRLRr((s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pyt__init__s       cC@s|j}||jkr`|j|}||jkrS||_|jj|n|j|=n||jkr|jj|j||j|=ndS(N(trevRxRzR,RBRy(R\R]Rth((s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pytflushs    cC@s#|jr|jj|jndS(N(R{R,RB(R\((s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pytcloses cK@sttj|}|jr]|jjdt|j||||jj|j|j R<('Rt startitemR!tdataRtintrevthexfunctbinnodeR,RRRhRt formatdateRRt formatlistRRRR`RRRt formatdictRRaRRR5RvRRsRcRuRRRwR9(R\R]RRRRR5((s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pyRIsH       5 $" %  "  "N(RdReRfRR9RRR(((s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pyR=s   tchangesettemplatercB@s2eZdZddedZdZdZRS(sformat changeset information. Note: there are a variety of convenience functions to build a changesettemplater for common cases. See functions such as: maketemplater, changesetdisplayer, buildcommittemplate, or other functions that use changesest_templater. c C@stj||||||tj|||_}tj||dtjd|dtj|_ t j |_ |j |_idd6dd6|j |j 6dd6dd6dd 6|_|jrXtdf|jjd f|jjd f|jjd fg}x|D]O\} } x@|jD]5} | | } | r| |j kr| |j| )ss/cannot follow file not in parent revision: "%s"s$cannot follow nonexistent file: "%s"t.N(RRt matchandpatstanypatstalwaysRR5tanyRR R texiststwjoinRRRRtstoreR9( RKtrevstpatsRtwctxR tslowpathRt startctxstrtfilelogR ((Rs:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pyt _makematchers> (      c@sgx>|D]6}|jfdj|Dq Wifd}fd}tj|dt|fS(Nc3@s|]}|jVqdS(N(t introfilectx(RR(R](s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pys Osc@s"tjj|jgS(N(Rt matchfilesRR(R](tfcacheRK(s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pyt filematcherWsc3@sRxKtjdD]4\}}g|D]}|j^q)|<|VqWdS(Nt followfirst(RtfilectxancestorsR (RtcsR(R.tfctxsR0(s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pytrevgenZs"#titerasc(textendtwalkRt generatorsetR9(RKR$R R0R)R/R4((R]R.R3R0RKs:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pyt_fileancestorsKs  *cC@sdS(sDhook for extensions to override the filematcher for non-follow casesN(R(RKR%R((s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pyt_makenofollowfilematcher`ss not merge()t no_mergessmerge()t only_mergess_matchfiles(%ps)t _matchfilessdate(%s)Rs branch(%s)s%lrRs filelog(%s)t_patslogs keyword(%s)tkeywords ancestors(%s)snot %lrtprunesuser(%s)RcC@s<t|}|jdp'|jd}|jdg|jdg|dt%t(s and t)N( tdictRt lookupbranchRjtlistRRt_opt2logrevsetRt formatspecRmR(RKR R%R'RRtbt matchargsRtexprtoptvaltrevoptlistoptv((s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pyt _makerevsetpsB &*    (cC@s|jdp|jd}|jdrFtj||d}n[|rp|jjtkrptj}n1|r|jd}ntj |}|j |S(s>Return the initial set of revisions to be filtered or followedRRRR( RRtrevrangetdirstateRaRRtbasesetR$tspansettreverse(RKRRR$((s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pyt _initialrevss c @s|jdp|jd}|jd}t|}t||}|s^tjd fSt||||\}}d }|r|sjrtj ||d|}nt |||\}}|j n|d krt |||}n|d krfd}nt ||||} |jdr|jdr|jpg|js|jdtqn| rtjd | } | ||}n|d k r|jd|}nt} || _|| fS( svReturn (revs, differ) where revs is a smartset differ is a changesetdiffer with pre-configured file matcher. RRR0c@sS(N((R](R (s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pyR/stgraphRRYiN(RRRZRRWRR+RRt revancestorsR9RYR:RTt isdescendingtistopotsortRRR tsliceRZR^( RKR%RRR0RR$R'R/RNtmatcherR~((R s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pytgetrevss:       c C@sg}x|jdgD]}y|jdd\}}Wn*tk rgtjtd|nXy"tt|jd\}}Wn*tk rtjtd|nXtd|}t j |d||}|j |t j||fqW|S( sbParse --line-range log option and return a list of tuples (filename, (fromline, toline)). t line_ranget,is"malformatted line-range pattern %st:sinvalid line range for %ss3line range pattern '%s' must match exactly one fileN(RtrsplitRRRRtmapRR RtparsefollowlinespatternRRjRtprocesslinerange( RKRtlinerangebyfnametpatt linerangetfromlinettolinetmsgtfname((s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pyt_parselinerangeopts " c@s@d}ixt|D]\}\}}||krZtjtd|n|j|}xltj|||D]U\}}|j} | |krqnj | ij |j gj |qWq Wdfd} fd} t dt } t} | | _| | _| | fS(sReturn (revs, differ). "revs" are revisions obtained by processing "line-range" log options and walking block ancestors of each specified file/line-range. "differ" is a changesetdiffer with pre-configured file matcher and hunks filter. s/cannot follow file not in parent revision: "%s"cS@s|S(N((tfctxthunks((s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pytnofilterhunksfn sc@s8j|jdkr%Sfd}|S(Nc3@sj|j}|dk rxt|D]S\}dkrQ|fVq(ntfd|Dr(|fVq(q(Wnx|D] }|VqWdS(Nc3@s%|]}tjd|VqdS(iN(R t hunkinrange(Rtlr(thr(s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pys s(RR RR (RrRst linerangestlinesRy(tfctxlineranges(Rws:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pytfilterfns     (RRR(R]R{(tlinerangesbyrevRt(Rzs:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pyt hunksfilter s  c@s.tj|jg}tj|S(N(RIRRRR-(R]R5(R|RK(s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pyR/"sRYN(RRqRRRtfilectxRtblockancestorstintrorevt setdefaultR RjRRRZR^R_(RKtuserrevsRR&RpRmRnRrRlRR}R/R$R~((R|RtRKs:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pytgetlinerangerevss, "  "   !    c@s|jdd}|stjStj|}t|trI|j}ntj |}tj ||dtj d|fd}|S(NR,tgraphnodetemplateRRc@s!i|d6|d6}j|S(NR]RK(R(RKR]R(ttempl(s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pyt formatnode:s( RRt getgraphnodeRR RRRRRRR(R,t displayerRRR((Rs:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pyt_graphnodeformatter-s  c C@sk|p i}t||}tj}|d} |jdr\| jtj| dnitjd6tjd6tj d6} xR| j D]D\} } |j dd| | | | | <| | sd| | |j||fq>q>Wn||||| |}t|}|d }|j|d |d |tj||jj| jd }|ds|d=n|j|xKtj|g|D]4\}}}}tj||||||g}q!WqW|jdS(NtstylesR[t|Rt grandparenttmissingt experimentals graphstyle.%st graphshorteniRt graphwidths i(RRt asciistateR:RRGtfromkeystPARENTt GRANDPARENTt MISSINGPARENTRRRt configboolRR5RjRRR t strkwargsRytpopR RRtchaintasciiR(R,RKtdagRtedgefnt getrenamedRRtstateRt edgetypesRRRttypeR]RtcharRtfntrenametedgest firstedgeR&Rytcoldata((s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pyt displaygraph?sL            (cC@s2tj||}t||||tj|dS(N(Rt dagwalkerRt asciiedges(R,RKR$RRtrevdag((s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pytdisplaygraphrevspsc C@sx|D]}||}d}|dk rz|rzg}xB|jD]1}|||} | rB|j|| fqBqBWn|j|d||j|qW|jdS(NR(RR5RjRRR( R,RKR$RRRR]RRR((s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pyt displayrevsts  cC@sVxOdgD]D}||kr ||r tjtd|jddq q WdS(Nt newest_firsts+-G/--graph option is incompatible with --%sRt-(RRRtreplace(R%RRO((s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pytcheckunsupportedgraphflagsscC@s?t|}|j|dk r/|| }ntj||S(N(RRYRRtnodes(RKRRR((s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pyt graphrevss     (s not merge()N(smerge()N(Ns_matchfiles(%ps)(sdate(%s)N(s branch(%s)s%lr(s filelog(%s)s%lr(s keyword(%s)s%lr(s ancestors(%s)snot %lr(suser(%s)s%lr(<t __future__RRR ti18nRR`RRRRRRRRR RIR R R R RRRRRRRtutilsRRRRR9RYtobjectRZRpRqRRRRRRR+R9R:RJRTRZRbRqRRRRRRR(((s:/usr/lib64/python2.7/site-packages/mercurial/logcmdutil.pytsT  j  A 9X    <    5  )  = 1