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/remotefilelog/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

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

�]Lb�8�@s�ddlmZddlZddlZddlZddlZddlZddlmZddl	m
Z
mZddlm
Z
ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZddlmZmZej Z!d	d
�Z"da#dd
�Z$dd�Z%dd�Z&dd�Z'dd�Z(dd�Z)dd�Z*dS)�)�absolute_importN)�_)�bin�hex)�open)�changegroup�	changelog�context�error�
extensions�match�pycompat�scmutil�store�streamclone�util�wireprotoserver�wireprototypes�wireprotov1server�)�	constants�shallowutilcs(t|��fdd�}t�tjd|�dS)zGSets up a normal Mercurial repo so it can serve files to shallow repos.cs�|jpg}tj|vrTd}	d}
|jpgD]#}|�d�r&|td�d��d�}	q|�d�r6|td�d��d�}
qt���|	s?|
rIt��jdd|	|
��t	�fdd�|D��}||||||g|�Ri|��S)Nsincludepattern=�sexcludepattern=�csg|]}�|�s|�qS�r��.0�f��mr�I/usr/lib/python3/dist-packages/hgext/remotefilelog/remotefilelogserver.py�
<listcomp>Csz6setupserver.<locals>.generatefiles.<locals>.<listcomp>)
�_bundlecapsr�BUNDLE2_CAPABLITY�
startswith�len�splitr�always�root�list)�orig�self�changedfiles�	linknodes�
commonrevs�source�args�kwargs�caps�includepattern�excludepattern�cap��reporr �
generatefiles/s.



��
���z"setupserver.<locals>.generatefiless
generatefilesN)�onetimesetupr�wrapfunctionr�cgpacker)�uir7r8rr6r �setupserver*s
�r=Fcs�trdSdatjdddd�t�tjdddd�t�tjd	d
dd�t�Gdd�dt�}|���fd
d�}|dftjd<d�fdd�	}t�	t
d|��fdd�}t�	td|�dd�}t�	tjd|�dd�}t�	t
d|�dS)z9Configures the wireprotocol for both clients and servers.NT�x_rfl_getflogheadsspathspull)�
permission�x_rfl_getfilesr�
x_rfl_getfiles	file nodec@seZdZdZdZdZdS)z!onetimesetup.<locals>.streamstateNF)�__name__�
__module__�__qualname__r�
shallowremote�noflatmfrrrr �streamstatebsrGc
s�d}d}|�d�}|r|�d�}|�d�}|r|�d�}�j}�j}�j}zGd�_t���_|�d�dk�_|s:|rEt�|jdd||��_t�||��t	�j
��t	�j
�����fdd	�}	t�|	��W|�_|�_|�_S|�_|�_|�_w)
NsincludepatternrsexcludepatternTsnoflatmanifestsTruerc3s$��V�V�jD]}|Vq
dS�N)�gen)�value��first�second�	streamresrr rI�s�
�z5onetimesetup.<locals>.stream_out_shallow.<locals>.gen)
�getr&rErrFr'r(r�stream�nextrIrrN)
r7�proto�otherr3r4�raw�
oldshallow�oldmatch�oldnoflatmfrI��staterKr �stream_out_shallowis<




�

�z(onetimesetup.<locals>.stream_out_shallow�*sstream_out_shallowc3s���jr�t�|�rkt|jj�d}|jjj}tj�	|jjd�g}|rk|�
�}||dd�D]<\}}}	|d|}
|tjkr^|
�
d�s^|
�
d�s^t�|
|d��}t�|�}tj}
|
||	jfV|tjkrh|�|
�q,|s"t�|�r�|j��D]\}
}}|�d�r�|�
d�s�|�
d�r�|
||fVqu�j}|r�|��s�|j��D]\}
}}|d	d
�}��|�s�|
||fVq�|j��D]}�jr�|ddd�dkr�q�|Vq�dSt�|�r�t�td
���|||�D]}|Vq�dS)NrsdataT)�stat�/s.is.dsmeta/�����s00manifest.s0Cannot clone from a shallow repo to a full repo.) rEr�	isenabledr%r�path�rawvfs�readdir�os�join�popr\�S_IFREG�endswithr�pconvert�	decodedir�FILETYPE_OTHER�st_size�S_IFDIR�appendr�istreemanifest�	datafilesr$rr'�topfilesrFr
�Abortr)r*r7�matcher�striplenrd�visit�pr�kind�st�fp�n�d�t�u�sr�xrXrr �_walkstreamfiles�sd�


�


��

���
��
��z&onetimesetup.<locals>._walkstreamfiless_walkstreamfilescsN|||�}t�|�s��dd�r%t|t�r|�tj�|�d�|�d�|S)N�
remotefilelog�serverr>rA)rra�
configbool�
isinstance�_sshv1serverror�NETWORK_CAP_LEGACY_SSH_GETFILES)r*r7rRr2)r<rr �
_capabilities�s
�


z#onetimesetup.<locals>._capabilitiess
_capabilitiesc_sD|j}t�|d�r|jr|j�|j�|j��S||g|�Ri|��S)Nsforcelinkrev)�_repor�safehasattr�forcelinkrev�_filelog�linkrev�rev�	_filenode)r*r+r0r1r7rrr �_adjustlinkrev�sz$onetimesetup.<locals>._adjustlinkrevs_adjustlinkrevcSs|dkrdS||�S)Nr@Fr)r*�cmdrrr �_iscmd�szonetimesetup.<locals>._iscmdsiscmdrH)�onetimer�wireprotocommand�getflogheads�getfiles�getfile�object�commandsrr:rr	�basefilectxr)r<rGrZr�r�r�r�r)rYr<r r9PsD������)
�5�r9c
Cs�tj�||t|��}tj�|�rtj�|�dkr�|j||d�}|��|jkr4t	�	|j
�|_	|j||d�}t|�}t�
|�}t�d�}zatj�|�}tj�|�spzt�|�Wntyo}	z
|	jtjkre�WYd}	~	nd}	~	wwd}
z!z
t�|d�}
|
�|�Wnttfy�YnwW|
r�|
��n|
r�|
��wwWt�|�|St�|�wt|d��
}
|
��}Wd�|S1s�wY|S)Nr)�fileid�swbsrb)rerbrfr�exists�getsize�filectx�node�nullidr�svfs�createfileblob�zlib�compress�umask�dirname�makedirs�OSError�errno�EEXISTr�atomictempfile�write�IOError�closer�read)r7�	cachepathrbr��
filecachepathr��text�oldumaskr��exrrrr �
_loadfileblob�sX

�������
��
�

��r�cs*��|�}|��}d��fdd�|D��S)z-A server api for requesting a filelog's heads�
c3s"�|]}|�jkrt|�VqdSrH)r�r)r�headr6rr �	<genexpr>s� zgetflogheads.<locals>.<genexpr>)�file�headsrf)r7rRrb�flogr�rr6r r�s
r�cCsdt�|�rdtd�S|j�dd�}|stj�|jd�}t|�	��}||j
kr)dSdt||||�S)afA server api for requesting a particular version of a file. Can be used
    in batches to request many files at once. The return protocol is:
    <errorcode><data/errormsg> where <errorcode> is 0 for success or
    non-zero for an error.

    data is a compressed blob with revlog flag and ancestors information. See
    createfileblob for its content.
    s1�+cannot fetch remote files from shallow repor��servercachepath�remotefilelogcaches0)rrarr<�configrerbrfr�stripr�r�)r7rRr�r�r�rrr r�"s
	
r�csJt���rt�td���t�t�st�td�����fdd�}t�|��S)zDA server api for requesting particular versions of particular files.r�s/cannot fetch remote files over non-ssh protocolc3s���j}�j�dd�}|stj��jd�}	|��dd�}|s"dSt|dd��}|�jkr3dVq|dd�}t	�|||�}dt
|�|fV�j��q)	Nr�r�r�T����(s0
s%d
%s)
�_finr<r�rerbrf�readlinerr�r�r%�_fout�flush)�finr��requestr�rbr��rRr7rr �streamer=s$�

�zgetfiles.<locals>.streamer)	rrar
rsrr�r�rrN)r7rRr�rr�r r�6s

r�cCs |��}|��}|j�|�}|dkr|��}n|�|�}|j}|g}zZd|_|�dd�|�	�D��d}|D]A}|�
�}	|j}
|j}t|	�dkrN|	d�
�}
t|	�dkrZ|	d�
�}d}|��}
|
rf|
d}|��}|d|�
�|
|||f7}q6Wd|_nd|_wt�t|�|�}d	|||fS)
a�
    format:
        v0:
            str(len(rawtext)) + '' + rawtext + ancestortext
        v1:
            'v1' + '
' + metalist + '' + rawtext + ancestortext
            metalist := metalist + '
' + meta | meta
            meta := sizemeta | flagmeta
            sizemeta := METAKEYSIZE + str(len(rawtext))
            flagmeta := METAKEYFLAG + str(flag)

            note: sizemeta must exist. METAKEYFLAG and METAKEYSIZE must have a
            length of 1.
    rTcSsg|]}|�qSrrrrrr r!zsz"createfileblob.<locals>.<listcomp>rrs%s%s%s%s%sFs%s%s%s)�filelog�filerev�_revlog�flags�data�rawdatar�r��extend�	ancestors�parentsr�r%�filenode�renamedr�r�buildfileblobheader)r�r��frev�revlogflagsr�r7r��ancestortext�ancestorctxr��p1�p2�copyname�rename�linknode�headerrrr r�[sH


��r�cCs"|j�dd�s	dSt�}|�d�}|j�d�}|D]!}||��}t�|�D]\}}t	j
�||t|��}	|�|	�q&q|j�
dd�}
t��|
ddd}|jtd�d	d
�}|�d�t	�|�D])\}
}}|D]!}t	j
�|
|�}|��||vrzqht	�|�}|j|kr�t	�|�qhqa|��dS)Nr�r�sheads(tip~25000:) - nullr�sserverexpiration��<sremoving old server cachesfiles)�unitr)r<r��set�revs�vfsrf�manifestr
�	iteritemsrerbr�add�	configint�time�makeprogressr�update�walk�	incrementr\�st_mtime�remove�complete)r<r7�neededfilesr�r�r��mf�filenamer�r��days�
expiration�progressr(�dirs�filesr��filepathr\rrr �gcserver�s6
�



��
r�)+�
__future__rr�rer\r�r��mercurial.i18nr�mercurial.noderr�mercurial.pycompatr�	mercurialrrr	r
rrr
rrrrrrr�rr�sshv1protocolhandlerr�r=r�r9r�r�r�r�r�r�rrrr �<module>s,@#"*%?

https://t.me/RX1948 - 2025