HEX
Server: Apache
System: Linux p102.lithium.hosting 4.18.0-553.141.1.el8_10.x86_64 #1 SMP Fri Jul 10 17:48:02 UTC 2026 x86_64
User: bvzmoamr (9955)
PHP: 8.1.34
Disabled: syslog
Upload Files
File: //proc/thread-self/root/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyc
�
1�3\c@@s�dZddlmZddlZddlZddlmZddlmZm	Z	m
Z
mZmZm
ZmZmZmZmZmZmZddlmZmZmZd�Zdd	�Zd
�Zd�Zd�Zd
�Zd�Z d�Z!d�Z"d�Z#d�Z$d�Z%d�Z&d�Z'd�Z(e)e)d�Z*d�Z+d�Z,d�Z-dd�Z.d�Z/d�Z0dd�Z1dd�Z2e)d �Z3d!�Z4dd"�Z5d#�Z6d$�Z7ej8�Z8e8d%�d&��Z9dd'�Z:d(�Z;d)�Z<d*�Z=d+�Z>e?dd,ddd-�Z@de?d.�ZAd/�ZBd0�ZCd1�ZDd2�ZEd3�ZFd4�ZGd5�ZHdd6�ZId7�ZJd8�ZKd9�ZLd:�ZMd;�ZNd<�ZOd=�ZPd>ZQdd?�ZRdS(@sHOverridden Mercurial commands and functions for the largefiles extensioni(tabsolute_importN(t_(tarchivaltcmdutilterrorthgt
logcmdutiltmatchtpathutiltpycompatt	registrartscmutiltsmartsettutili(t
lfcommandstlfutiltstorefactoryc@s�tj|�}�fd��g|jD]}�|�r(|^q(|_t|j�|_d�|_|j���fd�|_|S(sMcreate a matcher that matches only the largefiles in the original
    matcherc@stj|��kS(N(Rtstandin(tf(tmanifest(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyt<lambda>,tcS@stS(N(tFalse(((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR/Rc@s�|�o�|�S(N((R(tlfiletorigmatchfn(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR1R(tcopyt_filestsett_filesettalwaystmatchfn(RRtmtlf((RRRs@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytcomposelargefilematcher(s+	c@s�t��|dk	r%�j|�ntj|�}��fd��g|jD]}�|�rP|^qP|_t|j�|_d�|_|j���fd�|_|S(Nc@s/tj|�p-tj|��kp-|�kS(N(Rt	isstandinR(R(texcludedR(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR:scS@stS(N(R(((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR>Rc@s�|�o�|�S(N((R(tnotlfileR(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR@R(RtNonetupdateRRRRR(RRtexcludeRR ((R#RR$Rs@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytcomposenormalfilematcher4s	+	c@s1ddtdd��fd�}t|��dS(s9installmatchfn with a matchfn that ignores all largefilestrelpathc@s@|dkri}n�|||||d|�}t|��S(Ntbadfn(R%R((tctxtpatstoptstglobbedtdefaultR*R(Rtoldmatch(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyt
overridematchEs	N((R%Rtinstallmatchfn(RR1((RR0s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytinstallnormalfilesmatchfnCs	cC@s&tj}t|d|�|t_|S(s�monkey patch the scmutil module with a custom match function.
    Warning: it is monkey patching the _module_ on runtime! Not thread safe!R0(RRtsetattr(RR0((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR2Ms		cC@sttjd�t_dS(s�restores scmutil.match to what it was before installmatchfn
    was called.  no-op if scmutil.match is its original function.

    Note that n calls to installmatchfn will require n calls to
    restore the original matchfn.R0N(tgetattrRR(((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytrestorematchfnUscC@s&tj}t|d|�|t_|S(Ntoldmatchandpats(RtmatchandpatsR4(RR7((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytinstallmatchandpatsfn]s		cC@sttjdtj�t_dS(s�restores scmutil.matchandpats to what it was before
    installmatchandpatsfn was called. No-op if scmutil.matchandpats
    is its original function.

    Note that n calls to installmatchandpatsfn will require n calls
    to restore the original matchfn.R7N(R5RR8(((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytrestorematchandpatsfncscK@s`|jd�}tj|tj|�|jd��}d}tj|�r�|jtjd�}|r�tj|j	dt
|��}q�ng}	|}
|d}xt|jtj|
d���D]T}|
j
|�}
tj|�|k}||k}|p�|}|r|
j|�}n|
j|�}|
rZ|rZ|r�|jtd�|�q�q�n|
sg|r�tj|�r�|jj|�s�q�n|o�|jj|�j|ddk}|s�|s�|r||�r|	j|�|js�|
r|jtd�|�qqq�q�Wg}|j��+|jd	�s+g}tj||�}x�|	D]}}tj|�}tj||d
ddtj|j|���|j|�||dkr�|j |�qX|j!|�qXW|j"�|g|dj!|�D]'}||
j#�kr�tj$|�^q�7}ng|	D]}||kr2|^q2}WdQX||fS(
NtlargetlfsizetpatternsRcS@sdS(N(R%(txty((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR|Rs%s already a largefile
isadding %s as a largefile
tdry_runthasht
executabletr(%tgetRt
getminsizetislfilesrepoR%t
configlisttlongnametmatchmodRtroottlisttwalktbadmatchtexactRtuipathtreltwarnRR"twvfstexiststlstattst_sizetappendtverbosetstatustwlocktopenlfdirstatetwritestandint
getexecutabletwjointnormallookuptaddtwritetfilestsplitstandin(tuitrepotisaddremovetmatcherR-R;R<t	lfmatchertlfpatstlfnamesRtwctxRRNRtnfileRStnametabovemintbadtstandinst
lfdirstatetstandinnametadded((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyt
addlargefilesmsf!$
%#
$



++c
@s�|jd�}t||dj���z&t|_|jd�d|�}Wdt|_X|dj�}g|j|j	|j
|jfD]4}	g|	D]!}
tj
|
�|kr�|
^q�^q�\}}}
}��fd�}d}|r|
}||||td��}n:|
|}||td��}||td��pK|}|j��Wtj�|�}x�t|�D]�}
�js��j|
�r�|r��j|
�}n�j|
�}�jtd	�|�n|sz|s|jj|
d
t�qqzqzW|r|Sg|D]}
tj
|
�^q}|sbx'|D]}
|jj|
d
t�q?Wn|dj|�x-|D]%}
tj||tj|
�t�qzW|j�WdQX|S(NtafterRtcleanc@sAx(|D] }�j|�j|��qWtt|�dk�S(Ni(RQRPtinttlen(RatmsgR(RRc(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyRQ�s
is#not removing %s: file still exists
s<not removing %s: file is modified (use -f to force removal)
sCnot removing %s: file has been marked for add (use forget to undo)
sremoving %s
t
ignoremissing(RDR!R%RtTruetlfstatusRXRtmodifiedRrtdeletedRuRRRRYRZtsortedRWRNRORPRRt
unlinkpathtforgettsynclfdirstateRbR`(RcRdReRftdryrunR-RttsRRKRR|RrR}RuRQtresulttremoveRpRl((RRcs@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytremovelargefiles�sV	
V

 "

cC@stj|�p|S(N(RRb(torigtpath((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyt
decodepath�scO@sI|jd�r6|jd�r6tjtd���n|||||�S(NtnormalR;s$--normal cannot be used with --large(RDRtAbortR(R�RcRdR,R-((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytoverrideaddscK@s�|jd�r(|||||||�St||t||�\}}t||dj�|�}	||||	|||�}
|
jd�|D��|
S(NR�cs@s|]}|VqdS(N((t.0R((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pys	<genexpr>s(RDRsRR(R%Rtextend(R�RcRdRftprefixtexplicitonlyR-tladdedtlbadt
normalmatcherRn((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyt
cmdutiladds	c	
C@sbt||dj��}	||||	|||||�}
t||t||d|d|�pa|
S(NRttforce(R(R%RR�R(R�RcRdRfR�RtR�tsubreposR�R�R�((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyt
cmdutilremoves
	cK@s4z t|j_||||�SWdt|j_XdS(N(Rzt_repoR{R(R�Rdtrev2R-((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytoverridestatusfnscO@s1z t|_|||||�SWdt|_XdS(N(RzR{R(R�RcRdR,R-((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytoverridestatus!s	cC@s:z&t|j_||d|d|�SWdt|j_XdS(Ntignoreupdatetmissing(RzR�R{R(R�RdR�R�((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyt
overridedirty(sc@s�ddtdd���fd�}d�fd�}t|��tj}ttd|�z|��||�SWdt�ttd|�XdS(NR)c@s�|dkri}n�|||||d|�}tj|�\�}�j�rX|St|�}tjd���jr�tj}tj	�j
|�t|� ����fd��n	d��|j��fd�|D��x�t
dt�j��D]�}	�j|	dkrq�ntj�j|	�}
|
|krP|
�j|	<q��j|	|kr��jj|
�r��jj|
�q�q�Wt�j��_d��_�j��fd	�}|�_�jd
djt|����|fS(
s�Matcher that merges root directory with .hglf, suitable for log.
        It is still possible to match .hglf directly.
        For any listed files run log on the standin too.
        matchfn tries both the given filename and with .hglf stripped.
        R*cS@s]|jd�r|Stj|d�}|ddk	rO|dd||d�S||d�S(Nsset:it:i(t
startswithRIt	_patsplitR%(tpatt	tostandintkindpat((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytfixpatsDsc@sv|j��r,tj|t���r,|Stjj�j�rT|t��}n�jd|}�tj|�S(Nt/(	R�RRbRwtosR�tisabst_cwdR(R(tbackR(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR�Rs(cS@s tj|�r|Stj|�S(N(RR"R(R((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR�csc3@s|]}�|��VqdS(N((R�R(R�R�(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pys	<genexpr>gsit.cS@stS(N(R(((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyRxRc@s;tj|�}|dk	r+�|�r+tS�|�}|S(N(RRbR%Rz(RR RC(R(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyt	lfmatchfnzs
supdated patterns: %s
s, N(R%RRRRRR�t	shortnameR
tpconvertRPRwR&trangeRRRtisdirRVRRtdebugtjoinR~(R+R,R-R.R/R*R8tpthglftiRR�(R7RdRc(R�R�RRR�s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytoverridematchandpats0s<		
		#	 %		 c@s5|d}�|||d|�\�}�fd�S(NR*c@s�S(N((R+(R(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR�R(R%(RdR,R-R*Rj(R7(Rs@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytoverridemakefilematcher�s
t_makenofollowfilematcher((R%RR9RR�R4R:(R�RcRdR,R-R�R�toldmakefilematcher((R7RdRcs@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytoverridelog/s	Y	c	O@s�|jdt�}|jdt�}|jdt�}|||||�}|s]|s]|r~|pxtj||||�}n|S(NR;tlfatlfc(tpopRRtverifylfiles(	R�RcRdR,R-R;talltcontentsR�((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytoverrideverify�s!c@sd|jdt�}|rMdtf��fd��Y}|�|||�n|��||�dS(NR;tfakerepoc@seZej���ZRS((t__name__t
__module__RRZtdirstate((RdRc(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR��s(R�Rtobject(R�RcRdR,R-R;R�((RdRcs@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytoverridedebugstate�s
cC@s;tj|jj|��|kr%tS||||||�S(N(RRR�t	normalizeR(torigfnRdRjtmctxRtf2((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytoverridecheckunknownfile�s!c
O@s�|o
|}
||||||||||	�\}}}
|
rM|||
fSt�}x^|D]V}tj|�}||kr�|j|�q]tj|�|kr]|j|�q]q]Wx�t|�D]�}tj|�}|j|d�\}}}|j|d�\}}}|dkr�|dkr�|dkra|\}}}}}||j�t	f}nt
d�|}|jj|d�dkr�d||<d|df||<q�d||<|r�d||<q�d||<q�|dkr�|dkr�|dkr(|\}}}}}||j�t	f}nt
d
�|}|jj|d�dkr�|rpd||<d||<q�d||<d||<q�d|df||<d||<q�q�W|||
fS(NtgtdcRCswremote turned local normal file %s into a largefile
use (l)argefile or keep (n)ormal file?$$ &Largefile $$ &Normal fileisreplaced by standinsreplaces standintksreplaced by non-standinswremote turned local largefile %s into a normal file
keep (l)argefile or use (n)ormal file?$$ &Largefile $$ &Normal filetlfmrsforget non-standin largefiletaskeep standin(NNN(NNN(R�R�(RCNsreplaced by standin(R�Nsreplaces standin(R�Nsreplaced by non-standin(RCNsreplaced by non-standin(R�R�(R�Nsreplaced by standin(R�Nsreplaces standin(R�Nsforget non-standin largefile(R�Nskeep standin(RCNsreplaced by non-standin(
RRRbR_RR~RDR%tflagsRRRctpromptchoice(R�Rdtp1tp2tpastbranchmergeR�tacceptremotetargstkwargst	overwritetactionstdivergetrenamedeletetlfilesRRbRRtlmtlargstlmsgtsmtsargstsmsgtf1R�tfatmovetanctusermsg((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytoverridecalculateupdates�sZ
*
	
	



	



cC@syd|kritj|j|�}x8|dD],\}}}|jj|�|j|�q,W|j�n||||�S(NR�(RRZRcR�R�R_R`(R�RdR�R�RpRR�Rx((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytmergerecordupdatess
c

C@stj|�s(|j�s(|j�rM|||||||||d|	�Stj|�j�}
tj|�j�}tj|�j�}||
kr||kr||
ks�|jjtd�tj|�|
||fd�dkr|j	|j
�|j�|j��nt
dtfS(Ntlabelsshlargefile %s has a merge conflict
ancestor was %s
keep (l)ocal %s or
take (o)ther %s?$$ &Local $$ &Otherii(RR"tisabsentt
readasstandintlowerRcR�RRbtwwriteR�tdataR�RzR(
R�tpremergeRdRjtmynodeR�tfcdtfcotfcaR�tahashtdhashtohash((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytoverridefilemerge(s(		(cC@sd|||d|�}i}xB|j�D]4\}}tj|�pF||tj|�p[|<q(W|S(NR(t	iteritemsRRb(R�tctx1tctx2RtcopiestupdatedR�tv((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytcopiespathcopies=s
,c@s/t|�dkr(||�|�|�St}t}t�dj��ziy||�|�|�}WnFtjk
r�}	tj|	�t	d�kr�|	�nt
}d}nXWdt�Xy�j�Wnt
k
r�|SX�fd�}
tj|�}|d}tjj|�rJtjj|
|��sJtj|
|��qJnz�ya�j�}
�dj��ddtdd��fd�}t|��g}xF|D]>}tj|�dk	r�|j|�q�|j|
|��q�WzPtj�g�����fd�}|t_|||�|�|�7}Wd�t_Xtj|��}xI�D]A\}}tj|kr^|j�jtj��r^|j �jtj!d	��d	�}|j �jtj!d	��d	�}�j"j#�j|��p�d
}tjj|�stj|�n|rmtj$�j|��j|���j"j%|dt
�|j&|�n"tj�j|��j|��|j'|�q^q^W|j(�Wn@tjk
r�}	tj|	�t	d�kr�|	�q�t
}nXWdt�|
j)�X|r+|r+tjt	d���n|S(
Nisno files to copyic@s7tj�j�j�|�}�jjtj|��S(N(Rt	canonpathRJtgetcwdRRR�RR(R)R�(Rd(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytmakestandinjsi����R)c
@s&|dkri}ng}x^|D]V}tj|�dkrktj|krk|j|jtjd��q"|j|�q"W�|||||d|�}tj|�}	�fd�}
g|	jD]!}|
|�r�tj	|�^q�|	_t
|	j�|	_|	j���fd�}||	_|	S(NRR*c@stj|��kS(N(RR(R(R(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR�Rc@s7tj|�}|dk	r3|�kr3�|�p6dS(N(RRbR%(RR(RR(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR�s
(
R%RItpatkindRR�RVtreplaceRRRRRR(
R+R,R-R.R/R*tnewpatsR�RRRRR(RR0(Rs@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR1{s 	
$4		c@s�tj|krw|j�jtj��rw|jtjd�}�drwtjj|�rwtdt	d���qwn�j
||f��||||�dS(NRR�s$destination largefile already exists(RR�R�R]RR�R�RStIOErrorRRV(tsrctdestR�R�t	destlfile(tcopiedfilesR-torigcopyfileRd(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytoverridecopyfile�sRR�Ry((*RwRR3R%RRR�R	tbytestrRRzR6RtOSErrorRt
expandpatsR�R�R�tmakedirsRYR2RIRRVR
tcopyfileRRZR�R�R]RRRRtdirnametrenameRR�R_R`trelease(R�RcRdR,R-Rt
nonormalfilestnolfilesR�teRtfullpatsRRYR1tlistpatsR�RRpR
tsrclfileRtdestlfiledir((R
RR0R-RRds@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytoverridecopyKs�	

	
	
	 
$$!"	c@sd�j��Rtj|��}tj|��}|j�x-|jD]"}	tj�|	tj|	��qEWxE|jD]:}	tj|	�}
�j	j
|
�ru�j	j|
�ququWtj��}ddtdd���fd�}t|��z||��|||�Wdt�Xtj��}
tj||
�}tj|�|dtdt�WdQXdS(NR)c@s6|dkri}n��||||d|�}tj|�}tj�j�j�j�t�}�d}	g}
xw|jD]l}tj|�}|�ks�|�kr�|
j	|�q�||	ks�||dkr�q�q�|
j	|�q�W|
|_t
|j�|_|j����fd�}
|
|_|S(NR*RCc@sGtj|�}|dk	r=�|�o<|�kp<|�kS�|�S(N(RRbR%(RR(R+R�R(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyRs
(
R%RRRZRdRcRRRRVRRR(R�R,R-R.R/R*RRRpRjt
matchfilesRRR(R+R0Rd(R�Rs@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR1�s*		
			tprintmessageR^((RYRRZtlfdirstatestatusR`R|t
updatestandinRR}RRRStunlinktgetstandinsstateR%RR2R6tgetlfilestoupdateRtupdatelfilesRz(R�RcRdR+tparentsR,R-RpR�RtfstandintoldstandinsR1tnewstandinstfilelist((R+R0Rds@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytoverriderevert�s*

 	"c
K@s"t|�}|sd}n||_|||||�}t|�}|jdg�}|jd�rv|jd�n|r||krd}	||_zcx\tj||�D]H}
|jtd�|
�t	j
|||
�\}}|	t|�7}	q�WWd|`X|jtd�|	�n|S(NR/tlfrevtall_largefilesspulled()is#pulling largefiles for revision %d
s%d largefiles cached
(RwtlfpullsourceRDRVtfirstpulledRtrevrangetnoteRRtcachelfilesRX(
R�RcRdtsourceR-trevsprepullR�trevspostpulltlfrevst	numcachedtrevtcachedR�((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytoverridepull"s(			cO@sV|jdd�}|rC|jdi�}tj||�|d<n|||||�S(s<Override push command and store --lfrev parameters in opargsR.topargsR8N(R�R%t
setdefaultRR2(R�RcRdR�R�R8R=((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytoverridepush9s
cO@s.|jdd�}|||�}||_|S(s=Override pushoperation constructor and store lfrevs parameterR8N(R�R%R8(R�R�R�R8tpushop((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytexchangepushoperationAs	spulled()cC@sby
|j}Wn&tk
r5tjtd���nXtjg|D]}||krC|^qC�S(sgChangesets that just has been pulled.

    Only available with largefiles from pull --lfrev expressions.

    .. container:: verbose

      Some examples:

      - pull largefiles for all new changesets::

          hg pull -lfrev "pulled()"

      - pull largefiles for all new branch heads::

          hg pull -lfrev "head(pulled()) and not closed()"

    s"pulled() only available in --lfrev(R1tAttributeErrorRR�RRtbaseset(RdtsubsetR>R1RC((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytpulledrevsetsymbolJs


cK@sr|}|dkr$tj|�}n|jd�r_tj|�r_tjtd�|��n|||||�S(NR/s>--all-largefiles is incompatible with non-local destination %s(R%RtdefaultdestRDtislocalRR�R(R�RcR5RR-td((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyt
overridecloneds	
cO@s�|||||�}|dk	r�|\}}|j�}|sC|S|jd�r�tj||d�\}	}
|
dkr�dSq�n|S(NR/i(R%tlocalRDRtdownloadlfiles(R�RcR-R�R�R�t
sourcerepotdestrepoRdtsuccessR�((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pythgcloneos
cK@s�tj|d�s"||||�S|jd�}|jjtj|��|jjd��z||||�SWd|jj�|jj�XdS(Nt_largefilesenabledtcontinuec_@sdS(N(R%(RxR-((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR�R(	R
tsafehasattrRDt_lfcommithooksRVRtautomatedcommithookt_lfstatuswritersR�(R�RcRdR-tresuming((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytoverriderebase�s
cK@sCt|j�_z|||j�||�SWdt|j�_XdS(N(Rzt
unfilteredR{R(R�RcRdRR-((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytoverridearchivecmd�scC@s.t|j_z||�SWdt|j_XdS(N(RzRdR{R(R�tweb((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pythgwebarchive�sRc

@s��jr<�j�jr<|�|||���||	�	S|dk	ratj�j�|�n|tjkr�tj	t
d�|��n�|�|dkr��r�tj	t
d���q�ntj||��������fd�}
tj|||p�j�d���jj
dd�rM|
dd	t�fd
��nx��D]�}�j|�}�|j}
tj|�}|dk	r|dk	r�tj�|
�j����dkr�tj	t
d�|��q�n|�|}�fd�}
n|
|d
|krdpd	d|k|
�qTW|	r�xZt�j�D]F}�j|�}tj|��}t|j_|j��|�qFWn�j�dS(Nsunknown archive type '%s'Ras*cannot give prefix when archiving to filesc@sY�r�|�rdS|�}�r;�j||�}n�j�||||�dS(N(t
wwritedatataddfile(RltmodetislinktgetdataR�(tarchivertdecodeRR�Rd(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR`�s	iRctarchivemetas.hg_archival.txti�c@s
tj��S(N(Rt
buildmetadata((R+(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR�Rs4largefile %s not found in repo store or system cachec@s
tj��S(N(R
treadfile((R�(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR�RR>i�tl(R{RXR%RR4RcRt	archiversRR�Rt
tidyprefixtdatet
configboolRR�R�RRbtfindfiletstripR~tsubstatet
workingsubRIt
subdirmatcherRzR�tarchivetdone(R�RdRtnodetkindRbRR�tmtimeR�R`RtffR`Rtsubpathtsubtsubmatch((RaR+RbRR�R�Rds@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytoverridearchive�sP
&

	/c@stj�jd�}|s)�jjr?|������S�j�jd��jd}�j|}|j�dk	r�tj	�j
�j|j��n������fd�}	x�|D]��|j��}
|�j}t
j��}|dk	r|j�dk	r^t
j�j|�j����dkrdtjtd�|��qdn|�|���fd�}n|	�d|
kr�dp�d	d
|
k|�q�Wxet|j�D]T}
|j|
�}tj|
��}t|j_|j���jd|��q�WdS(
NRPRic@sg�r���rdS|�}�r>�jj||�}n�j��jd||||�dS(NR�(R�R\R]t_path(RlR^R_R`R�(RaRbRRR�Rd(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR`�s	s4largefile %s not found in repo store or system cachec@stjtjj����S(N(R
ReR�R�R�((R�R�(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyRRR>i�i�RfR�(R(R
RRR�R{t_gett_stateRrR%RR4RcR�R�RRbRkRlRR�RR~RmRnRIRoRzRpRz(R�RdRaR�RRbt	lfenabledR:R+R`RuR`RRvRwRx((RaRbRRR�R�Rds@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pythgsubrepoarchive�s:

"

	/cO@sn||||�t|_|j�}t|_|jsR|jsR|jsR|jrjtj	t
d���ndS(Nsuncommitted changes(RzR{RXRR|RrtremovedR}RR�R(R�RdR�R�R�((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytoverridebailifchangeds		$cO@s.t|_z||||�SWdt|_XdS(N(RzR{R(R�RdR�R�((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytpostcommitstatus&s	c	@s�t||dj��}||||||||�\}	}
t||dj���z%t|_|jd�dt�}Wdt|_X|dj�}t|j	|j
|j|j�}
g|
D]!}t
j|�|kr�|^q�}
xo|
D]g}t
j|�}||jkr�|jj|�r�|jtd��j|��|	j|�q�q�WxJ|
D]B}|js��j|�rc|jtd��j|��qcqcW|j���t
j||�}x;|
D]3}||dkr�|j|�q�|j|�q�W|j�g|
D]}t
j|�^q}x$|D]}|jj|dt�q9W|dj|��WdQX|	j�fd��D��|
j�fd�|
D��|	|
fS(	NRRus+not removing %s: file is already untracked
sremoving %s
R�Ryc3@s'|]}|�j�kr|VqdS(N(Ra(R�R(R(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pys	<genexpr>Wsc3@s!|]}|�kr|VqdS(N((R�R(trejected(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pys	<genexpr>Xs( R(R%RR!RzR{RXRR~R|RrR}RuRRR�RRR�RQRRPRVRWRNRYRZtdropR�R`RR�R�(R�RcRdRR�R�R�tinteractiveR�RntforgotR�RR�RR)RpRo((RR�s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyt
cmdutilforget-sD	
$.
"
'


"
c@s�t��t����fd�}tj|||��r�tj||�j��}x1�D]&\}}||s_|||�q_q_WndS(s�get pairs of filename and largefile hash in outgoing revisions
    in 'missing'.

    largefiles already existing on 'other' repository are ignored.

    'addfunc' is invoked with each unique pairs of filename and
    largefile hash value.
    c@s9||f}|�kr5�j|��j|�ndS(N(R_(tfntlfhashR�(tknownstlfhashes(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytdedupfs
N(RRtgetlfilestouploadRt	openstoreRS(RdtotherR�taddfuncR�tlfexistsR�R�((R�R�s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyt
_getoutgoings[s			
c@s|jdd�rt���jrQi���fd�}��fd�}n$t����fd�}d�}t||||��s��jtd��q�jtd�t���x8t��D]*}�jt	j
|�d�||�q�W�jd�ndS(	NR;c@s;|�krg�|<n�|j|��j|�dS(N(RVR_(R�R�(R�ttoupload(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR�ws
c@s0x)t�|�D]}�jd|�qWdS(Ns    %s
(R~R�(R�R�(R�Rc(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyt
showhashes|sc@s�j|��j|�dS(N(R_(R�R�(R�R�(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR��s
cS@sdS(N((R�((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR��sslargefiles: no files to upload
s$largefiles to upload (%d entities):
s
(R�R%Rt	debugflagR�RXRRwR~RRb(RcRdR�R-R�R�R�tfile((R�R�Rcs@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytoutgoinghookrs$				c
@s|jdt�}|dkr;|r.ttfSttfSn�|r�|d\}}}}|dkrz|jtd��dSt��t����fd�}	t|||j|	��s�|jtd��q�|jtd�t	��t	��f�ndS(NR;islargefiles: (no remote repo)
c@s�j|��j|�dS(N(R_(R�R�(R�R�(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR��s
s!largefiles: (no files to upload)
s/largefiles: %d entities for %d files to upload
(
RDRR%RzRXRRR�R�Rw(
RcRdR-tchangestlargeoptturltbranchtpeertoutgoingR�((R�R�s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytsummaryremotehook�s$

		cO@s1z t|_|||||�Wdt|_XdS(N(RzR{R(R�RcRdR,R-((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytoverridesummary�s	c

@sN|dkri}ntj|�s7|||||�Stj|j|�}|jtj|j|j	��dgdt
dt
dt
�\}��jr�tj|�}|j
���fd�|_
t|j|t||jd�tj|��nt|j|t|tj|��\}}	t||dj�|�}|||||�S(NR�tignoredRutunknownc@s|�jko�|�S(N(R}(R(RR�(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR�RR@(R%RRFRZRcRXRIRRJRRR}RRR�RzRDR	t	strkwargsRsR(R(
R�RdRfR�R-RptunsureRRrRn((RR�s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytscmutiladdremove�s$	!		c
@sh�j���j�dddtttt���fd�}|�_|��||���_dS(NR�c
@s��|||||||�}tj���}g|jD]}	||	dkr:|	^q:}g|jD]}	||	dkrf|	^qf}tj|j|j|j|j	|||j
�S(Nt?(RRZR�R�RRXR|RrRR}Ru(
tnode1tnode2RR�RuR�tlistsubreposRCRpR(t	oldstatusRdRc(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR��s	,,(RXRXR%R(R�RcRdtdirsR-R�((R�RdRcs@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyt
overridepurge�s
		c
@s��j����jj�}t�fd��jD��}||�|�}�jj�}||krl|S�d}x��jD]�}	tj|	�r�|j|	��j|	dkr��jj|	dt	�q|	|kr||	}
�j
|	|
j�|
j��qtj
�|	dt�q�q�Wx$|D]}�jj|dt	�q*Wtj|��}t|�}tj��}
x1|
D])}tj�||t	�|j|�q~Wx|D]}|j|�q�W|j�WdQX|S(Nc3@s7|]-}tj|�r�j|dkr|VqdS(RCN(RR"R�(R�R(Rd(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pys	<genexpr>�sR�RCRyR(RYR�R(RRR"tdiscardRRRRzR�R�R�R[RRZt
listlfilesR�R�R`(R�RcRdR-tbeforetorphansR�RttpctxRtfctxRRpR�R�R((Rds@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytoverriderollback�s:



"


cO@sv|jd�}|jjtj|��|jjd��z|||||�}Wd|jj�|jj�X|S(NRQc_@sdS(N(R%(RxR-((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyRR(RDRSRVRRTRUR�(R�RcRdtrevsR-RVR�((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytoverridetransplants
c@sQtj|�}tj||jd��}d}t��tj||f||�}|j���fd�}	|	|_|j���fd�}
|
|_|j	��fd�}||_	x�|j
|�D]{}tj||jd�d|��L}
t
j|�}|dks�|�rc||j�}|jd�rS|j||�}n|
j|�n�t
j||�}t
j|j|�s�tj|�}|j||fg�\}}t|�dkr�tjtd	�|��q�nt
j|j|�}t|d
��.}x$tj|�D]}|
j|�q WWdQXWdQXd}q�W|S(NR:ic@sF�|�rtStj|�}|dkr/tS�j|��|�S(N(RzRRbR%RR_(RR (tnotbadR(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyR�-s
c@s |�kr�||�ndS(N((RRx(R�t	origbadfn(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytlfbadfn7sc@sR|tjkrtS�|�}|r)|Stj|�}|dkrHtS�|�S(N(RR�RzRbR%R(tdirtretR (torigvisitdirfn(s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytlfvisitdirfn=stoutputtpathnameRbs8largefile %s is not in cache and could not be downloadedtrbi( R	tbyteskwargsRt	revsingleRDRRRRntvisitdirRLRtmakefileobjRRbR%R�R\R`R�tinusercacheRcRR�RwRR�Rt
usercachepathtopenR
t
filechunkiter(R�RcRdtfile1R,R-R+terrRR�R�R�RtfpR R�RAtstoreRNR�R�tfpintchunk((R�R�RR�s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytoverridecat&sH						
	$	
cO@s�|jdd�}|o"|j�}|j��|tj|j|�}	|	jtj|j	|j
��dgdtdtdt�\}
}t
|j�}|d}
||}x�|
|jD]�}|jj|�}|jj|�s�q�ntj|�}tj|�}tj|||tj|��||
kr�|tj|
|�kr�|j|�q�q�WxE|jD]:}tj|�}||kr�qjntj|||�qjWx|D]}|	j|�q�W|	j�tj|�}|d|d<|||||||�}tj|�}tj||�}x$|j|�D]}|	j |�q9W|	j�|sl|sl|r�|j!|j"|j#�nt$j%|j|d|d	|�|SWdQXdS(
NRfR�R�RuR�R�twcR,R^(&RDR%RRYRRZRcRXRIRJRRRzRRuR|RRR�RSthashfileRR[R\R�R_RrR#R^R`R%R&t
differenceR�R�R}RRR'(R�RdRrR�R�R�R�RftpartialRpR�R�toldcleanR�tdctxRtlfileabsR�RR)R*R�R+R,((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytmergeupdatebsV





c		O@s�|||||�}g}x9|D]1}tj|�}|dk	r"|j|�q"q"W|r�tj|j|d|dtdt�n|S(NR,R!R^(	RRbR%RVRR'RcRRz(	R�RdRaR�R�R�R,RR ((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytscmutilmarktouched�s
cC@s/||�}d|jkr+|jd�n|S(Nt
largefiles(trequirementsR_(R�Rdtreqs((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pytupgraderequirements�sslargefile://cC@sd|jt�rM|r-d}tj|��n|tt�}tj||�S|||d|�SdS(Ns'cannot use data on a 'largefile://' urlR�(R�t	_lfschemeRtProgrammingErrorRwRtgetlfile(R�Rcturl_R�Rxtlfid((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyt
openlargefile�s(St__doc__t
__future__RRR�tmercurial.i18nRt	mercurialRRRRRRRIRR	R
RRR
RRRRR!R%R(R3R2R6R9R:RsR�R�R�R�R�R�R�RR�R�R�R�R�R�R�R�RRR-R<R?RAtrevsetpredicateRERIRORWRYR[RzRyR~R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�(((s@/usr/lib64/python2.7/site-packages/hgext/largefiles/overrides.pyt<module>	s|R		
				
	H	F			
				j	
		D	�	F				
		C6			.		 		'		%		<	M