ó
    ç“,j‡  ã                   óÌ   • S SK r S SKrS SKJr  S SKJr  S SKJr  SSKJ	r	  SSK
JrJr  SS	S
.S\S\S\S\S\4
S jjrS rS\S\S\4S jr SS\S\\\4   4S jjrS\S\4S jrg)é    N)ÚPath)ÚTuple)Úmsgé   )Úrun_command)Úis_subpath_ofÚmake_tempdirÚmasterF)ÚbranchÚsparseÚrepoÚsubpathÚdestr   r   c                ó^  • [        5       nUR                  5       (       a  [        R                  " SSS9  UR                  R                  5       (       d  [        R                  " SSS9  U(       a  US:¼  a  [        XX#5      $ U(       a2  SUS    SUS    S	3nS
n[        R                  " US:X  a  UOU S35        [        5        nSU SU  SU 3n	[        U	SS9   U[        U5      -  n
[        XŠ5      (       d  SU S3n[        R                  " X°SS9  [        R                  R                  U
5      (       a  [        R                  " X¢5        O[        R                   " X¢5         S S S 5        g ! ["         a!    SU SU S3n[        R                  " X°SS9   N3f = f! , (       d  f       g = f)Nz&Destination of checkout must not existr   ©Úexitsz,Parent of destination of checkout must exist)é   é   z'You're running an old version of Git (vr   Ú.z1) that doesn't fully support sparse checkout yet.zOYou're running an unknown version of Git, so sparse checkout has been disabled.©r   r   z— This means that more files than necessary may be downloaded temporarily. To only download the files needed, make sure you're using Git v2.22 or above.úgit -C z clone z . -b T©ÚcaptureÚ'ú-' is a path outside of the cloned repository.zCan't clone z6. Make sure the directory exists in the repo (branch 'z'))Úget_git_versionÚexistsr   ÚfailÚparentÚgit_sparse_checkoutÚwarnr	   r   r   r   ÚosÚpathÚisdirÚshutilÚcopytreeÚcopyfileÚFileNotFoundError)r   r   r   r   r   Úgit_versionÚerr_oldÚerr_unkÚtmp_dirÚcmdÚsource_pathÚerrs               Ú�C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\weasel/util/git.pyÚgit_checkoutr1      s�  € ô "Ó#€KØ‡{�{‡}�}Ü�ŠÐ9ÀÒCØ�;‰;×Ñ×ÑÜ�ŠÐ?ÀqÒIÞ�+ Ó(Ü" 4°$Ó?Ð?Þ	ð 6°kÀ!±nÐ5EÀQÀ{ÐSTÁ~ÐFVð W>ð ?ð 	ð dˆÜ�ŠØ%¨Ó/‰w°WÐ=ð >/ð 0ô	
ô 
Œ˜7Ø˜�y ¨ v¨V°F°8Ð<ˆÜ�C Ò&ð	)Ø!¤D¨£MÑ1ˆKÜ  ×6Ñ6Ø˜'˜Ð"OÐP�Ü—’˜¨!Ò,Ü�w‰w�}‰}˜[×)Ñ)Ü—’ Õ2ä—’ Õ2÷ 
ˆøô !ó 	)Ø   	Ð)_Ð`fÐ_gÐgiÐjˆCÜ�HŠH�S aÔ(ð	)ú÷ 
�ús=   ÃFÃA3E0ÅFÅE0Å&FÅ0(FÆFÆFÆFÆ
F,c           	      óÎ  • [        5        nSU  SU SU S3n[        U5        SU SU 3n[        USS9n[        U 5      nSR                  UR                  R                  5        Vs/ s H  oˆR                  S	5      (       d  M  US
S  PM!     sn5      n	U	(       d!  SU SU  SU S	3n
[        R                  " U
S
S9  SU SU SU	 3n[        USS9  SU SU SU 3n[        USS9  U[        U5      -  n[        XK5      (       d  SU S3n
[        R                  " X S
S9  [        R                  " [        U5      [        U5      5        S S S 5        g s  snf ! , (       d  f       g = f)Nz
git clone Ú z --no-checkout --depth 1 -b z --filter=blob:noner   z- rev-list --objects --all --missing=print -- Tr   Ú?r   z'Could not find any relevant files for 'z<'. Did you specify a correct and complete path within repo 'z' and branch r   z fetch-pack z
 checkout r   r   )r	   r   Ú_http_to_gitÚjoinÚstdoutÚsplitÚ
startswithr   r   r   r   r%   ÚmoveÚstr)r   r   r   r   r,   r-   ÚretÚgit_repoÚxÚmissingsr/   r.   s               r0   r    r    6   s‰  € ô  
Œ˜7ð ˜˜˜a ˜yð )Ø�Ð,ð.ð 	ô 	�CÔð ˜�yÐ MÈgÈYÐWˆÜ˜# tÑ,ˆÜ Ó%ˆà—8‘8¨C¯J©J×,<Ñ,<Ô,>ÓTÒ,> qÇ,Á,Ès×BS›U˜Q˜q˜r›UÑ,>ÑTÓUˆÞà9¸'¸ð CLØLPÈ6ð RØ$˜X Qð(ð ô
 �HŠH�S Ò"Ø˜�y ¨X¨J°a¸°zÐBˆÜ�C Ò&à˜�y 
¨6¨(°!°G°9Ð=ˆÜ�C Ò&ð ¤ W£Ñ-ˆÜ˜W×2Ñ2Ø�g�YÐKÐLˆCÜ�HŠH�S aÒ(ä�Š”C˜Ó$¤c¨$£iÔ0÷C 
ˆùò U÷ 
�ús%   ‹AEÁ'E
Â	E
ÂB;EÅEÅ
E$Úreturnc                 ó\   • [        5         SU  SU 3n[        USS9nUR                  S:g  nU$ )z±Uses 'git ls-remote' to check if a repository and branch exists

repo (str): URL to get repo.
branch (str): Branch on repo to check.
RETURNS (bool): True if repo:branch exists.
zgit ls-remote r3   Tr   Ú )r   r   r7   )r   r   r-   r<   r   s        r0   Úgit_repo_branch_existsrC   j   s=   € ô ÔØ˜4˜&  & Ð
*€Cô �c 4Ñ
(€CØ�Z‰Z˜2Ñ€FØ€Mó    Úerrorc                 ó6  •  [        SSS9nUR                  R	                  5       nU(       a  UR                  S5      (       d  gUSS R	                  5       R                  S5      n[        US	   5      [        US
   5      4$ ! [         a    [        U 5      ef = f)zñGet the version of git and raise an error if calling 'git --version' fails.

error (str): The error message to show.
RETURNS (Tuple[int, int]): The version as a (major, minor) tuple. Returns
    (0, 0) if the version couldn't be determined.
zgit --versionTr   zgit versionr   é   Nr   r   r   )r   Ú	ExceptionÚRuntimeErrorr7   Ústripr9   r8   Úint)rE   r<   r7   Úversions       r0   r   r   {   s“   € ð"Ü˜/°4Ñ8ˆð �Z‰Z×ÑÓ€FÞ˜×*Ñ*¨=×9Ñ9ØØ�R�Sˆk×ÑÓ!×'Ñ'¨Ó,€GÜˆw�q‰z‹?œC ¨¡
›OÐ+Ð+øô ó "Ü˜5Ó!Ð!ð"ús   ‚
B ÂBc                 ó  • U R                  S5      (       a  U R                  SS5      n U R                  S5      (       aC  U R                  SS5      R                  SSS5      n U R                  S5      (       a  U S S n U  S3n U $ )	Nzhttp://zhttps://zgit@Ú/Ú:r   éÿÿÿÿz.git)r9   ÚreplaceÚendswith)r   s    r0   r5   r5   �   sy   € Ø‡��y×!Ñ!Ø�|‰|˜J¨Ó4ˆØ‡��{×#Ñ#Ø�|‰|˜J¨Ó/×7Ñ7¸¸SÀ!ÓDˆØ�=‰=˜×ÑØ˜˜�9ˆDØ��tˆ}ˆØ€KrD   )zNCould not run 'git'. Make sure it's installed and the executable is available.)r"   r%   Úpathlibr   Útypingr   Úwasabir   Úcommandsr   Ú
filesystemr   r	   r;   Úboolr1   r    rC   rK   r   r5   © rD   r0   Ú<module>rZ      s§   ðÛ 	Û Ý Ý å å !ß 3ð ;CÐSXò')Ø
ð')Øð')Ø#'ð')Ø47ð')ØLPõ')òT11ðh ð ¨cð °dô ð$ bñ,Øð,à
ˆ3�ˆ8�_õ,ð(�sð ˜sõ rD   