
    6h                       S r SSKJr  SSKrSSKJr  SSKJrJr  SSK	J
r
  SSKJrJrJrJr  SS	KJr  S
r0 r\R(                  " \5      r\R*                  " S5      r\R*                  " S5      rS rS rS rS&S jrS r\R*                  " S5      r\" SSS/ \" S5      \" S5      4SSS\" S5      \" S5      4SSS\" S5      \" S5      4S S!S\" S"5      \" S5      4/\" S#5      \R<                  S$9S% 5       rg)'z-export repositories as git fast-import stream    )annotationsN)_)hexnullrev)
stringutil)error
logcmdutil	registrarscmutil   )convcmds   ships-with-hg-cores   [<>
"]s   [<> 
]c                L   U R                  X5      n[        R                  " U5      n[        R                  " U5      n[        R                  U5      (       d  [        R                  U5      (       a"  [        R                  " [        S5      U-  5      eU(       a  SXE4-  $ SU-  $ )Ns:   Unable to parse user into person and email for revision %ss	   "%s" <%s>s   <%s>)
getr   personemailGIT_EMAIL_PROHIBITEDmatchGIT_PERSON_PROHIBITEDr   Abortr   )	authormapuserrevmapped_useruser_person
user_emails         2/usr/lib/python3/dist-packages/hgext/fastexport.pyconvert_to_git_userr   &   s    --+K##K0K!!+.J!!*--1F1L1L2 2 kkKL
 	
 {777##    c                    U u  pUS::  a  SOSnUS-  S:w  a#  [         R                  " [        S5      U 4-  5      e[        U5      S-  nUS-  nUS-  nS[	        U5      -  U-   SXE4-  -   $ )Nr      +   -<   s4   UTC offset in %b is not an integer number of secondss   %d s   %02d%02d)r   r   r   absint)date	timestamputcofftzsigntzhtzmins         r   convert_to_git_dater+   7   s    Iq[TdF{akkEF$P
 	
 [BF
B,CRKEC	N"V+kSL.HHHr   c                    SU -   $ )Ns   refs/heads/ )branchs    r   convert_to_git_refr/   D   s    F""r   c                    U R                  S[        U5      -  5        U R                  U5        U(       d	  USS  S:w  a  U R                  S5        g g )Ns   data %d
   
)appendlen)bufdataadd_newlines      r   
write_datar8   I   sD    JJ|c$i'(JJtd23i5(

5 )r   c                   X   nUR                  5       nXc;   a  U R                  SU-  5        g UR                  5        Vs/ s H  owR                  5       [        :w  d  M  UPM      nnU H7  nUR                  5       U;  d  M  U R                  [        S5      Xv4-  5          g    UR                  5        H  n	X;  a  M
  UR                  U	5      n
[        U
R                  5       5      nX;  d  M;  [        U5      S-   nXU'   U
R                  5       nSSU-  /n[        XS5        U R                  " USS06  AM     [        U5      S-   nXU'   [        UR                  5       5      nSU-  SU-  S	[!        XER#                  5       U5      [%        UR'                  5       5      4-  /n[        XR)                  5       5        U(       a'  UR+                  S
X8S   R                  5          -  5        [        U5      S:X  a\  UR+                  SX8S   R                  5          -  5        XS      nUR-                  5       R/                  UR-                  5       5      nOUR                  5       n/ nU H  n	X;  a  UR+                  U	SU	-  45        M   UR                  U	5      n
U
R                  5       nU
R1                  5       (       a  SnOU
R3                  5       (       a  SnOSnSUU[        U5         U	4-  nUR+                  U	U45        M     UR5                  5         UR7                  S U 5       5        AUR+                  S5        U R                  " USS06  Ag s  snf )Ns/   warning: revision %s already exported, skipped
s8   warning: parent %s of %s has not been exported, skipped
r   s   blob
s	   mark :%d
Tkeepprogressbars
   commit %s
s   committer %s %s
s	   from :%d
r      s
   merge :%d
s   D %s
s   755s   120000s   644s   M %s :%d %s
c              3  *   #    U  H	  u  pUv   M     g 7f)Nr-   ).0fnamechangeds      r   	<genexpr> export_commit.<locals>.<genexpr>   s     7w+Ewws   r2   )r   debugparentsr   r   warnr   filesfilectxfilenoder4   r6   r8   writer/   r.   r   r   r+   r%   descriptionr3   manifestdiffisexecislinksortextend)uirepor   marksr   ctxrevidprC   r>   rF   filerevmarkr6   r5   refp0ctxrE   filebuffilepermr?   s                        r   export_commitr\   P   s   
)CGGIE~
DuLM++->-Q557g+=q-G>557%GGNO*   ++e$g&&()u:>D!'N<<>Dmd23Cs$'HHc040   u:>D%L
SZZ\
*C	88:u=
+
	
C sOO%&

=5)9#::;
7|q

>E!*..*:$;;<QZ ##ENN$45		GNNE9u#456kk%(G&&(G~~!!!$!&(E#g,4G)OOGNNE7+,  LLNJJ7w77JJuHHc(4(K ?s   M Ms   ^[0-9a-f]{40}$s
   fastexport   rs   revs   revisions to exports   REV   is   import-marksr   s   old marks file to reads   FILE   es   export-markss   new marks file to write   As	   authormaps   remap usernames using this files   [OPTION]... [REV]...)helpcategoryc           	        U[        UR                  S/ 5      5      -  nU(       d  [        R                  " US/5      nO[        R                  " X5      nU(       d  [
        R                  " [        S5      5      eUR                  S5      nU(       a  [        R                  " X5      nO0 nUR                  S5      n0 nU(       a|  [        US5       nU Ha  n	U	R                  5       n	[        R                  U	5      (       a  X;   a  [
        R                  " [        S5      5      e[        U5      S-   Xy'   Mc     S	S	S	5        UR                  5         U R!                  [        S
5      [        S5      [        U5      S9 n
U H   n[#        XXU5        U
R%                  5         M"     S	S	S	5        UR                  S5      nU(       ac  [        US5       nS	/[        U5      -  nUR'                  5        H  u  nnXUS-
  '   M     U H  nUR)                  US-   5        M     S	S	S	5        g	g	! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g	= f)zexport repository as git fast-import stream

This command lets you dump a repository as a human-readable text stream.
It can be piped into corresponding import routines like "git fast-import".
Incremental dumps can be created by using marks files.
r   s   all()s   no revisions matchedr   import_marksrbs   Corrupted marks filer   Ns	   exportings	   revisions)unittotalexport_markswbr2   )tupler   r   revranger	   r   r   r   r   readauthormapopenstripisrevr   r4   rN   makeprogressr\   	incrementitemsrH   )rP   rQ   revsopts
authorfiler   rc   rR   import_marks_filelineprogressr   rg   export_marks_fileoutput_markskvs                    r   
fastexportr|      s   0 	E$((5"%&&Dxj1""4.kk!3455+&J))"9		88N+LE,%):)zz|{{4((DM++a(?&@AA!%j1n	 * & 	IIK		,aoSY 
 
	C"C	:  
 88N+L,%): 6CJ.L1&'QU# &!!''E	2 "	 &% ! &%
 
 &%s&   A(H)>'H:AI)
H7:
I
I)F) __doc__
__future__r   remercurial.i18nr   mercurial.noder   r   mercurial.utilsr   	mercurialr   r	   r
   r   convertr   
testedwithcmdtablecommandcompiler   r   r   r+   r/   r8   r\   rn   CATEGORY_IMPORT_EXPORTr|   r-   r   r   <module>r      s,  
 4
 # 	  ' &   #



H
%

:. zz*- $"
I#
K\ 	

$% 		vr134ai@	Q'@%A1W:N	Q'A%BAgJO01gJ	
	 //"-3#"-3r   