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/hgext/__pycache__/githelp.cpython-39.pyc
a

%0�_���%@sbdZddlmZddlZddlZddlmZddlmZm	Z	m
Z
mZmZm
Z
ddlmZdZiZe�e�Zdd	�Zed
ged�ejdd
�dd��Zdd�ZGdd�de�ZGdd�de�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Z d$d%�Z!d&d'�Z"d(d)�Z#d*d+�Z$d,d-�Z%d.d/�Z&d0d1�Z'd2d3�Z(d4d5�Z)d6d7�Z*d8d9�Z+d:d;�Z,d<d=�Z-d>d?�Z.d@dA�Z/dBdC�Z0dDdE�Z1dFdG�Z2dHdI�Z3dJdK�Z4dLdM�Z5dNdO�Z6dPdQ�Z7dRdS�Z8dTdU�Z9dVdW�Z:dXdY�Z;dZd[�Z<d\d]�Z=d^d_�Z>d`da�Z?dbdc�Z@ddde�ZAdfdg�ZBeeeeeee!e"e#e$e%e'e(e)e*e+e,e-e.e/e0e1e2e3e4e5e6e7e8e9e:e;e<e=eBe&dh�$ZCe>e?e@eAdi�ZDdS)jz�try mapping git commands to Mercurial commands

Tries to map a given git command to a Mercurial command:

  $ hg githelp -- git checkout master
  hg update master

If an unknown command or parameter combination is detected, an error is
produced.
�)�absolute_importN)�_)�encoding�error�	fancyopts�pycompat�	registrar�scmutil)�procutilsships-with-hg-corecCs<|�d�r|dd�Sd|vr*|�dd�}t�dd|�}|S)Nsorigin/�sHEAD�.s~$s~1)�
startswith�replace�re�sub)�s�r�//usr/lib/python3/dist-packages/hgext/githelp.py�convert,s
rsgithelp|gits
hg githelpT)ZhelpcategoryZ	helpbasiccOs�t|�dks$t|�dkr2|ddkr2t�td���|ddkrJ|dd�}|d}|tvrlt�td�|��|�d�|dd�}t|||g|�Ri|��S)zgsuggests the Mercurial equivalent of the given git command

    Usage: hg githelp -- <git command>
    r�sgits8missing git command - usage: hg githelp -- <git command>Nserror: unknown git command %ssgithelp)�lenr�Abortr�gitcommandsZpager)�ui�repo�args�kwargs�cmdrrr�githelp6s
$�
rcCsft|�}i}t|�}zt�t|�||d�}W�q4Wqtj�y0}z�d|jvrR�d|j|jvrtdt�|j�}n<d|j|jvr�dt�|j�}nt�	t
d�t�|j���z|�|�WnJt�yt
d�}t
d	�}tj	|t�|j�|t�|j�d
��Yn0|�
t
d�|�WYd}~qd}~00qtdd
�|D��}tdd
�t�|�D��}||fS)NTzrequires argumentz--�--�-�-sunknown option %ss-unknown option '%s' packed with other optionss2please try passing the option as its own flag: -%s)�hintsignoring unknown option %s
cSsg|]}t|��qSr�r)�.0�xrrr�
<listcomp>s�z parseoptions.<locals>.<listcomp>cSs.g|]&\}}t|t�r"|t|�fn||f�qSr)�
isinstance�bytesr)r$�k�vrrrr&us�)�listr�getoptZGetoptError�msgZoptrZbytestrrrr�remove�	Exception�warn�dict�	iteritems)r�
cmdoptionsr�opts�ex�flagr.r"rrr�parseoptionsTsB

��*��r8c@sFeZdZdd�Zdd�Ze�e�Zdd�Zdd�Z	d	d
�Z
dd�Zd
S)�CommandcCs||_g|_i|_dS�N)�namerr5)�selfr;rrr�__init__szCommand.__init__cCs�d|j}|jrltt�|j��D]J\}}|D]<}|rZt|t�rDd}nd}||||f7}q,|d|f7}q,q |jr�|d7}|d�|j�7}|S)Nshg s %s %ds %s %ss %s� )	r;r5�sortedrr3r(�intr�join)r<rr*�valuesr+Zfmtrrr�	__bytes__�s

zCommand.__bytes__cCs|j�|�dSr:)r�append)r<�valuerrrrD�szCommand.appendcCs|j�|�dSr:)r�extend)r<rBrrrrF�szCommand.extendcCs|j�|g�}|�|�dSr:)r5�
setdefaultrD)r<�keyrErBrrr�__setitem__�szCommand.__setitem__cCs
t||�Sr:��
AndCommand�r<�otherrrr�__and__�szCommand.__and__N)�__name__�
__module__�__qualname__r=rCrZ	strmethod�__str__rDrFrIrNrrrrr9~s
r9c@s$eZdZdd�Zdd�Zdd�ZdS)rKcCs||_||_dSr:��left�right)r<rTrUrrrr=�szAndCommand.__init__cCsd|j|jfS)Ns%s && %srS)r<rrrrR�szAndCommand.__str__cCs
t||�Sr:rJrLrrrrN�szAndCommand.__and__N)rOrPrQr=rRrNrrrrrK�srKcOszddg}t|||�\}}|�d�r:|�td��td�}n,td�}|�d�sX|�|�n|�td��|�t|�d	�dS)
N)�A�allNr'��p�patchNr'rZsUnote: Mercurial will commit when complete, as there is no staging area in Mercurial

�commit --interactive�addrWs?note: use hg addremove to remove files that have been deleted

�
)r8�get�statusrr9rFr)�rrrrr4r5rrrr�add�s(�
��

��racOs,g}t|||�td�}|�t|�d�dS)Nsimportr]�r8r9r_r)�rrrrr4rrrr�am�srdcOsvddtdfdg}t|||�\}}td�}|�d�r@|�d�|d<|�d�rX|�d�|d<|�|�|�t|�d�dS)	NrYr')r'�	directoryr'r'simport --no-commit�-pres--prefixr])r@r8r9r^rFr_r)r`rrr�apply�s
�


rgcOs|�td��dS)Ns,see 'hg help bisect' for how to use bisect

�r_r�rrrrrrr�bisect�srjcOsDg}t|||�\}}td�}|�dd�|D��|�t|�d�dS)Ns
annotate -udlcSsg|]}t|��qSrr#)r$r+rrrr&�r'zblame.<locals>.<listcomp>r]�r8r9rFr_r)r`rrr�blame�s
rlc
Os*gd�}t|||�\}}td�}|�d�s4|�d�rF|�td��dS|�d�rttd�}|D]}||d<q\d|d<n�|�d	�r�t|�d
kr�t|�dkr�|�d
�}q�d}nt�td
���|d
}	||d<|�	|	�nDt|�dkr�|d|d<|�	|d
�nt|�dk�r|�	|d
�|�t
|�d�dS)N))r'sset-upstreamNr')r'sset-upstream-tor'r'��d�deleteNr')�DroNr')�m�moveNr')�MrrNr'�bookmarksset_upstreamsset_upstream_tos.Mercurial has no concept of upstream branches
rosstrip�-Brrrrs"`hg log -T"{activebookmark}" -r .`smissing newbranch argument�-m�-rr])r8r9r^r_rr�poprrrDr))
rrrrr4r5r�branch�old�newrrrry�s4



rycCsht�||�rdS|��}|dkr&|}n|d|}|j�|�}|rFdS|d��}||vpb|�|�}|S)a
    The first argument to git checkout can either be a revision or a path. Let's
    generally assume it's a revision, unless it's obviously a path. There are
    too many ways to spell revisions in git for us to reasonably catch all of
    them, so let's be conservative.
    Fr'�/Tr)r	Zisrevsymbol�getcwdZwvfs�exists�manifestZhasdir)r�string�cwdZrepopathr~rZdidexistrrr�ispath"sr�cOs�gd�}g}d|vr@|�d�}|�||dd��|d|�}t|||�\}}d}|rpt||d�rp||}n|r�|d}|dd�|}td�}	|�d�r�|s�|r�d|	d<|�d�r�td	�}	d|	d
<|�d��r*t|�dkr�td�}	|	�|�d��n.|	�|d�td�}
|
�|�d��|	|
@}	n�t|�dk�r||�t	d
��td	�}	|�d��rbd|	d
<|�rp||	d<|	�|�nT|�r�|�d��r�||	d<n
|	�|�n,|�d��r�td	�}	d|	d<nt
�t	d���|�t|	�d�dS)N)��b�branchr'r')�Br�r'r'��f�forceNr'rXrrr�updater�s-CrZ�revert�-ir�rts5note: use --no-backup to avoid creating .orig files

rw�--allsa commit must be specifiedr])
�indexrFr8r�r9r^rrDr_rrrr))rrrrr4�pathsZsepindexr5ZrevrZbookcmdrrr�checkout?sZ






r�cOs�gd�}t|||�\}}td�}|�d�r2d|d<|�d�rFd|d<n&|�d�rb|�td��dS|�|�|�t|�d	�dS)
N)�r'�continueNr'�r'�abortNr')�e�editNr'sgraftr�s--editr��
--continuer�s&note: hg graft does not have --abort

r]�r8r9r^r_rrFr)r`rrr�
cherrypicks




r�cOsPgd�}t|||�\}}td�}|�d�r2d|d<|�|�|�t|�d�dS)N))rnrnNr'r�)�xr�Nr'spurger�r�r])r8r9r^rFr_r)r`rrr�clean�s

r�cOs�gd�}t|||�\}}t|�dkr2t�td���td�}|�|d�t|�dkrb|�|d�|�d�r�d|d<|�td��n|�d	�r�d|d<|�d
�r�td�}|�|�d
��||@}|�t	|�d�dS)
N))r'�bareNr')�nsno-checkoutNr'r�rs'a repository to clone must be specified�clonerr�s-Usanote: Mercurial does not have bare clones. -U will clone the repo without checking out a commit

sno_checkoutr�r�r])
r8rrrrr9rDr^r_r))rrrrr4r5rZcocmdrrr�clone�s,
��

r�cOsgd�}t|||�\}}td�}|�d�r2td�}|�d�rX|�d�rPtd�}nd|d<|�d�rp|�d�|d	<|�d
�r�d|�d
�f|d<|�d
�r�|�td��|�d�r�|�d�|d<|�d�r�|�d�|d<|�d�r�|�d�|d<|�|�|�t|�d�dS)N)	��arWNr')rq�messager'r'rX)�Cs
reuse-messager'r')�F�filer'r')r'�authorr'r')r'�dater'r')r'�amendNr')r'sno-editNr'�commitrZr[r�sno_edits--amends
reuse_messages-Mr�s'%s'rvrWsqnote: Mercurial doesn't have a staging area, so there is no --all. -A will add and remove files for you though.

r��-lr�s-ur��-dr]r�r`rrr�commit�s6






��



r�cOs|�td��dS)NsXthis command has been deprecated in the git project, thus isn't supported by this tool

)r1rrirrr�
deprecated�s
��r�c	Os�gd�}t|||�\}}td�}|�d�r8|�td��|�d�rJd|d<t|�D]B}|�|�z|�|�||d<WqRty�|�	|�YqR0qR|�t
|�d�dS)	N)r�)r'�cachedNr')�R�reverseNr'�diffr�sLnote: Mercurial has no concept of a staging area, so --cached does nothing

r�s	--reverserwr])r8r9r^r_rr,r/Zrevsr0rDr))rrrrr4r5r�arrr�diffs&
��


r�cOs|�td��dS)NsMercurial does not enable external difftool by default. You need to enable the extdiff extension in your .hgrc file by adding
extdiff =
to the [extensions] section and then running

hg extdiff -p <program>

See 'hg help extdiff' and 'hg help -e extdiff' for more information.
rhrirrr�difftool's
��r�cOs�ddg}t|||�\}}td�}t|�dkr�|�|d�t|�dkr�|�td��|dd�D] }||jvrx||d<q`||d<q`|�t|�d	�dS)
N�r'rWNr'r��pullrr�note: Mercurial doesn't have refspecs. -r can be used to specify which commits you want to pull. -B can be used to specify which bookmark you want to pull.

rurwr]�r8r9rrDr_r�
_bookmarksr)�rrrrr4r5rr+rrr�fetch5s$���


r�cOs:g}t|||�\}}td�}|�|�|�t|�d�dS)N�grepr]rkr`rrr�grepRs

r�cOsJg}t|||�\}}td�}t|�dkr6|�|d�|�t|�d�dS)N�initrr]�r8r9rrDr_r)r`rrr�init_sr�cOs�gd�}t|||�\}}|�d�p*|�d�}|rVtd�}||d<|�dt|��dS|�td��|�td��td	�}d|d
<|�d�r�|�d�|d<|�d
�r�d
|d<|�d�r�d|d<|�d�r�d|d<|�d�r�d|d<|�d��s|�d��s|�d��rJ|�dd�}d|v�r4|�td��d|d<n|�td��d|d<t|�dk�r�d|dv�r�|d�d�\}	}
d |	|
f|d!<|d=|�|�|�t|�d"�dS)#N))r'sfollowNr')r'sdecorateNr')r��numberr'r')�1r�Nr'�r'�prettyr'r')r'�formatr'r')r'�onelineNr')r'�statNr')r'�graphNr'rX)�Gs	grep-diffr'r')�Ss
pickaxe-regexr'r's	grep_diffs
pickaxe_regexr�s--diffs%s
senote: -v prints the entire commit message like Git does. To print just the first line, drop the -v.

sFnote: see hg help revset for information on how to filter log output

�logs-vr�r�r�r��--statr�s-GrZrfr�r�r�r'�format:scnote: --format format:??? equates to Mercurial's --template. See hg help templates for more info.

s???s
--templatesqnote: --pretty/format/oneline equate to Mercurial's --style or --template. See hg help templates for more info.

s--stylers..s'%s::%s'rwr])	r8r^r9r_r)rr�splitrF)rrrrr4r5Zgrep_patr�formatZsinceZuntilrrr�logksh����




$
��
��
r�cOs�gd�}t|||�\}}|�d�s@|�d�s@|�d�s@|�d�r�td�}|�d�rZd|d<|�d�rld|d<|�d�r~d|d	<|�d�r�d|d
<ntd�}|�d�r�|�td
��|�d�r�d|d<|�d�|D]}t�|�|d<q�|�t|�d�dS)N))�cr�Nr')rn�deletedNr')rq�modifiedNr')�o�othersNr')�i�ignoredNr')�s�stageNr')�z�_zeroNr'r�r�r�r��statusr�rvs-or�sfilesr�s>note: Mercurial doesn't have a staging area, ignoring --stage
r�s-0rs-Ir])	r8r^r9r_rrDr
Z
shellquoter))rrrrr4r5rZincluderrr�lsfiles�s@	����





��

r�cOsRg}t|||�\}}td�}t|�dkr>|�|t|�d�|�t|�d�dS)N�mergerrr]r�r`rrr�merge�sr�cOshg}t|||�\}}t|�dkr(ddg}td|d|df�}|�td�td��|�t|�d	�dS)
N�rVr�s&log -T '{node}\n' -r 'ancestor(%s,%s)'rrs1note: ancestors() is part of the revset language
s3(learn more about revsets with 'hg help revsets')

r])r8rr9r_rr)r`rrr�	mergebase�s��r�cOsNg}t|||�\}}td�}t|�dkr0d|d<|�|�|�t|�d�dS)Nsresolverr�r])r8r9rrFr_r)r`rrr�	mergetools
r�cOsbddg}t|||�\}}td�}|�|�|�d�r<d|d<|�d�rNd|d<|�t|�d�dS)	Nr��r�sdry-runNr'�mvr��-f�dry_run�-nr]�r8r9rFr^r_r)r`rrr�mvs�


r�cOs�gd�}t|||�\}}td�}d|d<t|�dkr�|�|d�t|�dkr�|�td��|dd�D] }||jvr�||d<qh||d<qh|�t|�d	�dS)
N)r�r�)�r�rebaseNr'r�s--rebaserrr�rurwr]r�r�rrr�pull$s"��


r�cOs�ddg}t|||�\}}td�}t|�dkr�|�|d�t|�dkr�|�td��|dd�D] }||jvrx||d<q`||d<q`|�d	�r�d|d
<|�t|�d�dS)Nr�r��pushrrs�note: Mercurial doesn't have refspecs. -r can be used to specify which commits you want to push. -B can be used to specify which bookmark you want to push.

rurwr�r�r])	r8r9rrDr_rr�r^r)r�rrr�pushCs(���



r�cOs�gd�}t|||�\}}|�d�rf|�td��td�}t|�dkrR|�td��|�t|�d�dS|�d�r�td	�}|�t|�d�td
�}|�d�s�|�d�r�d|d<|�d
�r�d|d<|�d��r(|�td��t|�d��|d<t|�dk�rt�	td���dt|d�t|d�f|d<nNt|�dk�rHt|d�|d<n.t|�dk�rvt|d�|d<t|d�|d<|�t|�d�dS)N)r�)r��interactiveNr')r'�ontor'r'r�r�)r'�skipNr'r�sEnote: hg histedit does not perform a rebase. It just edits history.

shisteditrscalso note: 'hg histedit' will automatically detect your stack, so no second argument is necessary

r]r�srevert --all -r .r�r�r�r�s--abortr�sxnote: if you're trying to lift a commit off one branch, try hg rebase -d <destination commit> -s <commit to be lifted>

r�r�s(expected format: git rebase --onto X Y Zs
'::%s - ::%s'rs-ss-b)
r8r^r_rr9rr)rrrr`rrr�rebasecsR
����

��"r�cOsldg}t|||�\}}td�}|�d�r0d|d<t|�dkrJ|�|d�|�t|�d�|�td��dS)Nr�sjournalrWr�rs

sHnote: in hg commits can be deleted from repo but we always have backups
)r8r9r^rrDr_r)rr`rrr�reflog�s�
��r�c	Os�gd�}t|||�\}}tt|�dkr.|dnd�}|�d�}|�d�rV|�td��|�d�rn|�td��td	�}|r�|�d
�|�|�|�t|�d�dS)N))r'�softNr')r'�hardNr')r'�mixedNr'rrr�r�sBnote: --mixed has no meaning since Mercurial has no staging area

r�sAnote: --soft has no meaning since Mercurial has no staging area

r�s--cleanr])	r8rrr^r_rr9rDr))	rrrrr4r5r�Zhardrrrr�reset�s*

��
��

r�cOs\g}t|||�\}}t|�dkr.|�td��td�}|rH|�|d�|�t|�d�dS)Nrs;note: hg backout doesn't support multiple commits at once

sbackoutrr])r8rr_rr9rDr)r`rrr�revert�s��r�cOspddg}t|||�\}}|�d�s,|�d�r^td�}|�d�rL|�td��|�t|�d�n|�td��dS)	N)r's	show-cdupNr')r's
show-toplevelNr's	show_cdups
show_toplevelsroots1note: hg root prints the root of the repository

r]s5note: see hg help revset for how to refer to commits
)r8r^r9r_rr)r`rrr�revparse�s�
r�cOsbddg}t|||�\}}td�}|�|�|�d�r<d|d<|�d�rNd|d<|�t|�d�dS)	Nr�r��rmr�r�r�r�r]r�r`rrr�rm�s�


r�cOsddddtdfg}t|||�\}}|�d�rj|�d�dkrLtd	�}d
|d<q�td�}|�d
�|�d�n�t|�dkr�t||d�r�td�}ntd�}|�|�|�d�r�|�d|df�n0|�d�r�td�}|�d|df�ntd�}|�t	|�d�dS)N)r'sname-statusNr'r��Usunifiedr'sname_statusr�r�r�rs--changer�s--style statuss-r .rscatsexports--config diff.unified=%dr])
r@r8r^r9rDrr�rFr_r)r`rrr�shows0
�






r�cOs�dg}t|||�\}}td�}t|�dkr2|dnd}|dkr\d|d<|�d�rXd|d<�n@|dkr�|�d�rxd|d<nd|d	<t|�d
kr�|�|d
��n�|dkr�d|d<n�|d
kr�d|d<t|�d
kr�|�|d
�n
|�d�n�|dks�|dk�r2td�}t|�d
k�r|�|d
�|dk�r�d|d<nj|dk�sF|dk�rX|�td��dSt|�dk�r�|ddk�r�|d|d<nt|�d
k�r�|d
|d<|�t|�d�dS)NrXsshelver�listr�rZrf�showr�rsclears	--cleanupsdropr�s
<shelve name>spop�applysunshelves--keepr�screatesTnote: Mercurial doesn't have equivalents to the git stash branch or create actions

ssaves--namer])r8r9rr^rDr_rr))rrrrr4r5r�actionrrr�stash/sR�





��rcOsNdg}t|||�\}}td�}|�|�|�d�r:d|d<|�t|�d�dS)N)r'r�Nr'r�r�r�r]r�r`rrrr_cs�

r_cOs\|st�td���|d}|tvr4t�td�|��|dd�}t|||g|�Ri|��S)Nsmissing svn commandrsunknown git svn command "%s"r)rrr�gitsvncommands)rrrrZsvncmdrrr�svnrsrcOs,g}t|||�td�}|�t|�d�dS)Nr�r]rbrcrrr�
svndcommit}srcOs6g}t|||�td�}|�d�|�t|�d�dS)Nr��default-pushr]�r8r9rDr_r)rcrrr�svnfetch�s

rcOsNg}t|||�\}}|s&t�td���td�}|d|d<|�t|�d�dS)Nsmissing find-rev argumentr�rrwr])r8rrrr9r_r)r`rrr�
svnfindrev�sr	cOsRdg}t|||�td�}|�d�td�}|�d�||@}|�t|�d�dS)N)�lslocalNr'r�rr�stipr]r)rrrrr4ZpullcmdZ	rebasecmdrrrr�	svnrebase�s�

rcOs�gd�}t|||�\}}|�d�r,td�}ndtd�}|sFt�td���|�|d�t|�dkrl|d|d<|�d	�r~d|d
<|�d�r�d|d<|�t	|�d
�dS)N)r�)r
r�Nr'rmr�stags�tagsmissing tag argumentrrrwros--remover�r�r])
r8r^r9rrrrDrr_r)r`rrr�tag�s



r
)$r\samrsbisectsblamer�scheckoutscherry-pickscleanr�r�r�sdifftool�fetchr�r�r�sls-filesr�s
merge-bases	mergetoolr�r�r�r�sreflogsresetr�s	rev-parser�r�sstashr�ssvnrswhatchanged)sdcommitrsfind-revr�)E�__doc__Z
__future__rr-rZmercurial.i18nrZ	mercurialrrrrrr	Zmercurial.utilsr
Z
testedwithZcmdtableZcommandrZ
CATEGORY_HELPrr8�objectr9rKrardrgrjrlryr�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�rr_rrrr	rr
rrrrrr�<module>s� 

�
*),@#5	 
P- >#!4	

�(�