a
ljE @ s d dl Z d dlZd dlZd dlZd dlZd dlZd dlm Z m
Z
mZ d dlm
Z
mZ d dlmZmZmZ d dlmZ d dlmZmZmZmZmZmZmZ ejjZejjZe e!Z"e#dZ$e#dZ%e#d ej&Z'e(e)d
ddZ*G d
d deZ+e,e+ dS ) N)ListOptionalTuple)
BadCommandInstallationError)
HiddenTextdisplay_pathhide_url)make_command)AuthInfoRemoteNotFoundErrorRemoteNotValidError
RevOptionsVersionControl(find_path_to_project_root_from_repo_rootvcsz(^git version (\d+)\.(\d+)(?:\.(\d+))?.*$z^[a-fA-F0-9]{40}$a/ ^
# Optional user, e.g. 'git@'
(\w+@)?
# Server, e.g. 'github.com'.
([^/:]+):
# The server-side path. e.g. 'user/project.git'. Must start with an
# alphanumeric character so as not to be confusable with a Windows paths
# like 'C:/foo/bar' or 'C:\foo\bar'.
(\w[^:]*)
$)shareturnc C s t t| S N)bool
HASH_REGEXmatch)r r 9/usr/lib/python3.9/site-packages/pip/_internal/vcs/git.pylooks_like_hash7 s r c s e Zd ZdZdZdZdZdZdZe e
ee
ddd Ze
e
e
d
ddZeed
f dddZee
ee
dddZee
e
eee
e
f dddZee
e
e
dddZee
eeedddZee
ee
e
dddZe
eeddd d!Ze
eeddd"d#Ze
eeddd$d%Zee
e
dd&d'Ze e
e
d(d)d*Zee
e
e
d+d,d-Z ed;e
ee
e
d+d.d/Z!ee
ee
dd0d1Z"ee
ee
ee
e#f d( fd2d3Z$ee
ddd4d5Z%ee
ee
d fd6d7Z&e e
e
d8d9d:Z' Z(S )<Gitgitz.gitclone)zgit+httpz git+httpszgit+sshzgit+gitzgit+file)ZGIT_DIRZ
GIT_WORK_TREEHEAD)revr c C s | gS r r r r r r get_base_rev_argsK s zGit.get_base_rev_args)urldestr c C sJ | t|\}}|jsdS | ||js.dS t| ||jd }| S )NFr )Zget_url_rev_optionsr r is_commit_id_equalr get_revision_sha)selfr" r# _rev_optionsZis_tag_or_branchr r r is_immutable_rev_checkoutO s zGit.is_immutable_rev_checkout.)r c C sF | j dgddd}t|}|s0td| dS tdd | D S ) NversionFT)show_stdoutstdout_onlyzCan't parse git version: %sr c s s | ]}t |V qd S r )int).0cr r r