3 Re6 @ s d dl mZ d dlZd dlZd dlZd dlmZ d dl mZ d dl mZ d dl mZmZ d dlmZmZ d dlmZ d dlmZ d d lmZ d d lmZmZmZmZ erd dlmZm Z d dlm!Z! d d lm"Z"m#Z# e j$Z$e j%Z%ej&e'Z(ej)dZ*dd Z+G dd deZ,ej-e, dS ) )absolute_importN)parse)request) BadCommandSubProcessError)display_pathhide_url)make_command) TempDirectory)MYPY_CHECK_RUNNING)RemoteNotFoundErrorVersionControl!find_path_to_setup_from_repo_rootvcs)OptionalTuple) HiddenText)AuthInfo RevOptionsz^[a-fA-F0-9]{40}$c C s t tj| S )N)bool HASH_REGEXmatch)sha r /builddir/build/BUILDROOT/alt-python36-pip-20.2.4-5.el9.x86_64/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/vcs/git.pylooks_like_hash* s r c s e Zd ZdZdZdZd/Zd0ZdZe dd Z dd Zdd Ze dd Zdd Ze dd Ze dd Ze dd Zdd Zdd Zd d! Ze d"d# Ze d1d%d&Ze d'd( Ze fd)d*Ze d+d, Ze fd-d.Z ZS )2Gitgitz.gitclonegit+http git+httpsgit+sshgit+gitgit+fileGIT_DIR GIT_WORK_TREEHEADc C s | gS )Nr )revr r r get_base_rev_args: s zGit.get_base_rev_argsc C sJ | j t|\}}|jsdS | j||js.dS t| j||jd }| S )NFr )get_url_rev_optionsr r' is_commit_id_equalr get_revision_sha)selfurldest_rev_optionsis_tag_or_branchr r r is_immutable_rev_checkout> s zGit.is_immutable_rev_checkoutc C sX d}| j dg}|j|r4|t|d j d }nd}dj|jdd d }t|S )Nzgit version versionr . )run_command startswithlensplitjoin parse_version)r, VERSION_PFXr3 r r r get_git_versionO s zGit.get_git_versionc C s@ dddg}| j |d|d}|j }|jdr<|tdd S dS ) zl Return the current branch, or None if HEAD isn't at a branch (e.g. detached HEAD). zsymbolic-refz-qr&