
    	^c8                         d dl mZ d dlmZ d dlmZmZmZmZm	Z	m
Z
 ddlmZ ej        ZdZd Zd Zd	 Z G d
 d          ZdS )    )_)hex)bundle2changegrouperror
extensions
revsetlangutil   )commons   b2x:infinitepushc                 6   |j         s!t          j        t          d                    t          t          j        |          vr)t          j        t          d          t          z            t          | t          j	        d|j                   |           t          j        |           }|                    d           t          |          }t          | |j                    t          j        | ||d          }i }||d<   |r-||d<   d|d	<   | j        }	||	v rt#          |	|                   |d	<   t%          |          sd
|d<   g }
|
                    t          j        t                                          |                                |                     |
S )Ns   no commits to pushs   no server support for %rs   %lns   01s   pushs	   cgversions   bookmark    s   bookprevnode   1s   pushbackbookmarks)advisoryparamsdata)missingr   Abortr   scratchbranchparttyper   bundle2caps_validaterevsetr	   
formatspecr   supportedoutgoingversionsdiscardmin
_handlelfs
makestream
_bookmarksr   isremotebooksenabledappend
bundlepartupperitems)repopeeroutgoinguibookmarksupportedversions	cgversioncgparams	bookmarkspartss              @/usr/lib/python3/dist-packages/hgext/infinitepush/bundleparts.pygetscratchbranchpartsr/      s    4k!122333G$7$=$===k)**-BB
 
 	
 j#FH,<==x   $=dCC e$$$%&&ItX%&&&		h	7	C	CBF$F< ?&{"%O	y  &))H*=&>&>F?#  ## ,'+#$E 
LL!''))!<<>>	
 	
 	
   Lr   c                    |                      |          s!t          j        t          d                    |rJ|                      d|          }t	          |          dk    r#t          j        t          d                    dS dS )zAAbort if the revs to be pushed aren't valid for a scratch branch.s   nothing to pushs	   heads(%r)r   s2   cannot push more than one head to a scratch branchN)revsr   r   r   len)r#   revsetr'   headss       r.   r   r   M   s    99V 1k!.//000 		,//u::>>+GHH  	  >r   c                     	 t          j        d          }|j                            | |           dS # t          $ r Y dS w xY w)zSpecial case if lfs is enabled

    If lfs is enabled then we need to call prepush hook
    to make sure large files are uploaded to lfs
    s   lfsN)r   findwrapperuploadblobsfromrevsKeyError)r#   r   lfsmods      r.   r   r   Z   sV    ((**499999   s   /3 
A Ac                   &    e Zd ZdZd Zd ZddZdS )
copiedpartz9a copy of unbundlepart content that can be consumed laterc                    |j         | _         |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        t          j        |	                                          | _
        d S N)typeid	mandatorymandatoryparamsr   r+   mandatorykeysr
   stringioread_io)selfparts     r.   __init__zcopiedpart.__init__k   sd    I	'#3"1k!/=--r   c                     d S r>    )rG   s    r.   consumezcopiedpart.consumew   s    r   Nc                 l    || j                                         S | j                             |          S r>   )rF   rE   )rG   sizes     r.   rE   zcopiedpart.readz   s+    <8==??"8==&&&r   r>   )__name__
__module____qualname____doc__rI   rL   rE   rK   r   r.   r<   r<   h   sL        CC
. 
. 
.  ' ' ' ' ' 'r   r<   N)mercurial.i18nr   mercurial.noder   	mercurialr   r   r   r   r	   r
    r   r   r   r/   r   r   r<   rK   r   r.   <module>rW      s                                    2 + 0 0 0f
 
 
  ' ' ' ' ' ' ' ' ' 'r   