HEX
Server: Apache
System: Linux infong-uk86 4.4.400-icpu-106 #2 SMP Mon Sep 15 08:23:40 UTC 2025 x86_64
User: u44115835 (4976590)
PHP: 8.4.17
Disabled: NONE
Upload Files
File: //kunden/lib/python3/dist-packages/dulwich/__pycache__/cli.cpython-39.pyc
a

�/�_XQ�)@sDdZddlZddlZddlmZddlZddlZddlmZmZddl	m
Z
ddlmZddl
mZddlmZdd	lmZmZdd
lmZddlmZdd
�Zdd�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�Z Gdd�de�Z!Gdd�de�Z"Gd d!�d!e�Z#Gd"d#�d#e�Z$Gd$d%�d%e�Z%Gd&d'�d'e�Z&Gd(d)�d)e�Z'Gd*d+�d+e�Z(Gd,d-�d-e�Z)Gd.d/�d/e�Z*Gd0d1�d1e�Z+Gd2d3�d3e�Z,Gd4d5�d5e�Z-Gd6d7�d7e�Z.Gd8d9�d9e�Z/Gd:d;�d;e�Z0Gd<d=�d=e�Z1Gd>d?�d?e�Z2Gd@dA�dAe�Z3GdBdC�dCe�Z4GdDdE�dEe�Z5GdFdG�dGe�Z6GdHdI�dIe�Z7GdJdK�dKe�Z8GdLdM�dMe�Z9GdNdO�dOe�Z:GdPdQ�dQe�Z;GdRdS�dSe�Z<GdTdU�dUe�Z=GdVdW�dWe�Z>GdXdY�dYe>�Z?GdZd[�d[e�Z@Gd\d]�d]e�ZAGd^d_�d_e�ZBGd`da�dae�ZCGdbdc�dce�ZDGddde�dee>�ZEGdfdg�dge�ZFGdhdi�die�ZGGdjdk�dke�ZHeee@eAe'e(e)eGe2e#e-e$e%ee e!eHe&e"eFe8e9e:e;e<e5e?e0e1e.ee,eEe7e+e/e*e6e3e4dl�(ZIdsdmdn�ZJeKdok�r@dpejLv�reMedqd��re�ejNe�e�ejOe�e�PeJejQdrd���dS)tz�Simple command-line interface to Dulwich>

This is a very simple command-line wrapper for Dulwich. It is by
no means intended to be a full-blown Git command-line interface but just
a way to test Dulwich.
�N)�getopt)�Dict�Type��	porcelain)�get_transport_and_path)�ApplyDeltaError)�Index)�Pack�
sha_to_hex)�write_tree_diff)�RepocCst�d�dS)N�)�sys�exit)�signal�frame�r�-/usr/lib/python3/dist-packages/dulwich/cli.py�
signal_int/srcCsddl}|��dS)Nr)�pdbZ	set_trace)rrrrrr�signal_quit3src@seZdZdZdd�ZdS)�CommandzA Dulwich subcommand.cCst|j��dS)zRun the command.N)�NotImplementedError�run��self�argsrrrr;szCommand.runN)�__name__�
__module__�__qualname__�__doc__rrrrrr8src@seZdZdd�ZdS)�cmd_archivecCszt��}|jdtdd�|�|�\}}|�d�}|jr`t|j�\}}|j||t	j
jt	jjd�nt
jd|t	j
t	jd�dS)Nz--remotez+Retrieve archive from specified remote repo)�type�helpr)Zwrite_error�.)�	outstreamZ	errstream)�optparse�OptionParser�
add_option�str�
parse_args�pop�remoter�archiver�stdout�write�stderrr)rr�parser�optionsZ
committish�client�pathrrrrBs �

��zcmd_archive.runN�rrr rrrrrr"@sr"c@seZdZdd�ZdS)�cmd_addcCs"t|dg�\}}tjd|d�dS�N�r%)�paths)rr�add�rr�optsrrrrUszcmd_add.runNr6rrrrr7Ssr7c@seZdZdd�ZdS)�cmd_rmcCs"t|dg�\}}tjd|d�dSr8)rr�rmr<rrrr]sz
cmd_rm.runNr6rrrrr>[sr>c@seZdZdd�ZdS)�cmd_fetch_packcsft�ddg�\}�t|�}t��d��\}}td��d|vrF�jj}n��fdd�}|�|�|�dS)Nr9�allrr%�--allcs�fdd��D�S)Ncsg|]}|�jvr|�qSr)�object_store)�.0�y)�rrr�
<listcomp>n�z?cmd_fetch_pack.run.<locals>.determine_wants.<locals>.<listcomp>r)�x�rrFrr�determine_wantsmsz+cmd_fetch_pack.run.<locals>.determine_wants)r�dictrr,r
rCZdetermine_wants_all�fetch)rrr=r4r5rKrrJrres
zcmd_fetch_pack.runNr6rrrrr@csr@c@seZdZdd�ZdS)�	cmd_fetchcCslt|dg�\}}t|�}t|�d��\}}td�}|j||tjjd�}t	d�|�
�D]}t	d|�qVdS)Nr9rr%)ZprogresszRemote refs:z%s -> %s)rrLrr,r
rMrr/r0�print�items)rrr=r4r5rF�refs�itemrrrrtsz
cmd_fetch.runNr6rrrrrNrsrNc@seZdZdd�ZdS)�cmd_fsckcCs@t|dg�\}}t|�}t�d�D]\}}td||f�q"dS)Nr9r%z%s: %s)rrLr�fsckrO)rrr=�obj�msgrrrr�szcmd_fsck.runNr6rrrrrSsrSc@seZdZdd�ZdS)�cmd_logcCsXt��}|jddddd�|jddddd�|�|�\}}tjd	||j|jtj	d
�dS)Nz	--reverse�reverse�
store_truez*Reverse order in which entries are printed��dest�actionr$z
--name-status�name_statusz'Print name/status for each changed filer%)r:rXr]r&)
r'r(r)r+r�logrXr]rr/�rrr2r3rrrr�s
���zcmd_log.runNr6rrrrrW�srWc@seZdZdd�ZdS)�cmd_diffcCsjt|dg�\}}|gkr*td�t�d�td�}|d}||}||jd}ttj|j|j	|j	�dS)Nr9zUsage: dulwich diff COMMITIDrr%r)
rrOrrr
�parentsrr/rC�tree)rrr=rFZ	commit_id�commitZ
parent_commitrrrr�s
�zcmd_diff.runNr6rrrrr`�sr`c@seZdZdd�ZdS)�
cmd_dump_packc	Cst|dg�\}}|gkr*td�t�d�tj�|d�\}}t|�}td|���tdt	|�
���|��sztd�tdt|��|D]�}ztd	||�Wq�t
y�}ztd
||f�WYd}~q�d}~0t�y}ztd||f�WYd}~q�d}~00q�dS)Nr9z!Usage: dulwich dump-pack FILENAMErrzObject names checksum: %szChecksum: %szCHECKSUM DOES NOT MATCHz
Length: %dz	%sz	%s: Unable to resolve base %sz	%s: Unable to apply delta: %r)rrOrr�osr5�splitextr
�namerZget_stored_checksumZcheck�len�KeyErrorr)	rrr=�basename�_rIrg�k�errrr�s$
$zcmd_dump_pack.runNr6rrrrrd�srdc@seZdZdd�ZdS)�cmd_dump_indexcCsVt|dg�\}}|gkr*td�t�d�|d}t|�}|D]}t|||�q>dS)Nr9z"Usage: dulwich dump-index FILENAMErr)rrOrrr	)rrr=�filename�idx�orrrr�s
zcmd_dump_index.runNr6rrrrrn�srnc@seZdZdd�ZdS)�cmd_initcCsJt|ddg�\}}t|�}|gkr,t��}n|d}tj|d|vd�dS)Nr9�barer�--bare)rs)rrLre�getcwdr�init)rrr=r5rrrr�s
zcmd_init.runNr6rrrrrr�srrc@seZdZdd�ZdS)�	cmd_clonecCs�t��}|jddddd�|jddtdd	�|�|�\}}|gkrTtd
�t�d�|�d�}t	|�dkrv|�d�}nd}t
j|||j|j
d
�dS)Nrtrsz$Whether to create a bare repository.rY)r[r$r\z--depth�depthzDepth at which to fetch)r[r#r$z%usage: dulwich clone host:path [PATH]rr)rsrx)r'r(r)�intr+rOrrr,rhr�clonersrx)rrr2r3�source�targetrrrr�s"��

z
cmd_clone.runNr6rrrrrw�srwc@seZdZdd�ZdS)�
cmd_commitcCs0t|ddg�\}}t|�}tjd|dd�dS)Nr9�messager%�	--message)r~)rrLrrcr<rrrr�szcmd_commit.runNr6rrrrr}�sr}c@seZdZdd�ZdS)�cmd_commit_treecCsPt|ddg�\}}|gkr,td�t�d�t|�}tjd|d|dd�dS)	Nr9r~zusage: dulwich commit-tree treerr%rr)rbr~)rrOrrrLrZcommit_treer<rrrrs
zcmd_commit_tree.runNr6rrrrr�sr�c@seZdZdd�ZdS)�cmd_update_server_infocCst�d�dS�Nr%)rZupdate_server_inforrrrr
szcmd_update_server_info.runNr6rrrrr�sr�c@seZdZdd�ZdS)�cmd_symbolic_refcCsLt|dddg�\}}|s*td�t�d�|�d�}tjd|d|vd	�dS)
Nr9zref-name�forcez.Usage: dulwich symbolic-ref REF_NAME [--force]rrr%z--force)�ref_namer�)rrOrrr,rZsymbolic_ref)rrr=r�rrrrs

zcmd_symbolic_ref.runNr6rrrrr�sr�c@seZdZdd�ZdS)�cmd_showcCs t|dg�\}}t�d|�dS�Nr9r%)rr�showr<rrrrszcmd_show.runNr6rrrrr�sr�c@seZdZdd�ZdS)�
cmd_diff_treecCsHt|dg�\}}t|�dkr.td�t�d�t�d|d|d�dS)Nr9�z*Usage: dulwich diff-tree OLD-TREE NEW-TREErr%r)rrhrOrrrZ	diff_treer<rrrr&s

zcmd_diff_tree.runNr6rrrrr�$sr�c@seZdZdd�ZdS)�cmd_rev_listcCs>t|dg�\}}t|�dkr.td�t�d�t�d|�dS)Nr9rz#Usage: dulwich rev-list COMMITID...r%)rrhrOrrrZrev_listr<rrrr0s

zcmd_rev_list.runNr6rrrrr�.sr�c@seZdZdd�ZdS)�cmd_tagcCsXt��}|jddddd�|jddddd�|�|�\}}tjd	|d
|j|jd�dS)N�-az--annotatedzCreate an annotated tag.rY)r$r\z-sz--signzSign the annotated tag.r%r)�	annotated�sign)r'r(r)r+rZ
tag_creater�r�r_rrrr:s���zcmd_tag.runNr6rrrrr�8sr�c@seZdZdd�ZdS)�
cmd_repackcCs&t|dg�\}}t|�}t�d�dSr�)rrLr�repackr<rrrrJszcmd_repack.runNr6rrrrr�Hsr�c@seZdZdd�ZdS)�	cmd_resetcCsdt|dgd��\}}t|�}d}d|vr.d}nd|vr<d}nd|vrHd}tjd	g|�Rd
|i�dS)Nr9)�hard�soft�mixedz--hardr�z--softr�z--mixedr�r%�mode)rrLr�reset)rrr=r�rrrrRsz
cmd_reset.runNr6rrrrr�Psr�c@seZdZdd�ZdS)�
cmd_daemoncCs�ddlm}ddlm}t��}|jdddddd	�|jd
ddt|d
d�|�|�\}}|�	�t
|�dkrv|d}nd}ddlm}|j||j
|jd�dS)Nr��	log_utils)�TCP_GIT_PORT�-l�--listen_address�listen_addressZ	localhost�Binding IP address.�r[�defaultr$�-p�--port�port�Binding TCP port.�r[r#r�r$rr%r�Zaddressr�)�dulwichr�Zdulwich.protocolr�r'r(r)ryr+�default_logging_configrhr�daemonr�r�)rrr�r�r2r3�gitdirrrrrras(
��

�zcmd_daemon.runNr6rrrrr�_sr�c@seZdZdd�ZdS)�cmd_web_daemoncCs�ddlm}t��}|jdddddd�|jd	d
dtdd
d�|�|�\}}|��t|�dkrj|d}nd}ddlm	}|j
||j|jd�dS)Nrr�r�r�r�r9r�r�r�r�r�i@r�r�rr%rr�)
r�r�r'r(r)ryr+r�rhrZ
web_daemonr�r�)rrr�r2r3r�rrrrrys&
��

�zcmd_web_daemon.runNr6rrrrr�wsr�c@seZdZdd�ZdS)�cmd_write_treecCs0t��}|�|�\}}tj�dt�d��dS)Nz%s
r%)r'r(r+rr/r0rZ
write_treer_rrrr�szcmd_write_tree.runNr6rrrrr��sr�c@seZdZdd�ZdS)�cmd_receive_packcCs>t��}|�|�\}}t|�dkr,|d}nd}t�|�dS�Nrrr%)r'r(r+rhrZreceive_pack�rrr2r3r�rrrr�s
zcmd_receive_pack.runNr6rrrrr��sr�c@seZdZdd�ZdS)�cmd_upload_packcCs>t��}|�|�\}}t|�dkr,|d}nd}t�|�dSr�)r'r(r+rhrZupload_packr�rrrr�s
zcmd_upload_pack.runNr6rrrrr��sr�c@seZdZdd�ZdS)�
cmd_statusc	
Cs,t��}|�|�\}}t|�dkr,|d}nd}t�|�}tdd�|j��D��r�t	j
�d�|j��D]0\}}|D]"}t	j
�d||�t	�
��f�qtqht	j
�d�|jr�t	j
�d	�|jD]}t	j
�d
|�t	�
���q�t	j
�d�|j�r(t	j
�d�|jD]}t	j
�d
|��qt	j
�d�dS)Nrrr%css|]\}}|VqdS)Nr)rD�kind�namesrrr�	<genexpr>�rHz!cmd_status.run.<locals>.<genexpr>zChanges to be committed:

z	%s: %s
�
z Changes not staged for commit:

z	%s
zUntracked files:

)r'r(r+rhr�status�anyZstagedrPrr/r0�decode�getfilesystemencodingZunstagedZ	untracked)	rrr2r3r�r�r�r�rgrrrr�s4

�
�
zcmd_status.runNr6rrrrr��sr�c@seZdZdd�ZdS)�
cmd_ls_remotecCsft|dg�\}}t|�dkr.td�t�d�t�|d�}t|�D]}tj�	d|||f�qDdS)Nr9rzUsage: dulwich ls-remote URLrz%s	%s
)
rrhrOrrrZ	ls_remote�sortedr/r0)rrr=rQ�refrrrr�s
zcmd_ls_remote.runNr6rrrrr��sr�c@seZdZdd�ZdS)�cmd_ls_treecCs|t��}|jddddd�|jdddd�|�|�\}}z|�d�}Wnty\d}Yn0tjd	|tj	|j
|jd
�dS)Nz-rz--recursiverYzRecusively list tree contents.)r\r$z--name-onlyzOnly display name.rr%)r&�	recursive�	name_only)r'r(r)r+r,�
IndexErrorrZls_treerr/r�r�)rrr2r3Ztreeishrrrr�s 
��
�zcmd_ls_tree.runNr6rrrrr��sr�c@seZdZdd�ZdS)�cmd_pack_objectsc	Cs�t|ddg�\}}t|�}t|�dkr@d|vr@td�t�d�dd�tj��D�}|d}d|vr~ttj	d	tj	�}d}g}n$t
|d
d�}t
|dd�}||g}t�d
|||�|D]}|�
�q�dS)Nr9r/rz--stdoutz$Usage: dulwich pack-objects basenamecSsg|]}|���qSr)�strip)rD�linerrrrG�rHz(cmd_pack_objects.run.<locals>.<listcomp>r�bufferz.pack�wz.idxr%)rrLrhrOrr�stdin�	readlines�getattrr/�openrZpack_objects�close)	rrr=Z
object_idsrjZpackfZidxfr��frrrr�s"
zcmd_pack_objects.runNr6rrrrr��sr�c@seZdZdd�ZdS)�cmd_pullcCsJt��}|�|�\}}z|d}Wnty8d}Yn0t�d|�dS)Nrr%)r'r(r+r�r�pull)rrr2r3Z
from_locationrrrrs
zcmd_pull.runNr6rrrrr�sr�c@seZdZdd�ZdS)�cmd_pushcCsZt��}|�|�\}}t|�dkr4td�t�d�|d}|dd�}t�d||�dS)Nr�z)Usage: dulwich push TO-LOCATION REFSPEC..rrr%)	r'r(r+rhrOrrr�push)rrr2r3Zto_locationZrefspecsrrrrs
zcmd_push.runNr6rrrrr�
sr�c@seZdZdd�ZdS)�cmd_remote_addcCs0t��}|�|�\}}t�d|d|d�dS)Nr%rr)r'r(r+rZ
remote_addr_rrrrszcmd_remote_add.runNr6rrrrr�sr�c@seZdZiZdd�ZdS)�SuperCommandcCsp|s tdd�|j����dS|d}z|j|}Wn$tyZtd|d�YdS0|��|dd��S)NzSupported subcommands: %sz, Fr�No such subcommand: %sr)rO�join�subcommands�keysrir)rr�cmd�cmd_klsrrrr&s�zSuperCommand.runN)rrr r�rrrrrr�"sr�c@seZdZdeiZdS)�
cmd_remoter;N)rrr r�r�rrrrr�4s�r�c@seZdZdd�ZdS)�cmd_check_ignorecCs<t��}|�|�\}}d}t�d|�D]}t|�d}q&|S)Nrr%r)r'r(r+rZcheck_ignorerO)rrr2r3Zretr5rrrr=szcmd_check_ignore.runNr6rrrrr�;sr�c@seZdZdd�ZdS)�cmd_check_mailmapcCs8t��}|�|�\}}|D]}t�d|�}t|�qdSr�)r'r(r+rZ
check_mailmaprO)rrr2r3�argZcanonical_identityrrrrIs
zcmd_check_mailmap.runNr6rrrrr�Gsr�c@seZdZdd�ZdS)�cmd_stash_listcCsFt��}|�|�\}}t�d�D] \}}td||j�d�f�q dS)Nr%zstash@{%d}: %sr�)r'r(r+rZ
stash_listrOr~�rstrip)rrr2r3�i�entryrrrrSszcmd_stash_list.runNr6rrrrr�Qsr�c@seZdZdd�ZdS)�cmd_stash_pushcCs,t��}|�|�\}}t�d�td�dS)Nr%z'Saved working directory and index state)r'r(r+rZ
stash_pushrOr_rrrr\s
zcmd_stash_push.runNr6rrrrr�Zsr�c@seZdZdd�ZdS)�
cmd_stash_popcCs,t��}|�|�\}}t�d�td�dS)Nr%z+Restrored working directory and index state)r'r(r+rZ	stash_poprOr_rrrres
zcmd_stash_pop.runNr6rrrrr�csr�c@seZdZeeed�ZdS)�	cmd_stash)�listr,r�N)rrr r�r�r�r�rrrrr�ls�r�c@seZdZdd�ZdS)�cmd_ls_filescCs2t��}|�|�\}}t�d�D]}t|�q dSr�)r'r(r+rZls_filesrO)rrr2r3rgrrrrwszcmd_ls_files.runNr6rrrrr�usr�c@seZdZdd�ZdS)�cmd_describecCs(t��}|�|�\}}tt�d��dSr�)r'r(r+rOr�describer_rrrr�szcmd_describe.runNr6rrrrr�~sr�c@seZdZdd�ZdS)�cmd_helpcCs`t��}|jdddddd�|�|�\}}|jrTtd�tt�D]}td|�q@ntd	�dS)
Nr�rBrArYzList all commands.rZzAvailable commands:z  %sz�The dulwich command line tool is currently a very basic frontend for the
Dulwich python module. For full functionality, please see the API reference.

For a list of supported commands, see 'dulwich help -a'.
)r'r(r)r+rArOr��commands)rrr2r3r�rrrr�s
�zcmd_help.runNr6rrrrr��sr�)(r;r.zcheck-ignorez
check-mailmaprzrczcommit-treer�r�Zdiffz	diff-treez	dump-packz
dump-indexz
fetch-packrMrTr$rvr^zls-filesz	ls-remotezls-treezpack-objectsr�r�zreceive-packr-r�r�zrev-listr?r�Zstashr�zsymbolic-ref�tagzupdate-server-infozupload-packz
web-daemonz
write-treecCs~|durtj}t|�dkr4tdd�t����dS|d}zt|}Wn tyhtd|�YdS0|��|dd��S)Nrz Usage: dulwich <%s> [OPTIONS...]�|rr�)	r�argvrhrOr�r�r�rir)r�r�r�rrr�main�sr��__main__ZDULWICH_PDB�SIGQUITr)N)Rr!rerrr'r�typingrrr�rZdulwich.clientrZdulwich.errorsrZ
dulwich.indexr	Zdulwich.packr
rZ
dulwich.patchrZdulwich.repor
rr�objectrr"r7r>r@rNrSrWr`rdrnrrrwr}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�environr�r��SIGINTrr�rrrr�<module>s�
	



					�,