Plan 9 from Bell Labs’s /usr/web/sources/contrib/bichued/root/sys/lib/python/mercurial/cmdutil.pyc

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


�
�c@s-ddklZlZlZlZddklZddkZddkZddk	Z	ddk
Z
ddkZddkZddk
Z
ddkZddkZddkZddkZddkZddkZdZed�Zed�Zd�Zd�Zd	�Zd
�Zd�Zd�Zddddd
�Z!ddddddd�Z"d�Z#ghedd�Zd�Z$d�Z%d�Z&ghddd�Z'ed�Z(ddddd�Z)de*fd��YZ+de+fd��YZ,eed�Z-d�Z.d�Z/d �Z0d!�Z1d"�Z2dS(#i�(thextnullidtnullrevtshort(t_Nt:c	Cs
h}h}x�i�D]�}|id�id�}d}||jo
|}n8|p0x-|D]!}|i|�o|}PqbqbWn|dj	oT|did�p|id�o|||f||<q�|||f||<qqW|o|o
|}n|S(s�
    Return cmd -> (aliases, command table entry)
    for each matching command.
    Return debug commands (or their aliases) only if no normal command matches.
    t^t|itdebugN(tkeystlstriptsplittNonet
startswith(	tcmdttabletstricttchoicetdebugchoicetetaliasestfoundta((s$/sys/lib/python/mercurial/cmdutil.pytfindpossibles*




$
cCs�t|||�}||jo||Snt|�djo,|i�}|i�ti||��n|o|i�dSnti|��dS(s9Return (aliases, command table entry) for command string.iiN(RtlenR	tsortterrortAmbiguousCommandtvaluestUnknownCommand(RRRRtclist((s$/sys/lib/python/mercurial/cmdutil.pytfindcmd-s

cCs�|ii�dtjotitd���n|i�d \}}}}|p|p|p|otitd���ndS(Nisoutstanding uncommitted mergeisoutstanding uncommitted changes(tdirstatetparentsRtutiltAbortRtstatus(trepotmodifiedtaddedtremovedtdeleted((s$/sys/lib/python/mercurial/cmdutil.pytbail_if_changed>s
cCs�|id�}|id�}|o |otitd���n|o{|oty6|djotii�}nt|�i�}Wq�tj
o+}titd�||i	f��q�Xn|S(s3 get the log message according to -m and -l option tmessagetlogfiles6options --message and --logfile are mutually exclusivet-s"can't read commit message '%s': %s(
tgetR"R#RtsyststdintreadtopentIOErrortstrerror(toptsR+R,tinst((s$/sys/lib/python/mercurial/cmdutil.pyt
logmessageEs
cCs�|id�}|oeyt|�}Wn(tj
otitd���nX|djotitd���q�n
ti}|S(s0get the log limit according to option -l/--limittlimits limit must be a positive integerislimit must be positive(R.tintt
ValueErrorR"R#RR/tmaxint(R5R8((s$/sys/lib/python/mercurial/cmdutil.pytloglimitXs*	cCs�t|d�o|ii�}|i}n
|i�}xNdD]F}|i|�p|id|�}|o|id||�q?q?W|idd�}|o|idd|�n|S(s*build a remote ui from ui or repo and optstbaseuitssht	remotecmdtuitbundletmainreporoot(ssshs	remotecmd(thasattrR=tcopyR@R.tconfigt	setconfig(tsrcR5tdsttotvtr((s$/sys/lib/python/mercurial/cmdutil.pytremoteuies
"cCsZd�}|p|ii�ddfSnd}t|�djoyt|djoN|ditd�\}}|||d�}|||t|�d�}qP|||dd�}n�t|�djokt|djpt|djotitd���n|||dd�}|||dd�}ntitd���||fS(sdreturn pair of nodes, given list of revisions. second item can
    be None, meaning use working dir.cSs9|o$|djo|dj	o
|}n|i|�S(Ni(Rtlookup(R%tvaltdefval((s$/sys/lib/python/mercurial/cmdutil.pytrevfix}s"
iiistoo many revisions specifiedN(	R R!RRtrevrangesepRR"R#R(R%trevsRPtendtstart((s$/sys/lib/python/mercurial/cmdutil.pytrevpairys"	 "c
Cs.d�}t�g}}x|D]}t|jo�|itd�\}}|||d�}|||t|�d�}||jodpd}x�t||||�D]4}	|	|joq�n|i|	�|i|	�q�Wq |||d�}	|	|joq n|i|	�|i|	�q W|S(sAYield revision as strings from a list of revision specifications.cSsC|o"|djo|dj	o|Sn|ii|i|��S(Ni(Rt	changelogtrevRM(R%RNRO((s$/sys/lib/python/mercurial/cmdutil.pyRP�s"iii�N(tsetRQRRtxrangetaddtappendR(
R%RRRPtseentltspecRTRStstepRW((s$/sys/lib/python/mercurial/cmdutil.pytrevrange�s*	




cs2h�fd�d<��fd�d<�fd�d<}hd�d<�fd	�d
<}y��o|i|�n�o���fd�|d<n�dj	o�fd
�|d<n�dj	o�fd�|d<n�dj	o'�dj	o��fd�|d<n�dj	o=�fd�|d<�fd�|d<�fd�|d<ng}	t|�}
d}xe||
joW||}|djo%|d7}||}||�}n|	i|�|d7}q�Wdi|	�SWn5tj
o)}
titd�|
i	d��nXdS(Ncs
t��S((R((tnode(s$/sys/lib/python/mercurial/cmdutil.pyt<lambda>�stHcst�ii���S((tstrRVRW((R%Ra(s$/sys/lib/python/mercurial/cmdutil.pyRb�stRcs
t��S((R((Ra(s$/sys/lib/python/mercurial/cmdutil.pyRb�sthcSsdS(t%((((s$/sys/lib/python/mercurial/cmdutil.pyRb�sRgcstii�i�S((tostpathtbasenametroot((R%(s$/sys/lib/python/mercurial/cmdutil.pyRb�stbcs&t�ii���i�pd�S(i(RdRVRWtzfill((R%Ratrevwidth(s$/sys/lib/python/mercurial/cmdutil.pyRb�sRKcs
t��S((Rd((ttotal(s$/sys/lib/python/mercurial/cmdutil.pyRb�stNcs
t��S((Rd((tseqno(s$/sys/lib/python/mercurial/cmdutil.pyRb�stncst��itt����S((RdRmR((RqRo(s$/sys/lib/python/mercurial/cmdutil.pyRb�scstii��S((RhRiRj((tpathname(s$/sys/lib/python/mercurial/cmdutil.pyRb�stscstii��pdS(t.(RhRitdirname((Rs(s$/sys/lib/python/mercurial/cmdutil.pyRb�stdcs�S((((Rs(s$/sys/lib/python/mercurial/cmdutil.pyRb�stpiits-invalid format spec '%%%s' in output filename(
tupdateRRR[tjointKeyErrorR"R#Rtargs(R%tpatRaRoRqRnRst
node_expandertexpandertnewnametpatlentitcR6((RaRqR%RsRnRos$/sys/lib/python/mercurial/cmdutil.pyt
make_filename�sJ







twbc		Cs�d|jp
d|j}|p
|djo|o
tiptiSnt|d�o|o|Snt|d�od|jo|Sntt|||||||�|�S(NtwRR-twriteR1RK(R/tstdoutR0RCR2R�(	R%R~RaRoRqRntmodeRstwritable((s$/sys/lib/python/mercurial/cmdutil.pyt	make_file�scCs�tipt|�Sng}x�|D]�}ti|d�\}}|djoTyti|�}Wntij
o|g}nX|o|i	|�q%q�n|i
|�q%W|S(N(R"texpandglobstlistt_matcht	_patsplitRtglobtreRtextendR[(tpatstretRxtkindtnametglobbed((s$/sys/lib/python/mercurial/cmdutil.pyt
expandpats�s 


trelpathcs�|o$|djot|pg�}nti�i�i�||id�|id�|����fd�}|�_�S(NR�tincludetexcludecs'�iid�i|�|f�dS(Ns%s: %s
(R@twarntrel(tftmsg(R%tm(s$/sys/lib/python/mercurial/cmdutil.pytbadfns(R�R�tmatchRktgetcwdR.tbad(R%R�R5R�tdefaultR�((R�R%s$/sys/lib/python/mercurial/cmdutil.pyR��s!	cCsti|i|i��S(N(R�talwaysRkR�(R%((s$/sys/lib/python/mercurial/cmdutil.pytmatchall	scCsti|i|i�|�S(N(R�texactRkR�(R%tfiles((s$/sys/lib/python/mercurial/cmdutil.pyt
matchfilessccsG|d}x6|D].}|i|�}d|}}x�D]�	|	|joq:n|i|	�i�}
d}ti|�}ti||
�}
xB|
D]:\}}}}x%|||!D]}|t|�7}q�Wq�Wt|�t|
�}|o0|d|}||jo|	|}}q"q:q:W|o|||fVqqWdS(s:find renamed files -- yields (before, after, score) tuplesRuig@N(	twreadRtfilectxtdatatmdifft
splitnewlinestbdifftblocksR(R%R'R(t	thresholdtctxRtaatbestnamet	bestscoreRKtrrtequaltalinestmatchestx1tx2ty1ty2tlinetlengthstmyscore((s$/sys/lib/python/mercurial/cmdutil.pytfindrenamess2



c	CsE|djo|id�}n|djo t|id�pd�}nggggf\}}}}ti|i�}	t|||�}
x�|i|
�D]�}|i|�}t	}
y|	|�Wn
t
}
nX|
i|�}|
i|�}|
ob||i
joR|i|�|iip|o,|iitd�|o|p|�qOq�|i
|djo�|
p8ti|�p'tii|�oftii|�oR|i|�|iip|o,|iitd�|o|p|�qOq�|i
|djo|i|�q�|i
|djo|i|�q�q�W|p|i|�|i|�n|djo�x�t||||||�D]�\}}}|iip"|
i|�p|
i|�o=|iitd�|
i|�|
i|�|d	f�n|p|i||�q�q�WndS(
Ntdry_runt
similarityis
adding %s
RKsremoving %s
Rs7recording removal of %s as rename to %s (%d%% similar)
id(RR.tfloatR"tpath_auditorRkR�twalktwjointTruetFalseR�R�R R[R@tverboseR$RtlexistsRhRitisdirtislinktremoveRZR�RD(R%R�R5R�R�R'tunknownR)R(t
audit_pathR�tabsttargettgoodR�R�toldtnewtscore((s$/sys/lib/python/mercurial/cmdutil.pyt	addremove+sT

 

0-'
0

/+c
s��i��h��id���id�����fd�}��������fd�}���fd�}���fd�}t|�}|ptitd���nt|�djotitd	���n|i�}	ti	i
|	�oti	i|	���pqt|�djpti
|d
�otitd���nti|	�otitd�|	��q�n|}
�o
|}
ng}xG|D]?}||�}
|
pq�n|i|
||	|
�|
f�q�W|ptitd
���nd
}xX|D]P\}}
xA|
D]9\}}}|||||�|�o|d7}q<q<Wq)W|o�itd��n|S(NtafterR�cs�g}t�|g�dt�}x��i|�D]�}�i|}|i|�}|i|�}|djoe|o(|djo�itd�|�n|o(|djo�itd�|�q1q1n|i|||f�q1W|S(NR�s?rt?s&%s: not copying - file is not managed
RKs2%s: not copying - file has been marked for remove
(	R�R�R�R R�R�R�RR[(R~tsrcsR�R�tstateR�R�(R%R@R5(s$/sys/lib/python/mercurial/cmdutil.pytwalkpatbs 

cs�ti�i�|�}�i|��}�i|�}�i|�}�i|}�i|�}	|	dj	o@�it	d�|�i|���i|	��f�dSnt
ii|�}
�o|
p�o;|djo.�dp�it	d�|�dSqn�o|
pdSqn��p�yi|
ot
i
|�nt
ii|�pd}t
ii|�pt
i|�nti||�Wqtj
o[}|itijo�it	d�|�q�it	d�||if�tSqXn�ip|oI�o!�it	d�||f�qg�it	d	�||f�n|�|<�ii|�p|}
||
jo-|djo�o�ii|�qkn��i|
d
jox|
|jok�ip-�it	d��i|
��|f�n�i|djo�o�i|g�qkn�p�i|
|�n�o �o�i|g��ndS(
Ns*%s: not overwriting - %s collides with %s
tmntforces"%s: not overwriting - file exists
Rus%s: deleted in working copy
s%s: cannot copy - %s
smoving %s to %s
scopying %s to %s
RsF%s has not been committed yet, so no copy data will be stored for %s.
s?r(R"t	canonpathRktpathtoR�R R.RR�RRhRitexiststunlinkRvR�tmakedirstcopyfileR3terrnotENOENTR4R�R�R$tcopiedtnormallookuptquietRZRDR�(tabssrctrelsrctotargetR�t	abstargett	reltargetR�RGR�tprevsrcR�t	targetdirR6torigsrc(trenamettargetsR@tcwdtdryrunR�R%R5(s$/sys/lib/python/mercurial/cmdutil.pyR�xsj

#
!!

!
cs�tii|�o�ti�i�|�}ti|�}�o ttii|�d��n
t|���o�tti	�7�n��fd�}n*�o�fd�}n�fd�}|S(Nics tii�ti|���S((RhRiR{R"t	localpath(Rx(tdesttstriplen(s$/sys/lib/python/mercurial/cmdutil.pyRb�scs(tii�tiiti|���S((RhRiR{RjR"R�(Rx(R�(s$/sys/lib/python/mercurial/cmdutil.pyRb�scs�S(((Rx(R�(s$/sys/lib/python/mercurial/cmdutil.pyRb�s(
RhRiR�R"R�RkR�RRtsep(R~R�R�tabspfxtres(R%t
destdirexistsR�(R�R�s$/sys/lib/python/mercurial/cmdutil.pyttargetpathfn�s cs�ti|�o�fd�}n]ti�i�|�}t|�t�dd�jo��fd�}ti|�}t|���o�tti�7�nti	i
ti	i�ti	i|�d��og|��}tti	i|�d�}|o|tti�7}n||�|jo
|�q@n��fd�}n*�o�fd�}n�fd�}|S(Ncs(tii�tiiti|���S((RhRiR{RjR"R�(Rx(R�(s$/sys/lib/python/mercurial/cmdutil.pyRb�sicsbd}xU�D]M}tii�ti|d�|�}tii|�o|d7}q
q
W|S(Nii(RhRiR{R"R�R�(R�R�Rttt(R�R�(s$/sys/lib/python/mercurial/cmdutil.pytevalpath�s&ics tii�ti|���S((RhRiR{R"R�(Rx(R�R�(s$/sys/lib/python/mercurial/cmdutil.pyRb�scs(tii�tiiti|���S((RhRiR{RjR"R�(Rx(R�(s$/sys/lib/python/mercurial/cmdutil.pyRb�scs�S(((Rx(R�(s$/sys/lib/python/mercurial/cmdutil.pyRb�s(
R�tpatkindR"R�RkRR�RhR�RiR�R{R(R~R�R�R�R�RR�t	striplen1(R%R�R�(R�R�R�s$/sys/lib/python/mercurial/cmdutil.pyttargetpathafterfn�s*!2s"no source or destination specifiedisno destination specifiedis@with multiple sources, destination must be an existing directorys!destination %s is not a directorysno files to copys(consider using --after)
(R�R.R�R"R#RRtpopRhRiR�R�R�RtendswithsepR[R�(R@R%R�R5R�R�R�R�RR�ttfntcopylistR~R�terrorst
targetpathR�R�R�((	R�R�R�R�R�R�R%R@R5s$/sys/lib/python/mercurial/cmdutil.pyRDXsT$I)&'!
#cCs|do|do	ti�\}}ti}|id||f�xdtdt|��D]M}||id�o||=Pq`||id�o|||d5Pq`q`Wtiti	t
tdd	�B|d	|�}	ti|�ti|d�|o||	�Sq ti
d	�n|o|�n|d
o>t|d
d�}
|
itti��d�|
i�n|doeg}|did
�D]}|t|�q�~\}}ti|�yti�Wntj
onXti|d�ti|�tii�tii�tititi�}
|
}|o'ti|titiBtiB�}nti|
d	�ti|d�ti|d�|
djoti|
�n|o|djoti|�q�n|o|�SndS(sRun a command as a service.tdaemontdaemon_pipefdss--daemon-pipefds=%d,%dis--cwd=s--cwditP_DETACHitpid_fileR�s
t,tyN(iii(iii(RhtpipeR/targvR[RYRR
tspawnvptP_NOWAITtgetattrtcloseR1t_exitR2R�RdtgetpidRR9tsetsidtAttributeErrorR�tflushtstderrR"tnulldevtO_RDWRtO_CREATtO_APPENDtdup2(R5tparentfntinitfntrunfnR,trfdtwfdR}R�tpidtfpt_[1]txtnullfdt	logfilefd((s$/sys/lib/python/mercurial/cmdutil.pytservice%sb
	
:



'
tchangeset_printercBsGeZdZd�Zd�Zdd�Zd�Zd�Zd�ZRS(s9show changeset information when templating not requested.cCsL||_||_||_||_||_h|_h|_d|_dS(N(	R@R%tbufferedtpatchtdiffoptstheaderthunkRt
lastheader(tselfR@R%R0R1R/((s$/sys/lib/python/mercurial/cmdutil.pyt__init__ds							cCs�||ijoH|i|}||ijo||_|ii|�n|i|=n||ijo)|ii|i|�|i|=dSndS(Nii(R2R4R@R�R3(R5RWRf((s$/sys/lib/python/mercurial/cmdutil.pyRns
	
cKsa|io@|ii�|i|||�|ii�|i|i�<n|i|||�dS(N(R/R@t
pushbuffert_showt	popbufferR3RW(R5R�tcopiestprops((s$/sys/lib/python/mercurial/cmdutil.pytshow{s


 cCs�|i�}|i�}|iio(|iid|t|�f�dSn|ii}|i|�}t	i
|d�}|d}	|	id�}
|iiot
pt}g}|i||�D]"}
||
||i|
��fq�~}|iitd�|||�f�|
djo-ti|
�}
|iitd�|
�nx4|ii|�D] }|iitd	�|�qcWx(|D] }|iitd
�|�q�W|iioA|iitd�|iii|d�t
|d�f�n|iitd
�|d�|iitd�|�|iio�|ii|i|�d|�d }x�ttd�td�td�g|�D]:\}}|o'|iid|di|�f�q�q�WnD|do8|iio+|iitd�di|d��n|oY|iioLg}|D]}|d|q:~}|iitd�di|��n|	o]|iioPxMt|	i��D]5\}}|iitd�||id�f�q�Wn|di�}|oo|iio:|iitd��|ii|�|iid�qe|iitd�|i�d�n|iid�|i|�dS( s(show a single changeset or file revisions%d:%s
Niitbranchschangeset:   %d:%s
R�sbranch:      %s
stag:         %s
sparent:      %d:%s
smanifest:    %d:%s
isuser:        %s
isdate:        %s
isfiles:sfiles+:sfiles-:s	%-12s %s
t sfiles:       %s
s%s (%s)scopies:      %s
sextra:       %s=%s
t
string_escapeis
description:
s

ssummary:     %s
s
(RaRWR@R�R�RR%RVR1R"tdatestrR.t	debugflagRt_meaningful_parentrevsRtencodingttolocaltnodetagstmanifestR$R!tzipR{R�tsortedtitemstencodetstript
splitlinest	showpatch(R5R�R:R;t
changenodeRWtlogtchangestdatetextraR=thexfuncR)RxR!ttagtparentR�tkeytvaluet_[2]R�tdescription((s$/sys/lib/python/mercurial/cmdutil.pyR8�sn
 
;&

/
&$/+%'
c
Cs�|io�|iii|�d}ti|i||d|idti|i|i��}x|D]}|ii|�qcW|iid�ndS(NiR�R5s
(R0R%RVR!tdiffR1R@R�(R5Ratprevtchunkstchunk((s$/sys/lib/python/mercurial/cmdutil.pyRM�s
cCsb|i|�}|iioA|dtjo0|d|djo
g}q^|dg}n|S(sReturn list of meaningful (or all if debug) parentrevs for rev.

        For merges (two non-nullrev revisions) both parents are meaningful.
        Otherwise the first parent revision is considered meaningful if it
        is not the preceding revision.
        ii(t
parentrevsR@RAR(R5RORWR!((s$/sys/lib/python/mercurial/cmdutil.pyRB�s
((	t__name__t
__module__t__doc__R6RR<R8RMRB(((s$/sys/lib/python/mercurial/cmdutil.pyR.as	
	
	C		tchangeset_templatercBs2eZdZd�Zd�Zd�Zd�ZRS(sformat changeset information.cCs|ti||||||�|io
d�pd�}ti|h|d<dhdd<dd<d	d
<�|_dS(NcSs|S(((R*((s$/sys/lib/python/mercurial/cmdutil.pyRb�scSs|d S(i((R*((s$/sys/lib/python/mercurial/cmdutil.pyRb�st
formatnodetcaches{rev}:{node|formatnode} RUs{rev}:{node|formatnode}RFs{name} ({source})tfilecopy(R.R6RAt	templaterR(R5R@R%R0R1tmapfileR/Rc((s$/sys/lib/python/mercurial/cmdutil.pyR6�s		cCs||iid<dS(sset template string to uset	changesetN(RRd(R5R((s$/sys/lib/python/mercurial/cmdutil.pytuse_template�scCsz|i�}t|�djo|Sn|iio|d|idgSn|di�|i�djogSn|S(sHReturn list of meaningful (or all if debug) parentrevs for rev.
        iitnull(R!RR@RAR%RW(R5R�R!((s$/sys/lib/python/mercurial/cmdutil.pyRB�s
!cs�d(�fd����fd�}���fd�}��fd�}��fd�}��fd�}g����fd����fd�}	��fd	�}
��fd
�}��fd�}��fd�}
��fd
�}h�i�d<|d<�i�d<�i�i�d<|d<|d<|
d<|	d<|d<|
d<�i�d<|d<�i�d<|d<|d<|d<}|i�}|i|�t	d(f�i
idf�i
idf�i
i
d fg}hd!d"<d#d#<}xh|D]`\}}xQ|D]I}|od$||fp|}|o|�ijo|||<q7q7Wq$Wy�|d"oTti�i|d"|��}�io|�i�i�<q��i
i|�n|d#}�i
iti�i||����i�i��Wn�tj
o;}td%�}ti|�ii|id&f��nBtj
o5}titd'��ii|id&f��nXd(S()s(show a single changeset or file revisionc	;s�|o
|}n�d}|p7d|}|�ijo�i||�VndSn��ijoMt|dt�odi|�Vn x|D]}t||�Vq�WdSnd|}|�ijo�i||�Vn|i������fd�}d�}	|	�ijo|i�}
nd}
x|D]}||�Vq@W|
dj	o||
d	|	�Vnd
|}|�ijo�i||�VndS(sTexpand set of values.
            name is name of key in template map.
            values is list of strings or dicts.
            plural is plural of name, if not simply name + 's'.

            expansion works like this, given name 'foo'.

            if values is empty, expand 'no_foos'.

            if 'foo' not in template map, return values as a string,
            joined by space.

            expand 'start_foos'.

            for each value, expand 'foo'. if 'last_foo' in template
            map, expand it instead of 'foo' for last key.

            expand 'end_foos'.
            Rttno_NiR>tstart_cs�y�i|�Wn^ttfj
oLy%x|D]\}}|�|<q2WWqrtj
o|��<qrXnX�i|��S(N(RzRR:R(RJRTRRl(R�R5tvargs(s$/sys/lib/python/mercurial/cmdutil.pytone$stlast_RTtend_(Rt
isinstanceRdR{tdictRDRR(R�RtpluralR}tnamestnonameRJt	startnameRntlastnametlasttendname(R5(RmR�s$/sys/lib/python/mercurial/cmdutil.pytshowlist�s>






csI�i�}|djo,ti|�}�d|gdd|�SndS(NR�R=Rstbranches(R=RCRD(R}R=(RzR�(s$/sys/lib/python/mercurial/cmdutil.pytshowbranches;s
csXg}�i��D]+}|d|i�fd|i�fgq~}�d||�S(NRWRaRU(RBRWR(R}R)RxR!(R5R�Rz(s$/sys/lib/python/mercurial/cmdutil.pytshowparentsAsAcs�d�i�|�S(NRT(ttags(R}(R�Rz(s$/sys/lib/python/mercurial/cmdutil.pytshowtagsFsc;sfx_t�i�i��D]E\}}|i�}|itd|d|���id|�VqWdS(NRVRWRR(RHRRRIRDRzRrR(R}RVRW(R5R�(s$/sys/lib/python/mercurial/cmdutil.pyt
showextrasIs
csQg}�D]'}|h|dd<|dd<q~}�d|dd|�S(NiR�itsourcet	file_copyRstfile_copies((R}R)R*R�(R:Rz(s$/sys/lib/python/mercurial/cmdutil.pyt
showcopiesOs;cs?�p4�ii�i�di��i��d �(n�S(Nii(R%R$R!Ra((R�R5R�(s$/sys/lib/python/mercurial/cmdutil.pytgetfilesTscs�d�i�|�S(Ntfile(R�(R}(R�Rz(s$/sys/lib/python/mercurial/cmdutil.pyt	showfilesYscs�d��d|�S(Ntfile_modi((R}(R�Rz(s$/sys/lib/python/mercurial/cmdutil.pytshowmods[scs�d��d|�S(Ntfile_addi((R}(R�Rz(s$/sys/lib/python/mercurial/cmdutil.pytshowadds]scs�d��d|�S(Ntfile_deli((R}(R�Rz(s$/sys/lib/python/mercurial/cmdutil.pytshowdels_scsa|i�}|itd�iii�i�d�dt�i�d����id|�S(NRWiRaRF(	RDRzRrR%RFRWRhRR(R}(R�R5(s$/sys/lib/python/mercurial/cmdutil.pytshowmanifestas+cs�ti�i�i�di��i��}d\}}}xFtiti|��D],}|d7}||d7}||d7}qVWd|||fS(Niiis%s: +%s/-%s(iii(R0RZR%R!RatdiffstatdataR"t	iterlines(R}RZR�taddstremovesR�(R5R�(s$/sys/lib/python/mercurial/cmdutil.pytshowdiffstatgs.
tauthorR{RQtdesct	file_addst	file_delst	file_modsR�R�RFRaR!RWR~textrastdiffstatR�R�RRyR2Rhs%s_%ss%s: no key named '%s'is%s: %sN(RtuserRQRYRKRRWRDRzR�R@R�R�RARRft	stringifyR/R2R�RMRaR|RR"R#RgR}tSyntaxError(R5R�R:R;R|R}RR�R�R�R�R�R�R�R�tdefpropst	tmplmodesttypesR�tpostfixttypetcurRfRVR6R�((R�R5R:R�RzR�s$/sys/lib/python/mercurial/cmdutil.pyR8�sv=											
	

%*(R_R`RaR6RiRBR8(((s$/sys/lib/python/mercurial/cmdutil.pyRb�s
				c
Cs�t}|id�o|p
t|�}n|id�}d	}|oti|dt�}n|id�}|p|pB|idd�}|oti|�}q�|idd�}n|p|pt|||||�Snd	}|oa|oY|}ti	i
|�dp8tid|�p
ti|�}	|	o
|	}qSqWnyt||||||�}
Wn+t
j
o}ti|id��nX|o|
i|�n|
S(
sYshow one changeset using template or regular display.

    Display format will be the first non-empty hit of:
    1. option 'template'
    2. option 'style'
    3. [ui] setting 'logtemplate'
    4. [ui] setting 'style'
    If all of these values are either the unset or the empty string,
    regular display via changeset_printer() is done.
    R0ttemplatetquotedtstyleR@tlogtemplateismap-cmdline.N(R�R.R�RRftparsestringRER.RhRiRttemplatepathRbR�R"R#R}Ri(R@R%R5R/tmatchfnR0ttmplR�RgtmapnameRR6((s$/sys/lib/python/mercurial/cmdutil.pytshow_changeset�s8c
sti|�}ti�fd��}t|�g|hd	d<�\}}h}x�|D]�\}}	}
|djo3||	�d}||d�o|||	<qq[|djoI|	|jo8|itd�|	ti||	�f�t|	�Sqq[q[Wti	td���d	S(
s;Find the tipmost changeset that matches the given date speccs�|i�S((Rh(RK(R%(s$/sys/lib/python/mercurial/cmdutil.pyRb�sRWRZiititersFound revision %s from %s
s revision matching date not foundN(
R"t	matchdatet	cachefunctwalkchangerevsRR$RR@RdR#(R@R%RQtdfR.t
changeiterR�tresultststRWtfnsRw((R%s$/sys/lib/python/mercurial/cmdutil.pytfinddate�s '


cs�ddd��t�|����id�p
�id��t��pg�fSn�od�di�}nd}t��d	p|g��t���i�p�i�o
�id
�}h�|o�i�ot���ng�|pp���fd�}��fd�}t��t	��}	}
x-|�D]\}}�i
|�}
t|
�pf|djo/�oti
td
�|��nt}Pq�|itd�|t|�f�qRnx�||
|�D]|\}}||
joc||	joPn�i|g��|i|��i|��o|o�i|�qlq��RWn|o��oti
td���n���fd�}xL|�D]=\}}t�|�}|o|�|<�i|�q�q�Wndtf�fd��Y�x��idd�D]�}�ii�i|��}��}t�d�d�}x?t||dd�D]'}|i|�o�i|�q�q�Wq2W���������f	d�}|��fS(sIterate 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, matchfn) tuple. The iterator
    yields 3-tuples. They will be of one of the following forms:

    "window", incrementing, lastrev: stepping through a window,
    positive if walking forwards through revs, last rev in the
    sequence iterated over - use to reset state for the current window

    "add", rev, fns: out-of-order traversal of the given filenames
    fns, which changed during revision rev - use to gather data for
    possible display

    "iter", rev, None: in-order traversal of the revs earlier iterated
    over with "add" - use to display dataiicss�||joVx�||joA|t|||�fV||7}||jo|d9}qqWnWxS||joE|t|||d�fV||8}||jo|d9}qfqfWdS(Nii(tmin(RTRSt
windowsizet	sizelimit((s$/sys/lib/python/mercurial/cmdutil.pytincreasing_windowss




tfollowtfollow_firsts%s:0Rus-1:0RWR(c
3s�t��}|djot|�d}n|i|�}x��|t�D]�\}}g}xZt|||d�D]A}|i|�}|i|i|��o
|i|�f�qvWx.t	|�D] }	|	d|jo	|	Vq�q�WqLWdS(Nii(
RRRWRRYRaR[tlinkrevtrenamedtreversed(
tfilelogRatcl_countRxR�twindowRRtjRrRW(R%R�R�(s$/sys/lib/python/mercurial/cmdutil.pyt
filerevgen*s 

c3s<x�i�D]}|dfVq
Wx�D]}|Vq)WdS(N(R�R(tfilenamet
filename_node(R�R:(s$/sys/lib/python/mercurial/cmdutil.pyt	iterfiles;s
s$cannot follow nonexistent file: "%s"s,%s:%s copy source revision cannot be found!
s5can only follow copies/renames for explicit filenamesc3sex^�t��dt�D]C\}}x4t|||d�D]}|�|�dfVq>WqWdS(Nii(RRRY(R�R�R�(R%R�tchange(s$/sys/lib/python/mercurial/cmdutil.pytchangerevgen^s
tfollowfiltercs#eZed�Z�fd�ZRS(cSst|_g|_||_dS(N(Rtstartrevtrootst	onlyfirst(R5R�((s$/sys/lib/python/mercurial/cmdutil.pyR6js		cs��fd�}�itjo|�_tSn|�ijod�ip�ii�i�nx�||�D].}|�ijo�ii|�tSqqqqWnf�ip�ii|�i��n|�ijo.�ii|��ii||��tSntS(NcsE�io�ii|�dd!Sntd��ii|��SdS(NiicSs
|tjS((R(R*((s$/sys/lib/python/mercurial/cmdutil.pyRbts(R�RVR^tfilter(RW(R%R5(s$/sys/lib/python/mercurial/cmdutil.pytrealparentsps
	(R�RR�R�R[R�R�R�(R5RWR�RU(R%(R5s$/sys/lib/python/mercurial/cmdutil.pyR�os&	


(R_R`R�R6R�((R%(s$/sys/lib/python/mercurial/cmdutil.pyR�istpruneii�ic3sU�o<�i�o.�d�id�����fd�}n�fd�}x�dt���D]�}}d�d�dj�dfVg}�|||!D]�|��o|�q�q�~}xZt|�D]L��i��}|p"���fd�}|�}nd	�|fVq�Wx|D]�d
�dfVq5WqhWdS(NR�R�cs�i|�o
|�jS(N(R�(RW(twantedtff(s$/sys/lib/python/mercurial/cmdutil.pytwant�scs
|�jS(N((RW(R�(s$/sys/lib/python/mercurial/cmdutil.pyR��siR�i�c3s5x.���dD]}�|�o	|VqqWdS(Ni((R�(R�RWR�(s$/sys/lib/python/mercurial/cmdutil.pyt
fns_generator�s
RZR�(R�R.RRHR(R�R�R�R)tnrevsR�R�(	R�R�tfncacheR�R�R�RRR�R5(R�RWs$/sys/lib/python/mercurial/cmdutil.pytiterate�s$ =

N((R�R.RRWR`RXtanypatsR�R�tmaxR�RR"R#RR�R�Rt
setdefaultR[RZR�tobjectRVRMRYtdiscard(R@R%R�R�R5tdefrangetslowpathR�R�tminrevtmaxrevtfile_RaR�RWR�R�tchangefilesR�R�tstopR*R�((R�R:R�RRR�R%R�R�R�R�R5s$/sys/lib/python/mercurial/cmdutil.pyR��s~
	)





!

'	'cCs|id�}|oti|�|d<nt|�}|id�ot|||�n||||t|||�|�S(s5commit the specified files or all outstanding changesRQR�(R.R"t	parsedateR7R�R�(R@R%t
commitfuncR�R5RQR+((s$/sys/lib/python/mercurial/cmdutil.pytcommit�scCs+|i�o|i�Snt|||�S(N(RYtcommitforceeditor(R%R�tsubs((s$/sys/lib/python/mercurial/cmdutil.pytcommiteditor�s
cCs�g}|i�|i�|i�}}}|i�o|i|i��n|id�|id�|itd��|itd��|id�|itd�|i��|i�o|itd��n|i�o*|itd�t	i
|i���n|ig}|D]}|td�|q&~�|ig}	|D]}
|	td	�|
qX~	�|ig}|D]}
|td
�|
q�~�|ig}|D]}
|td�|
q�~�|o'|o|o|itd��n|id�ti
�}
ti|i�|iid
i|�|i��}tidd|�}ti|
�|i�ptitd���n|S(NRysBHG: Enter commit message.  Lines beginning with 'HG:' are removed.s(HG: Leave message empty to abort commit.sHG: --sHG: user: %ssHG: branch mergesHG: branch '%s'sHG: subrepo %ssHG: added %ssHG: changed %ssHG: removed %ssHG: no files changeds
s(?m)^HG:.*
sempty commit message(R&R'R(RYR[RR�tp2R=RCRDR�RhR�tchdirRkR@teditR{R�tsubRKR"R#(R%R�R�tedittextR&R'R(R)RtRXR�t_[3]t_[4]tolddirttext((s$/sys/lib/python/mercurial/cmdutil.pyR��s<&





2222
$

(3RaRRRRti18nRRhR/R�R�R�R�R�R"RfR0RRCR�R�RQR�RR�RR*R7R<RLRUR`RR�R�R�R�R�R�R�RDR-R�R.RbR�R�R�R�R�R�(((s$/sys/lib/python/mercurial/cmdutil.pys<module>s@"<T			
			,	
			-�<~�1		�	

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@9p.io.