https://t.me/RX1948
Server : Apache
System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
User : dh_edsupp ( 6597262)
PHP Version : 8.2.26
Disable Function : NONE
Directory :  /lib/python3/dist-packages/hgext/largefiles/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/hgext/largefiles/__pycache__/overrides.cpython-310.pyc
o

�]Lb���	@s�dZddlmZddlZddlZddlmZddlmZddl	m
Z
ddlmZm
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z"m#Z#ddl$m%Z&d	d
l'm(Z(m)Z)m*Z*ej+Z+ej,Z,ej-Z-ej.Z.ej/Z/e��Z0e)j1Z1e�2d�Z3dd
�Z4d�dd�Z5dd�Z6dd�Z7e0�8e
d�dd��Z9e0j:dddded�fddded�fddded�fgd�d d!��Z;e0�8e
d�d"d#��Z<e0�8e
d$�d%d&��Z=e0�8e j>d'�d(d)��Z?e0�:d'�d*d+��Z@e0�8e j>d,�d�d.d/��ZAe0�:d0�d1d2��ZBe0j:d3ddded4�fdd5ded6�fdd7ded8�fgd�d9d:��ZCe0j:d;ddded<�fgd�d=d>��ZDe0�8ed?�d�d@dA��ZEe0�8edB�dCdD��ZFe0�8edE�dFdG��ZGe0�8edH�	d�dIdJ��ZHe0�8edK�d�dLdM��ZIe0�8e
dN�d�dOdP��ZJe0�8e
dQ�dRdS��ZKe0j:dTddUdedV�fddWgedX�edY�fgd�d�dZd[��ZLe0j:d\ddWged]�edY�fgd�d^d_��ZMe0�8ed`�dadb��ZNe0�Odc�ddde��ZPe0j:dfddUdedg�fgd�d�dhdi��ZQe0�8edf�djdk��ZRe0j:dldldm�dndo��ZSe0jTdpdq��ZUe0�:dr�dsdt��ZVe0�8e
dr�dudv��ZWe0�8edr�	w				d�dxdy��ZXe0�8e j>dr�d�dzd{��ZYe0�8e
d|�d}d~��ZZe0�8e
d�d�d���Z[e0�8e
d��d�d���Z\d�d��Z]d�d��Z^e0j:d�ddded��fgd�d�d���Z_d�d��Z`e0j:d�ddded��fgd�d�d���Zae0�8ed��d�d�d���Zbe0�:d��d�d���Zce0�:d��d�d���Zde0j:d�d�dm�d�d���Zee0�:d��d�d���Zfe0�8ed��d�d���Zge0�8ed��d�d���Zhe0�8e&d��e0�8e&d��d�d����Zid�Zje0�8e"d��d�d�d���ZkdS)�zHOverridden Mercurial commands and functions for the largefiles extension�)�absolute_importN)�_)�open)�webcommands)�archival�cmdutil�copies�error�exchange�
extensions�	exthelper�	filemerge�hg�
logcmdutil�match�merge�
mergestate�pathutil�pycompat�scmutil�smartset�subrepo�url�util)�actions�)�
lfcommands�lfutil�storefactory�lfmrcs\t�|�}�fdd���fdd�|jD�|_t|j�|_dd�|_|j���fdd�|_|S)zMcreate a matcher that matches only the largefiles in the original
    matcherc�t�|��vS�N�r�standin��f��manifest��</usr/lib/python3/dist-packages/hgext/largefiles/overrides.py�<lambda>I�z)composelargefilematcher.<locals>.<lambda>c�g|]}�|�r|�qSr(r(��.0�lf��lfiler(r)�
<listcomp>J�z+composelargefilematcher.<locals>.<listcomp>cS�dS�NFr(r(r(r(r)r*L�c��|�o�|�Sr!r(r$�r1�origmatchfnr(r)r*N�)�copy�_files�set�_fileset�always�matchfn)rr'�mr()r1r'r9r)�composelargefilematcherEs

rBcsvt��|dur��|�t�|�}��fdd���fdd�|jD�|_t|j�|_dd�|_|j���fdd�|_|S)Ncs"t�|�pt�|��vp|�vSr!�r�	isstandinr#r$)�excludedr'r(r)r*Xs�z*composenormalfilematcher.<locals>.<lambda>cr,r(r(r-)�notlfiler(r)r2[r3z,composenormalfilematcher.<locals>.<listcomp>cSr4r5r(r(r(r(r)r*]r6cr7r!r(r$)rFr9r(r)r*_r:)r=�updater;r<r>r?r@)rr'�excluderAr()rEr'rFr9r)�composenormalfilematcherRs


rIcs(|�d�}t�|t�|�|�d��}d}t�|�r,|�tjd�}	|	r,t�|jdt	|	��}g}
|�|d}|�
t��dd���D]f}��|�}
t�
|�|v}||v}|pT|}|
rg|rg|rf|�td�||��q?|
sk|s�t�|�s�|j�|�swq?|o�|j�|�j|ddk}|s�|s�|r�||�r�|
�|�|js�|
s�|�td	�||��q?g�|���[|�d
�s�g}t�||�}|
D] }t�
|�}tj||dt�|�|��d�|�|�|�|�q�|�|�����fdd
�|d� |�D�7��fdd
�|
D�}Wd�|�fS1�swY|�fS)N�large�lfsizespatterns�cS�dSr!r()�x�yr(r(r)r*sr6zaddlargefiles.<locals>.<lambda>s%s already a largefile
isadding %s as a largefile
�dry_run)�hash�
executablecs"g|]
}|���vrt�|��qSr()�filesr�splitstandin�r.r%�rAr(r)r2�s
�z!addlargefiles.<locals>.<listcomp>csg|]}|�vr|�qSr(r(rU)�badr(r)r2�r3)!�getr�
getminsize�islfilesrepo�
configlist�longname�matchmodr�root�list�walk�badmatch�exactr#�warnrrD�wvfs�exists�lstat�st_size�append�verbose�status�wlock�openlfdirstate�writestandin�
getexecutable�wjoin�set_tracked�write�currenttransaction�add)�ui�repo�isaddremove�matcher�uipathfn�optsrJrK�	lfmatcher�lfpats�lfnames�wctxr%rbr1�nfilere�abovemin�standins�
lfdirstate�standinname�addedr()rWrAr)�
addlargefilescsn
�

�

�


�
�
��r�cs�|�d�}t||d���}t|��|j||d�}	Wd�n1s%wY|d����fdd�|	j|	j|	j|	jfD�\}
}}}
��fdd�}|r\|}||
||
t	d��}n||
}||
t	d��}||t	d	��po|}|�
��qt��|�}t
|�D]!}�js�|�|�s���t	d
��|��|s�|s�|jj|dd�q|r�|Wd�Sd
d�|D�}|s�|D]
}|jj|dd�q�|d�|�|D]
}|�t�|��q�|�|���Wd�|S1s�wY|S)N�after�r�cleancsg|]}�fdd�|D��qS)c�g|]}t�|��vr|�qSr(r"rUr&r(r)r2��z/removelargefiles.<locals>.<listcomp>.<listcomp>r()r.r_r&r(r)r2�s��z$removelargefiles.<locals>.<listcomp>cs,|D]}��|�|��qtt|�dk�S)Nr)rc�int�len)rS�msgr%)rtrxr(r)rc�szremovelargefiles.<locals>.warns#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)
�removing %s
T��
ignoremissingcS�g|]}t�|��qSr(r"rUr(r(r)r2��)rXrBr'�lfstatusrj�modifiedr��deletedr�rrkrrl�sortedrirbrd�
unlinkpath�forget�
set_untrackedrTrqrr)rtrurvrwrx�dryrunryr�rA�sr�r�r�r�rc�remove�resultr�r%r()r'rtrxr)�removelargefiles�sl

�
�������

��

��r�s
decodepathcCst�|�p|Sr!�rrT)�orig�pathr(r(r)�
decodepath�sr�saddrL�largesadd as largefilesnormalsadd as normal fileslfsizesHadd all files above this size (in megabytes) as largefiles (default: 10))rycOs:|�d�r|�d�rt�td���|||g|�Ri|��S)N�normalrJs$--normal cannot be used with --large)rXr	�Abortr�r�rtru�patsryr(r(r)�overrideadd�sr�cKs�|�d�r|||||||fi|��St||d||fi|��\}}	t||d��|�}
||||
|||fi|��}|�dd�|	D��|S)Nr�Fcss�|]}|VqdSr!r(rUr(r(r)�	<genexpr>s�zcmdutiladd.<locals>.<genexpr>)rXr�rIr'�extend)r�rtrurw�prefixrx�explicitonlyry�ladded�lbad�
normalmatcherrWr(r(r)�
cmdutiladds
�r�sremovec

CsFt||d���}
||||
||||||	�	}t||d|||	||d�p"|S)NF)r��force)rIr'r�)r�rtrurwr�rxr�r��subreposr�r�r�r(r(r)�
cmdutilremove#s"���r�sstatuscKs@t|j��|||fi|��Wd�S1swYdSr!�r��_repo)r�ru�rev2ryr(r(r)�overridestatusfn;s$�r�cOsDt|��|||g|�Ri|��Wd�S1swYdSr!�r�r�r(r(r)�overridestatusAs
$�r�sdirtyFcCs<t|j��||||d�Wd�S1swYdS)N)�ignoreupdate�missingr�)r�rur�r�r(r(r)�
overridedirtyGs$�r�slogc		s�					d
��fdd�	}tj�d�fdd�	}t�td|�}t�td	|�}|�.|�|��g|�Ri|��Wd�Wd�S1sHwYWd�dS1sXwYdS)Nr(F�relpathcsp|duri}|||||||d�}t�|�\}}	|��r|St|	�}tjfdd�������rHtj}
t���	|
�dt
|
������fdd��ndd��|���fdd	�|	D��td
t
|j
��D]/}|j
|dkrkqat�|j
|�}||vr}||j
|<qa|j
||vr��j�|�r�|j
�|�qat|j
�|_dd
�|_|j��fdd�}
|
|_��dd�t|���||fS)z�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.
        N��badfncSsJ|�d�r|St�|d�}|ddur|dd||d�S||d�S)Nsset:r�:r)�
startswithr]�	_patsplit)�pat�	tostandin�kindpatr(r(r)�fixpatsis
z:overridelog.<locals>.overridematchandpats.<locals>.fixpatscs\|���rt�|t��d��r|Stj���r!|t��d�}n�d|}�t�|�S)N�/)r�rrTr��osr��isabsr#r$)�back�cwdr(r)r�xs z<overridelog.<locals>.overridematchandpats.<locals>.tostandincSst�|�r|St�|�Sr!rCr$r(r(r)r��s

c3s�|]}�|��VqdSr!r(rU)r�r�r(r)r��s�z<overridelog.<locals>.overridematchandpats.<locals>.<genexpr>r�.cSr4r5r(r(r(r(r)r*�r6z;overridelog.<locals>.overridematchandpats.<locals>.<lambda>cs*t�|�}|dur�|�rdS�|�}|S�NTr�)r%r/�r)r9r(r)�	lfmatchfn�s

z<overridelog.<locals>.overridematchandpats.<locals>.lfmatchfnsupdated patterns: %s
s, )r;r?r=rr#�getcwd�	shortnamer�pconvert�pathtor�rG�ranger<rd�isdirrhr>r@�debug�joinr�)r��ctxr�ry�globbed�defaultr��matchandpatsrA�p�hglf�ir#r��rurt)r�r�r�r9r�r)�overridematchandpatsOs>
�
z)overridelog.<locals>.overridematchandpatscs(|d}�||||d�\�}�fdd�S)Nr�cs�Sr!r(�r��rr(r)r*�r6z>overridelog.<locals>.overridemakefilematcher.<locals>.<lambda>r()r�rur�ryr�r})�oldmatchandpatsr�r)�overridemakefilematcher�sz,overridelog.<locals>.overridemakefilematchersmatchandpatss_makenofollowfilematcher�r(NFr�Nr!)rr�r�wrappedfunctionr)	r�rtrur�ryr�r��wrappedmatchandpats�wrappedmakefilematcherr()r�rurtr)�overridelogMs"�f��R�r�sverifys5verify that all largefiles in current revision existsslfas4verify largefiles in all revisions, not just currentslfcs3verify local largefile contents, not just existencec	Os`|�dd�}|�dd�}|�dd�}|||g|�Ri|��}|s$|s$|r.|p-t�||||�}|S)NrJF�lfa�lfc)�popr�verifylfiles)	r�rtrur�ryrJ�all�contentsr�r(r(r)�overrideverify�sr�s
debugstatesdisplay largefiles dirstatecs^|�dd�}|r!G��fdd�dt�}|�|g|�Ri|��dS|��g|�Ri|��dS)NrJFcseZdZe����ZdS)z$overridedebugstate.<locals>.fakerepoN)�__name__�
__module__�__qualname__rrl�dirstater(r�r(r)�fakerepo�sr�)r��object)r�rtrur�ryrJr�r(r�r)�overridedebugstate�s
r�s_checkunknownfilecCs*t�|j�|��|vr
dS||||||�Sr5)rr#r��	normalize)�origfnrur}�mctxr%�f2r(r(r)�overridecheckunknownfilesr�scalculateupdatescOs<|o|}
||||||||g|�Ri|	��}|
r|St�}|��D]!}
t�|
�}|dur6||vr6|�|�q!t�|
�|vrB|�|
�q!t|�D]�}t�|�}|�|d�\}}}|�|d�\}}}|tt	fvr�|t
kr�|t	kr}|\}}}}}||��df}td�|}|j
�|d�dkr�|�|t
dd�|�|t|d�n|�|tdd�|r�|�|tdd�n|�|t
dd�|tt	fv�r|t
k�r|t	kr�|\}}}}}||��df}td�|}|j
�|d�dk�r|r�|�|tdd�|�|tdd�qG|�|tdd	�|�|tdd
�qG|�|t|d�|�|t
dd�qG|S)N)NNNFswremote turned local normal file %s into a largefile
use (l)argefile or keep (n)ormal file?$$ &Largefile $$ &Normal filersreplaced by standinsreplaces standinsreplaced by non-standinswremote turned local largefile %s into a normal file
keep (l)argefile or use (n)ormal file?$$ &Largefile $$ &Normal filesforget non-standin largefileskeep standin)r=rSrrTrsr#r��getfile�
ACTION_GET�ACTION_DELETED_CHANGED�
ACTION_REMOVE�flagsrrt�promptchoice�addfile�ACTION_KEEP�#MERGE_ACTION_LARGEFILE_MARK_REMOVED�
ACTION_ADD)r�ru�p1�p2�pas�branchmerger��acceptremote�args�kwargs�	overwrite�mresult�lfilesr%rTr1r#�lm�largs�lmsg�sm�sargs�smsg�f1r��fa�move�anc�usermsgr(r(r)�overridecalculateupdates#s�
���

�
��������������rs
recordupdatesc	Cs�t|vrAt�|j|�}|���#|tD]\}}}|jj|ddd�|j|ddd�qWd�n1s5wY|�|���|||||�S)NTF��
p1_tracked�
wc_tracked)	rrrlrt�parentchanger��update_filerqrr)	r�rurr	�getfiledatar�r1rr�r(r(r)�mergerecordupdates�s
����r"s	filemergec	
Cs�t�|�r
|��s
|��r|||||||||d�St�|���}	t�|���}
t�|���}||	kr[||
kr[|
|	ksN|j�td�t�|�|	|
|fd�dkr[|�	|�
�|��|���dS)N)�labelss�largefile %s has a merge conflict
ancestor was %s
you can keep (l)ocal %s or take (o)ther %s.
what do you want to do?$$ &Local $$ &Otherrr)rF)
rrD�isabsent�
readasstandin�lowerrtrrrT�wwriter��datar)r�rur}�mynoder��fcd�fco�fcar#�ahash�dhash�ohashr(r(r)�overridefilemerge�s(���
�
r0s
pathcopiescCsF||||d�}i}t�|�D]\}}t�|�p||t�|�p|<q|S)Nr�)r�	iteritemsrrT)r��ctx1�ctx2rr�updated�k�vr(r(r)�copiespathcopies�s
r7scopycs�t|�dkr||�|�|�Sd}d}�d���					d�fdd�	}t�td|��3z
||�|�|�}	Wn tjyV}
z|
jtd�krH|
�d	}d
}	WYd}
~
nd}
~
wwWd�n1sawYz��	�Wnt
yw|	YSw�fdd�}t�|�}|d
}
tj
�|
�r�tj
�||
��s�t�||
���z z����}�d���					d�fdd�	}g}|D]}t�|�dur�|�|�q�|�||��q�g����fdd�}t�td|��)t�td|��|	||�|�|�7}	Wd�n1s�wYWd�n	1�swYt�|��}�D]s\}}
tj|v�r�|
���tj���r�|���t�d��d�}|
���t�d��d�}�j���|���pRd}tj
�|��s_t�|�|�r|t���|���|���jj|d	d�|� |�nt�!��|���|��|�"|��q|�#��$��Wn tj�y�}
z|
jtd�k�r�|
�d	}WYd}
~
nd}
~
wwW|�%�n|�%�w|�r�|�r�t�td���|	S)N�Fr(r�cs*|duri}|||||||d�}t|��S)Nr�)rI)r�r�r�ryr�r�r�rr&r(r)�normalfilesmatchfn�s	
z(overridecopy.<locals>.normalfilesmatchfn�matchsno files to copyTrcs&t��j���|�}�j�t�|��Sr!)r�	canonpathr^r�rdr�rr#)�relpathr��rur(r)�makestandinsz!overridecopy.<locals>.makestandin���cs�|duri}g}|D]}t�|�dur#tj|vr#|�|�tjd��q
|�|�q
|||||||d�}	t�|	�}
�fdd���fdd�|
jD�|
_t|
j�|
_	|
j
���fdd�}||
_
|
S)	NrLr�cr r!r"r$r&r(r)r*-r+z5overridecopy.<locals>.overridematch.<locals>.<lambda>csg|]}�|�rt�|��qSr(r"rUr0r(r)r2.r�z7overridecopy.<locals>.overridematch.<locals>.<listcomp>cs&t�|�}|dur|�vr�|�pdSr!r��r%r1)r'r9r(r)r@2s
���z4overridecopy.<locals>.overridematch.<locals>.matchfn)r]�patkindrr�rh�replacer;r<r=r>r@)r�r�r�ryr�r�r��newpatsr�rrAr@r&r8r)�
overridematchs 	
	z#overridecopy.<locals>.overridematchcsvtj|vr&|���tj��r&|�tjd�}�ds&tj�|�r&tdt	d�����
||f�|||g|�Ri|��dS)NrLsforces$destination largefile already exists)rr�r�rorBr�r�re�IOErrorrrh)r��src�destrr�	destlfile)�copiedfilesryrur(r)�overridecopyfileGs
��z&overridecopy.<locals>.overridecopyfilescopyfilerLr�r�r�)&r�r'rr�rr	r��messagerr��OSError�
expandpatsr�r�r��makedirsrkr]rArhrrrlr�r�rorBr#rd�dirname�renamer�r��copyfilerprqrr�release)r�rtrur�ryrP�
nonormalfiles�nolfilesr9r��er>�fullpatsrGrkrD�listpatsr�rJr�rF�srclfilerH�destlfiledirr()rIr'ryrur)�overridecopy�s�������
�&���
�

����rZsrevertc	s8�����t�|��}t�|��}|�����|jD]}t��|t�|��q|j	D]}t�|�}	�j
�|	�r>�j
�|	�q+t�
��}
					d	��fdd�	}t�td|��||��g|�Ri|��Wd�n1spwYt�
��}t�|
|�}
tj|�|
ddd�Wd�dS1s�wYdS)
Nr(Fr�cs�|duri}|�|||||d�}t�|�}t����j���d�}	�d}
g}|jD]%}t�|�}
|
�vs9|
�vr?|�|
�q*|
|
vsI|	�|�j	rJq*|�|�q*||_t
|j�|_|j����fdd�}||_|S)Nr�Fcs2t�|�}|dur�|�o|�vp|�vS�|�Sr!r�r@)r�r�r9r(r)r@�s
z6overriderevert.<locals>.overridematch.<locals>.matchfn)
r;rrlrurtr<r#rh�	get_entry�removedr=r>r@)r�r�r�ryr�r�r�rrAr�r}�
matchfilesr%r#r@�r�ru)r�r9r)rD�s,	
�

z%overriderevert.<locals>.overridematchr:T)�printmessage�normallookupr�)rkrrl�lfdirstatestatusrqrrr��
updatestandinr#r�rdre�unlink�getstandinsstaterr�r�getlfilestoupdater�updatelfiles)r�rtrur�r�ryr�r�r1�fstandin�oldstandinsrD�newstandins�filelistr(r^r)�overriderevert�s6



�
�-�

�"�rkspullsall-largefiless7download all pulled versions of largefiles (DEPRECATED)slfrevs'download largefiles for these revisionssREVc
Ks�t|�}|sd}||_||||fi|��}t|�}|�dg�}|�d�r)|�d�|rf||krfd}	||_z%t�||�D]}
|�td�|
�t	�
|||
�\}}|	t|�7}	q;W|`n|`w|�td�|	�|S)Nsdefault�lfrev�all_largefiles�pulled()rs#pulling largefiles for revision %d
s%d largefiles cached
)r��lfpullsourcerXrh�firstpulledr�revrange�noterr�cachelfilesrj)
r�rtru�sourcery�revsprepullr��revspostpull�lfrevs�	numcached�rev�cachedr�r(r(r)�overridepull�s*

�r{spushs%upload largefiles for these revisionscOsD|�dd�}|r|�di�}t�||�|d<|||g|�Ri|��S)z<Override push command and store --lfrev parameters in opargsrlN�opargsslfrevs)r��
setdefaultrrq)r�rtrurrrwr|r(r(r)�overridepush�s
r~s
pushoperationcOs$|�dd�}||i|��}||_|S)z=Override pushoperation constructor and store lfrevs parameterrwN)r�rw)r�rrrw�pushopr(r(r)�exchangepushoperationsr�rncs@z|j�Wntyt�td���wt��fdd�|D��S)agChangesets 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 --lfrevcsg|]}|�kr|�qSr(r()r.r��rpr(r)r24r3z&pulledrevsetsymbol.<locals>.<listcomp>)rp�AttributeErrorr	r�rr�baseset)ru�subsetrNr(r�r)�pulledrevsetsymbols
�r�sclones'download all versions of all largefilescKsP|}|durt�|�}|�d�rt�|�st�td�|��||||fi|��S)Nrms>--all-largefiles is incompatible with non-local destination %s)r�defaultdestrX�islocalr	r�r)r�rtrtrGry�dr(r(r)�
overrideclone7s
��r�cOsb|||g|�Ri|��}|dur/|\}}|��}|s|S|�d�r/t�||�\}	}
|
dkr/dS|S)Nsall_largefilesr)�localrXr�downloadlfiles)r�rtryrrr��
sourcerepo�destreporu�successr�r(r(r)�hgcloneOs
r��rebase)�	extensioncKs�t�|d�s|||fi|��S|�d�}|j�t�|��|j�dd��z9|�ddid��|||fi|��Wd�W|j�	�|j�	�S1sMwYW|j�	�|j�	�dS|j�	�|j�	�w)N�_largefilesenabled�continuec_rMr!r(�r�ryr(r(r)r*pr6z#overriderebasecmd.<locals>.<lambda>)r�sexperimental.inmemoryF�
largefiles)
r�safehasattrrX�_lfcommithooksrhr�automatedcommithook�_lfstatuswriters�configoverrider�)r�rtrury�resumingr(r(r)�overriderebasecmdis$
��
�

�r�cCs>zt�d�}Wn
tyYdSwdd�}t�|d|�dS)Nr�c_sd|d<||i|��S)NF�inmemoryr(�r�rrr(r(r)�	_dorebase�sz!overriderebase.<locals>._dorebases	_dorebase)r�find�KeyError�wrapfunction)rt�rebaser�r(r(r)�overriderebase{s�r�sarchivecKsHt|����|||��|fi|��Wd�S1swYdSr!)r��
unfiltered)r�rtrurGryr(r(r)�overridearchivecmd�s$�r�cCs6t|j��||�Wd�S1swYdSr!)r�ru)r��webr(r(r)�hgwebarchive�s$�r�Tc

s�js���js|�|||���||	�	S|dur t��j�|�|tjvr.t�t	d�|���|�|dkr@�r?t�t	d���nt�
||��������fdd�}
tj|||p]���d���j�dd�rq|
d	d
d�fdd
���D]I}��
|�}�|j}
t�|�}|dur�|dur�t��|
������dur�t�t	d�|��n|�|}�fdd
�}
|
|d|vr�dp�d
d|v|
�qs|	r�t�j�D]9}��|�}t�|��}�|d}t�|d�r�t|j�p�t���|��||�Wd�n1s�wYqĈ��dS)Nsunknown archive type '%s'sfiless*cannot give prefix when archiving to filescs>�r�|�sdS|�}�r��||�}���||||�dSr!)�
wwritedatar��name�mode�islink�getdatar()�archiver�decoderr�rur(r)rq�szoverridearchive.<locals>.writersuisarchivemetas.hg_archival.txt�Fc�
t���Sr!)r�
buildmetadatar(r�r(r)r*��
z!overridearchive.<locals>.<lambda>�4largefile %s not found in repo store or system cachecr�r!)r�readfiler()r�r(r)r*�r��x���lr�r�)r�r�rrsrtr�	archiversr	r�r�
tidyprefix�date�
configboolrr(rrT�findfile�stripr��substate�
workingsubr]�
subdirmatcherrr�r��nullcontextmanager�archive�done)r�rurG�node�kindr�rr��mtimer�rqr%�ffr�r1�subpath�sub�submatch�	subprefixr()r�r�r�rr�r�rur)�overridearchive�sr�
�
�


���� 
����r�c	s�t��jd�}|r
�jjs|������S���jd��jd}�j|}|��dur8t��j	�j|���������fdd�}	|D]M�|�
��}
|�j}t�
��}|dur�|��durxt��j|������durwt�td�|��n|�|���fdd�}|	�d	|
vr�d
p�dd|
v|�qEt|j�D]:}
|�|
�}t�|
��}�|
d
}t�|d�r�t|j�p�t���|��||��Wd�n1s�wYq�dS)Nr�)shgrcs@�r���sdS|�}�r�j�||�}���||||�dSr!)r�r�rr�)r�r�r%rr�rur(r)rqszhgsubrepoarchive.<locals>.writer�cst�tj�����Sr!)rr�r�r�r�r()r�r�r(r)r*#sz"hgsubrepoarchive.<locals>.<lambda>r�r�r�r�r�r�)rr�r�r��_get�_stater�rrsrtrr(rrTr�r�r	r�rr�r�r�r]r�r�r�)r�rur�r�rr��	lfenabledryr�rqr�r�r1r�r�r�r�r()r�r�r%rr�r�rur)�hgsubrepoarchive�sT




���� 
�����r�s
bailifchangedcOsp||g|�Ri|��t|��|��}Wd�n1swY|js/|js/|js/|jr6t�td���dS)Nsuncommitted changes)	r�rjr�r�r\r�r	r�r)r�rurrr�r(r(r)�overridebailifchanged;s

��r�spostcommitstatuscOsBt|��||g|�Ri|��Wd�S1swYdSr!r�)r�rurrr(r(r)�postcommitstatusDs
$�r�sforgetc		s�t||d���}	||||	|||||�\}
}t||d����t|��|j�dd�}Wd�n1s5wY|d���t|j|j|j|j	�}
�fdd�|
D�}
|
D]"}t
�|�}||jvr{|j
�|�s{|�td�||��|
�|�qY|
D]}|js���|�s�|�td�||��q~|���:t
�||�}|
D]}|�|�q�|�|���dd�|
D�}|D]
}|j
j|dd�q�|d�|��Wd�n1s�wY|
��fd	d
��D��|��fdd
�|
D��|
|fS)NTr�cr�r(r"rUr&r(r)r2_r�z!cmdutilforget.<locals>.<listcomp>s+not removing %s: file is already untracked
r�cSr�r(r"rUr(r(r)r2tr�r�c3s �|]}|���vr|VqdSr!)rSrUrVr(r)r�ys�z cmdutilforget.<locals>.<genexpr>c3s�|]	}|�vr|VqdSr!r(rU)�rejectedr(r)r�zs�)rIr'rBr�rjr�r�r�r�r�rr#r�rdr�rcrrhrirbrkrlr�rqrrr�r�r�)r�rtrurr�rxr�r��interactiver�rW�forgotr�r�r%rgr�r�r()rAr'r�r)�
cmdutilforgetJsV�

�
�
��
�
r�csft��t����fdd�}t�|||��r/t�||����}�D]\}}||s.|||�q!dSdS)z�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.
    cs,||f}|�vr��|���|�dSdSr!�rs)�fn�lfhashr5��knowns�lfhashesr(r)�dedup�s

�z_getoutgoings.<locals>.dedupN)r=r�getlfilestouploadr�	openstorere)ru�otherr��addfuncr��lfexistsr�r�r(r�r)�
_getoutgoings~s	
��r�cs�|�dd�rdt���jri���fdd�}��fdd�}nt����fdd�}dd�}t||||��s=��td��dS��td	�t���t��D]}��t�	|�d
�||�qL��d
�dSdS)Nr�cs,|�vrg�|<�|�|���|�dSr!)rhrs�r�r��r��touploadr(r)r��szoutgoinghook.<locals>.addfunccs$t�|�D]	}��d|�qdS)Ns    %s
)r�r�r�)r�rtr(r)�
showhashes�s�z outgoinghook.<locals>.showhashesc���|���|�dSr!r�r�r�r(r)r���
cSrMr!r()r�r(r(r)r��sslargefiles: no files to upload
s$largefiles to upload (%d entities):
�
)
r�r=�	debugflagr�rjrr�r�rrT)rtrur�ryr�r�r��filer()r�r�rtr)�outgoinghook�s(�
�r�soutgoingsdisplay outgoing largefilescOs||i|��Sr!r(r�r(r(r)�_outgoingcmd�sr�c
s�|�dd�}|dur|rdSdS|rX|d\}}}}|dur'|�td��dSt��t����fdd�}	t|||j|	��sG|�td	��dS|�td
�t��t��f�dSdS)Nr�F)FT�FFrslargefiles: (no remote repo)
cr�r!r�r�r�r(r)r��r�z"summaryremotehook.<locals>.addfuncs!largefiles: (no files to upload)
s/largefiles: %d entities for %d files to upload
)rXrjrr=r�r�r�)
rtrury�changes�largeoptr�branch�peer�outgoingr�r(r�r)�summaryremotehook�s,���r�ssummarycOsFt|��|||g|�Ri|��Wd�dS1swYdSr!r�r�r(r(r)�overridesummary�s
"�r�s	addremovec	s�|duri}t�|�s||||||�St�|j|�}|jt��gdddd�\}�}�jrPt�|�}	|	j	���fdd�|	_	t
|j|d|	||�d�fit�
|���t|j|d||fit�
|���\}
}t||d��|
�}||||||�S)NF�r��ignoredr��unknowncs|�jvo�|�Sr!)r�r$�r@r�r(r)r*sz"scmutiladdremove.<locals>.<lambda>Tsdry_run)rrZrlrtrjr]r?r�r;r@r�rXr�	strkwargsr�rIr')r�rurwr�rxryr��unsure�mtime_boundaryrAr�rWr(r�r)�scmutiladdremove�sB
�
���
�rspurgecsV�����j�							d���fdd�	}|�_|��g|�Ri|����_dS)Nr�Fc	sh�|||||||�}t������fdd�|jD�}�fdd�|jD�}t�|j|j|j|j	|||j
�S)Nc�g|]
}��|�js|�qSr(�r[�any_trackedrU�r�r(r)r2C�
��z9overridepurge.<locals>.overridestatus.<locals>.<listcomp>crr(rrUrr(r)r2Fr)rrlr�r�rrjr�r�r\r�r�)�node1�node2rr�r�r��listsubreposr���	oldstatusrurtrr)r�6s	�
�
��z%overridepurge.<locals>.overridestatus)r�NNFFFF)r�rj)r�rtru�dirsryr�r(r	r)�
overridepurge(s�
rsrollbackcs������j��}�fdd��jD�}||�fi|��}�j��}||kr/|Wd�S�d}�jD]8}	t�|	�rn|�|	��j�|	�jrR�jj	|	dd�q6|	|vrf||	}
��
|	|
��|
���q6t�
�|	dd�q6|D]
}�jj	|dd�qqWd�|S1s�wY|S)Ncs(h|]}t�|�r�j�|�js|�qSr()rrDr�r[r\rUr=r(r)�	<setcomp>Vs���z#overriderollback.<locals>.<setcomp>r�Tr�rLF)rkr��parentsrrD�discardr[r\rdr�r'r(rrm)r�rtrury�before�orphansr�r��pctxr%�fctxr#r(r=r)�overriderollbackRs8


�
�


��
��rs
transplantcOsv|�d�}|j�t�|��|j�dd��z|||g|�Ri|��}W|j��|j��|S|j��|j��w)Nr�c_rMr!r(r�r(r(r)r*wr6z$overridetransplant.<locals>.<lambda>)rXr�rhrr�r�r�)r�rtru�revsryr�r�r(r(r)�overridetransplantss



�rscatc
s�t�|�}t�||�d��}d}t��t�||f||�}|j���fdd�}	|	|_|j	���fdd�}
|
|_	|j
��fdd�}||_
|�|�D]�}tj
||�d	�|d
���}
t�|�}|dusc�|�rz||��}|�d�rt|�||�}|
�|�nUt�||�}t�|j|�s�t�|�}|�||fg�\}}t|�dkr�t�td�|��t�|j|�}t|d
��}t�|�D]}|
�|�q�Wd�n1s�wYWd�n1s�wYd}qH|S)Nsrevrcs4�|�rdSt�|�}|durdS��|��|�S�NTF)rrTrs)r%r/)�notbadr9r(r)r��s

zoverridecat.<locals>.lfmatchfncs|�vr�||�dSdSr!r()r%r�)r�	origbadfnr(r)�lfbadfn�s�zoverridecat.<locals>.lfbadfncs<|tjkrdS�|�}|r|St�|�}|durdS�|�Sr)rr�rT)�dir�retr/)�origvisitdirfnr(r)�lfvisitdirfn�s

z!overridecat.<locals>.lfvisitdirfnsoutput)�pathnamesdecodes8largefile %s is not in cache and could not be downloadedsrbr) r�byteskwargsr�	revsinglerXr=rrr@rW�visitdirr`r�makefileobjrrTr(r�rqr%�inusercachertrr�r�r	r�r�
usercachepathrr�
filechunkiter)r�rtru�file1r�ryr��errrAr�rrr%�fpr/r(rQ�storer�r�r��fpin�chunkr()rrr9rr)�overridecat�sX
	


�������r-s_updatec
OsB|�dd�}|o|��}|����t�|j|�}	|	jt��gdddd�\}
}}t|j	�}
|d}||}|
|j
D]6}|j�|�}|j�
|�sJq;t�|�}t�|�}t�|||t�|��||vrq|t�||�krq|
�|�q;|jD]}t�|�}||vr�qut�|||�qu|
D]}|	�|�q�|	�|���t�|�}|�d�}|r�|��r�t�d��|	���Q|||||g|�Ri|��}t�|�}t�||�}|
�|�D]
}|	j |ddd�q�|	�|���|s�|s�|r�|�!|j"|j#�t$j%|j|||d	�Wd�n	1�swY|Wd�S1�swYdS)
NrwFTr�r��wcs1largefiles is not compatible with in-memory merger)rjr`)&rXr?rkrrlrtrjr]r=r�r�rdr�re�hashfiler#rmrnr%rsr�rb�set_possibly_dirtyrqrrrd�
isinmemoryr	�ProgrammingErrorrre�
differencer r�r�r\rrf)r�rur�r	r�rrrw�partialr�r�r�r��oldcleanr�dctxr1�lfileabsr�r#rgrhr.r�rirjr(r(r)�mergeupdate�sr�


��
�



�


��&�r8smarktouchedc	Os`|||g|�Ri|��}g}|D]}t�|�}|dur |�|�q|r.tj|j||ddd�|S)NFT)rjr_r`)rrTrhrrfrt)	r�rurSrrr�rjr%r/r(r(r)�scmutilmarktouched s 

��r9spreservedrequirementsssupporteddestrequirementscCs ||�}d|jvr|�d�|S)Nr�)�requirementsrs)r�ru�reqsr(r(r)�upgraderequirements5s

r<slargefile://sopencKsN|�t�r|rd}t�|��|tt�d�}t�||�S|||fd|i|��S)Ns'cannot use data on a 'largefile://' urlr()r��	_lfschemer	r2r�r�getlfile)r�rt�url_r(rr��lfidr(r(r)�
openlargefileAs

rAr!r�)F)TNrLNNr�)l�__doc__�
__future__rr;r��mercurial.i18nr�mercurial.pycompatr�mercurial.hgwebr�	mercurialrrr�	copiesmodr	r
rrr
rrrr]rr�
mergestatemodrrrrrr�urlmodr�mercurial.upgrade_utilsr�upgrade_actions�rrrrr�r�rr��ehr��MergeActionrrBrIr�r�r�r��wrapcommandr�r�r��	hgsubrepor�r�r�r�r�r�r�rr"r0r7rZrkr{r~r��revsetpredicater�r�r�r��extsetupr�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr-r8r9r<r=rAr(r(r(r)�<module>sxX


H
J
����







x�����
�


 

n

�


,
O�������

	

���







�`
C




3(�
"�

4
)
 


G

W





https://t.me/RX1948 - 2025