
    	^c+b                     ,   d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZm	Z	m
Z
 d dlmZmZmZmZmZmZmZmZmZmZmZ d dlmZ ej        ZddlmZ ej        Zej        Z ej         d	          Z! G d
 dej"                  Z# G d dej$                  Z%dS )    N)_)open)binhexsha1nodeconstants)	bookmarkscontexterrorexchangehglock
logcmdutilmerge
mergestatephasesutil)dateutil   )commons   \b[0-9a-f]{12,40}\bc                   h    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd ZdS )mercurial_sinkc                    t           j                            | |||           |                    dd          | _        |                    dd          | _        |                    dd          | _        d | _        t          j
                            |          rt          t          j        |                    dk    r	 t          j        | j        |          | _        | j                                        st'          t)          d          |z            n%# t*          j        $ r3}|                                 t'          |j        d                   d }~ww xY w	 |                    t)          d          |z             t          j        | j        |d	          | _        | j                                        st'          t)          d          |z            | j                            |           nF# t*          j        $ r4 |                                 t'          t)          d
          |z            w xY wd | _        d | _        d| _        i | _        d S )N   converts   hg.usebranchnamess   hg.clonebranchess   hg.tagsbranchr   &   %s is not a local Mercurial repositorys'   initializing destination %s repository
Tcreates)   could not create hg repository %s as sinkF) r   converter_sink__init__
configboolbranchnamesclonebranchesconfig
tagsbranch
lastbranchospathisdirlenlistdirr   
repositoryuirepolocalNoRepor   r
   	RepoError	tracebackargsstatuscreatedappendr   wlockfilemapmode
subrevmaps)selfr+   repotyper&   errs        2/usr/lib/python3/dist-packages/hgext/convert/hg.pyr   zmercurial_sink.__init__9   s7   &&tR4@@@==5IJJ]]:7JKK))J0@AA7== 	3rz$'7'7#8#81#<#<*M$'488	y((  CDDtK   ? * * *SXa[)))*		!GHH4OPPPM$'4EEE	y((  CDDtK   ##D))))?   BCCdJ  
 	
 s'    AD E(.EEBG8 8AH;c                     | j                             d           | j                                        | _        | j                                        | _        d S )Ns"   run hg sink pre-conversion action
)r+   debugr,   r5   r   r8   s    r;   beforezmercurial_sink.before\   sA    <===Y__&&
INN$$			    c                     | j                             d           | j        r| j                                         | j        r| j                                         d S d S )Ns#   run hg sink post-conversion action
)r+   r=   r   releaser5   r>   s    r;   afterzmercurial_sink.aftera   sc    =>>>9 	 I: 	!J     	! 	!r@   c                 @    | j         j                            d          S )N   shamapr,   vfsjoinr>   s    r;   
revmapfilezmercurial_sink.revmapfileh   s    y}!!),,,r@   c                 @    | j         j                            d          S )Ns	   authormaprF   r>   s    r;   
authorfilezmercurial_sink.authorfilek   s    y}!!,///r@   c                 H  
 | j         sd S || j        k    }|| _        |sd}d |D             }t          j                            | j        |          }|rz|                                  	 t          j        | j        |          | _	        n1# t          $ r$ t          j        | j        |d          | _	        Y nw xY w|                                  i }|D ]h}	 | j	                            |d                    $# t          $ r8 |                    |d         g                               |d                    Y ew xY w|r|                                  t          |                                          D ]\  }}t          j                            | j        |          }	t          j        | j        i |	          
| j                            t'          d          ||fz             t)          j        | j	        

fd|D             	           |                                  d S d S )
N   defaultc                 B    g | ]}|d          |d         r|d         pdfS )r   r   rM    ).0bs     r;   
<listcomp>z,mercurial_sink.setbranch.<locals>.<listcomp>v   s2    LLLQadAaDMQqT7Z8LLLr@   Tr   r   r   s   pulling from %s into %s
c                 :    g | ]}                     |          S rO   )lookup)rP   hprepos     r;   rR   z,mercurial_sink.setbranch.<locals>.<listcomp>   s#    ,L,L,LU\\!__,L,L,Lr@   )heads)r!   r$   r%   r&   rH   rC   r   r*   r+   r,   	Exceptionr?   rT   
setdefaultr4   sorteditemspeernoter   r   pull)r8   branch	pbranches	setbranch
branchpathmissingsrQ   pbranchrW   pbranchpathrV   s             @r;   ra   zmercurial_sink.setbranchn   sO   ! 	Fdo-	  	 FLL)LLL	W\\$)V44
 	JJLLLLM$':>>		 L L LM$':dKKK			LKKMMM  	; 	;A;	  1&&&& ; ; ;##AaD"--44QqT:::::;  	JJLLL"()9)9":":   gll49g>>[99233w6GG   Iu,L,L,L,Le,L,L,L     KKMMMMM	 	s$   )B	 	+B76B7 C66?D87D8c                    t                      }|                                D ]"}|                    dd          }t          |          dk    rC| j                            t          d          |z             |                    d|z             o|                    |	                    |d                             }|sc|d         t          j        k    r	|d         }nD| j                            t          d          |z             |                    d|z             |                    d||d         fz             $|                                S )	N    r      s   invalid tag entry: "%s"
s   %s
r   s   missing tag entry: "%s"
   %s %s
)stringio
splitlinessplitr(   r+   warnr   writeget	lookuprevr   nullhexgetvalue)r8   sourcerevmapdatafplinesrevids           r;   _rewritetagszmercurial_sink._rewritetags   s7   ZZOO%% 	1 	1D

4##A1vv{{Q;<<tCDDD4(((JJv//!5566E Q4,444aDEE GLL#?!@!@4!GHHHHHWt^,,,HHZ5!A$-/0000{{}}r@   c                    t                      }|                                D ]}|                    dd          }t          |          dk    r-|d         }|d         }|t          j        k    r+| j                            |          }|t          | j	        | j
                            |d                    }|| j        |<   t          d          }	t          |          dk    r\| j
        j                            |d          }
| j
        j                            |
          r| j	                            |	|z             |                    |          }|s@t          |          dk    r,| j	                            t          d          ||fz             n|}|                    d	||fz             |                                S )
Nrg   r   rh   r   s
   .hg/shamaps/   no ".hgsubstate" updates will be made for "%s"
s   .hgs!   %s is missing from %s/.hg/shamap
ri   )rj   rk   rl   r(   r   rq   r7   ro   mapfiler+   r,   wjoinr   wvfsreljoinexistsrm   rn   rr   )r8   rs   ru   rv   rw   rx   ry   subpathrt   msgsubnewids               r;   _rewritesubstatezmercurial_sink._rewritesubstate   s   ZZOO%% $	4 $	4D

4##A1vv{{aDEdG)111,,W55>$-!H!H F 06DOG, OPPC6{{a''"in44WfEE9>0055 8 GLLw777

5)) "6{{QCDD$g./  
 "EHHZ5'"223333{{}}r@   c           
   #   t  K   |                     |          g}t          j        | j        |||dddd          }|                                D ]i\  }\  }}}	|                    |          r|t          j        v r't          j	        t          d          |||fz            |t          j        k    re|V  jdS )aR  Calculates the files from p2 that we need to pull in when merging p1
        and p2, given that the merge is coming from the given source.

        This prevents us from losing files that only exist in the target p2 and
        that don't come from the source repo (like if you're merging multiple
        repositories together).
        TF)branchmergeforceacceptremotefollowcopiesse   unable to convert merge commit since target parents do not merge cleanly (file %s, parents %s and %s)N)ancestormergemodcalculateupdatesr,   filemaptargetfilebelongstosourcer   CONVERT_MERGE_ACTIONSr
   Abortr   ACTION_KEEP)
r8   rs   p1ctxp2ctxancmresultfileactioninfor   s
             r;   _calculatemergedfilesz$mercurial_sink._calculatemergedfiles   s      ~~e$$% +I	
 	
 	
 *1):): 	 	%D%64//55   999k2 
 UE*+   :111 



-	 	r@   c	           
         #$ t                    #$ fd}	g }
|D ]}||
vr|
                    |           |
}t          |          } j        rF|dk    r@ j        j                            t          |d                             d         }|d         }t          |          dk     r|                     j        j                   t          |          dk     r|                     j        j                   |	                    d          }|j
        }t          j        t          |          }|D ]Y}                    |          }                    |          }|+|                    ||d t          |                             }Z|j                                        } j        j                            dd          }|r||d<   dD ]`}|                    |          }||d	k    rt+          |          }                    |          }||d	k    rt          |          }|||<   a j        r|j        r
|j        |d
<   |j        r|j        r
|j        |d<   |rK|}|	                    d          } j        |         }d #| j        j        k    r j        |         #t5                    }|r@|                     j        |                    |                     j        |                    #rSt5          |          $                     |#          D ],}$                    |           |                    |           -t=          j         j        ||f|||	|j         |j!        |          } j        j        "                    ddtF          j$        |j%                 d            j        &                    d          5 } j        j                            dd          r|j'        }nd }t+           j        (                    ||                    }|j        |k    rh j        |         }|%                                tF          j)        k     r9tG          j*         j        |tF          j)        |                                g           d d d            n# 1 swxY w Y   d}|}|K j        r|dk    rɉ j        j+        ,                    d          }  j        j                            t          |                    d         }!d|j        v }"|"sm| -                    || .                    |!                    sD j        /                    ta          d                      j        1                    d           |S |S )Nc                    rD|	v r@|vr<j                             d|z             	 |         S # t          j        $ r Y d S w xY w	 |         }n# t          $ r Y d S w xY w                    ||          \  }}|d S |dk    r                    
|          }|dk    r                    |          }t          j	        j
        |||d|v d|v                     |                    S )Ns   reusing %s from p2
   .hgtagss   .hgsubstate   l   x)r+   r=   r
   ManifestLookupErrorKeyErrorgetfilerz   r   r	   
memfilectxr,   ro   )r,   memctxfvru   modecopiesfilesr   p2filesrt   r8   rs   s         r;   
getfilectxz,mercurial_sink.putcommit.<locals>.getfilectx  s;     g!6//59:::  8O0        44 !H   tt1--JD$|tJ((>>N"",,VT::%	

1  s!   2 AA	A 
A A r   r   rh   r   s   hg.sourcenames   convert_source)s   source   transplant_sources   rebase_sources   intermediate-sourcer      branchs   convert_revisions   phasess
   new-commits   hg.preserve-hash)origctxs   (octopus merge fixup)
r@   s   closes   filtering out empty revision
T)r   )2dictr4   r(   r6   r,   	changelogreadr   nullidpopdescrefindallsha1rerp   ro   replaceextracopyr+   r"   r   r    r_   revsaverevsetupdater   addr	   r   authordate	setconfigr   
phasenamesphasetransactionctx	commitctxdraftregisternewmanifestlog
getstoragecmprevisionr2   r   rollback)%r8   r   r   parentscommitrs   rt   fullcleanp2r   plpnparentsm1nodeparentp2textsha1ssha1oldrevnewrevr   
sourcenamelabelnodep1r   filesetr   r   trr   manmnodeclosedr   r   s%   ```  ``                            @@r;   	putcommitzmercurial_sink.putcommit  s    U	 	 	 	 	 	 	 	 	 	 	<  	 	A{{		!w<< 	 AY(--c'!*oo>>qAFQZFw<<!NN49+,,,w<<!NN49+,,,[[^^{
64(( 	? 	?D%%d++FZZ''F!||D&3t99*=>>!!##Y\((5EFF
 	2'1E#$
 	& 	&E 99U##D| ,,,4yyZZ%%F!000 [[F%e 	- 	-%}E): 	4&. 	4)/E%& 8	BQBIbMEETY%%%	"%jjG .ty}---ty}--- &g,, 66vueLL & &DKK%%%KK%%%%.	R	 	C IL""!&,/	   &&z22 b9<&&z3FGG #$jGG"G49..sG.DDEE
 :%%)D/Cyy{{V\11* Ir6<#''))                " .DBq  8	t  	A)'22377CI',,SWW55a8E-F #''&#,,u2E2E"F"F q!BCCDDD	"""...	s   CR%%R),R)c           
         | j                             | j        d          }|p| j         j        }t	                      }| j                                                                         D ]q\  }}|D ]i}d| j         |         v rX|                    t	          | j         |         d                                         	                    d                               jrt          t          |                    }t          fdD                       }||k    rdS t	                      }t	                      }	|D ]Y}
|
                                                    dd          }t          |          dk    r>|                    |d                    Z|D ]u}
|
                                                    dd          }t          |          dk    r>|d         |vr-|	                    |d                                                    v|	sdS d	                    |          fd
}| j                            t'          d                     dt)          t+          j        t+          j                                        z  }d| j        i}t1          j        | j         |d fddg|d||          }| j                             |          }t7          |          t7          |          fS )NT)ignoremissingr   c                 *    g | ]}d |         |fz  S )ri   rO   )rP   tagtagss     r;   rR   z*mercurial_sink.puttags.<locals>.<listcomp>  s'    KKKsJ$s)S)99KKKr@   NNrg   r   rh   r@   c           	      8    t          j        | ||ddd           S )NF)r	   r   )r,   r   r   ru   s      r;   r   z*mercurial_sink.puttags.<locals>.getfilectx  s     %dFAtUE4PPPr@   s   updating tags
s   %d 0r   s   update tagss   convert-repo)r,   	branchtipr#   r   r   	branchmapr[   r   ru   rk   rZ   liststriprl   r(   r   rH   r+   r2   r   inttimemktimegmtimer	   r   r   r   )r8   r   	tagparentoldlinesr_   rW   rU   newlinesoldtagsnewtagsrw   rx   r   r   r   r   r   ru   s    `               @r;   puttagszmercurial_sink.puttags  s   I''t'LL	1!1	55!Y002288:: 	 	MFE  1--OODIaL499;;FFtLLMM  
 $x..))KKKKdKKKLLx: %%%% 	 	D

""4++A1vv{{KK! 	* 	*D

""4++A1vv{{t7""AaDJJLL))) 	:xx!!	Q 	Q 	Q 	Q 	Q 	q+,,---T[77888DO,nIL	
 	
 y""3''4yy#i..((r@   c                     || _         d S N)r6   )r8   actives     r;   setfilemapmodezmercurial_sink.setfilemapmode  s    !r@   c                    t                    sd S d x}x}}	 | j                                        }| j                                        }| j                            d          }| j                            t          d                     | j        j        }fdD             }|	                    | j        ||           |
                                 t          j        |||           d S # t          j        |||           w xY w)Ns   bookmarks   updating bookmarks
c                 >    g | ]}|t          |                   fS rO   )r   )rP   bookmarkupdatedbookmarks     r;   rR   z/mercurial_sink.putbookmarks.<locals>.<listcomp>  s;        3x899:  r@   )r(   r,   r5   r   r   r+   r2   r   
_bookmarksapplychangescloselockmodrB   )r8   r  r5   r   r   	destmarkschangess    `     r;   putbookmarkszmercurial_sink.putbookmarks  s   ?## 	F   r	-IOO%%E9>>##D&&{33BGNN1455666	,I    /  G ""49b':::HHJJJOD%,,,,,GOD%,,,,s   B=C/ /Dc                 "    || j         v p| j        S r   )r,   r!   r8   r   s     r;   hascommitfrommapzmercurial_sink.hascommitfrommap  s    di54#55r@   c                 |    || j         vr+| j        r$t          j        t	          d          |z            || j         v S )Nse   revision %s not found in destination repository (lookups with clonebranches=true are not implemented))r,   r!   r
   r   r   r  s     r;   hascommitforsplicemapz$mercurial_sink.hascommitforsplicemap  sV    diD$6+, 
    dir@   N)__name__
__module____qualname__r   r?   rC   rI   rK   ra   rz   r   r   r   r   r   r  r  r  rO   r@   r;   r   r   8   s        ! ! !F% % %
! ! !- - -0 0 0' ' 'R  (( ( (T, , ,\_ _ _B6) 6) 6)p" " "- - -&6 6 6
  
  
  
  
 r@   r   c                       e Zd ZddZd Zd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZddZdS )mercurial_sourceNc                 f    t           j                             ||||           |                    dd           _        t                       _        |                    dd           _        	 t          j	         j
        |           _         j                                        st          j        nF# t          j        $ r4 |                                 t!          t#          d          |z            w xY wd  _        d  _        d _        d  _        |                    dd          }|                    dd          }||	  j                            |          }n7# t          j        $ r% t          j        t#          d          |z            w xY w j        j                            |          }|d	i} j        j                            |g          D ]$}	d	| j        j                            |	          <   %|j         _        nt>          j          _        |r fd
|D              _!        d S  j        "                                 _!        d S |s|!t          j        t#          d                    t                      }
t                      }tG          j$         j        |g          D ]g}	 j        |	         }|
%                    |                                           |&                    d |'                                D                        h|
j         _        |
|z
   _!        d S )Nr   s   hg.ignoreerrorss
   hg.saverevr   r   s   hg.startrevs   hg.revss    %s is not a valid start revisionr   c                 D    g | ]}j                             |          S rO   )r,   rT   )rP   rr8   s     r;   rR   z-mercurial_source.__init__.<locals>.<listcomp>)  s)    AAAqty//22AAAr@   s4   hg.revs cannot be combined with hg.startrev or --revc              3   >   K   | ]}|                                 V  d S r   )r   rP   r   s     r;   	<genexpr>z,mercurial_source.__init__.<locals>.<genexpr>9  s*      ??Aqvvxx??????r@   )(r   converter_sourcer   r   ignoreerrorsr   ignoredr   r   r*   r+   r,   r-   r
   r/   r0   r.   r   lastrevlastctx_changescache	convertfpr"   rT   r   r   r   descendantsr   __contains__keepr   always_headsrW   r   revranger   r   r   )r8   r+   r9   r&   revs	startnodehgrevsstartrevchildrenr  nodesr   r   s   `            r;   r   zmercurial_source.__init__  s   ((r8T4HHHMM*6HIIuu}}Z??	Ndgt44DI 9??$$ &o%& 	N 	N 	NLLNNNDEELMMM	N 'IIj.99	:z22>$ $	 0 0 ; ;II   +=>>J    9.229==%q>,88(DD > >A<=HTY055a8899$1		 K	 0AAAADAAA"ioo// y,k0    EEEeeG(VH== @ @il		#((**%%%?????????*DI'/DKKKs   /AB4 4AC7E# #4Fc                 X    | j         |k    r| j        |         | _        || _         | j        S r   )r  r,   r   r  s     r;   
_changectxzmercurial_source._changectx=  s+    <39S>DLDL|r@   c                 D      fd|                                 D             S )Nc                 f    g | ]-}|                     |                                          +|.S rO   )r%  r   )rP   r   r8   s     r;   rR   z-mercurial_source._parents.<locals>.<listcomp>D  s7    FFFaAF$))AFFHH2E2EFFFFr@   )r   )r8   r   s   ` r;   _parentszmercurial_source._parentsC  s%    FFFF3;;==FFFFr@   c                 *      fd j         D             S )Nc                 X    g | ]&}                     |          t          |          'S rO   r%  r   )rP   rU   r8   s     r;   rR   z-mercurial_source.getheads.<locals>.<listcomp>G  s.    <<<1tyy||<A<<<r@   )r'  r>   s   `r;   getheadszmercurial_source.getheadsF  s    <<<<<<<<r@   c                     	 |                      |          |         }|                                |                                fS # t          j        $ r Y dS w xY w)Nr   )r0  ru   flagsr
   LookupError)r8   namer   fctxs       r;   r   zmercurial_source.getfileI  s]    	??3''-D99;;

,,  	 	 	::	s   AA AAc                    g g }}|j         }|j         }|                                                    |                                          }|                                D ]'\  }\  \  }	}
\  }}| ||            ||           (||fS r   )r4   manifestdiffr[   )r8   ctx1ctx2mar  maappendrappenddr   node1flag1node2flag2s                r;   _changedfileszmercurial_source._changedfilesP  s    BA9(MMOO  11347799 	 	/A/}



1ur@   c                                                     }                     |          }|s|s|                                x}}|rJ j        d         k    r j        d         \  }}n                     |d         |          \  }}|s||z   }|}                     |||          }	t                      }
t          |          dk    rr|d                                                             |                                d          }|	                                D ]\  }}||

                    |            fd|D             }|                                 ||	|
fS )Nr   r   rh   T)cleanc                 *    g | ]}|j         v|fS rO   r  )rP   r   r   r8   s     r;   rR   z/mercurial_source.getchanges.<locals>.<listcomp>r  s)    DDDat|.C.CAs8.C.C.Cr@   )r0  r3  r>  r!  rJ  
_getcopiesr   r(   r?  r[   r   sort)r8   r   r   r   r   r   	copyfilesrB  r  r   r   rE  r   valuer
  s   ``             r;   
getchangeszmercurial_source.getchanges\  so   ooc""--$$ 	/w 	/ #.EI 	!!$++*1-AA**71:s;;A QI gy99%%w<<1
##%%**3<<>>*FFAGGII # #5=KKNNNDDDDDUDDD''r@   c                    i }|D ]}|| j         v r	 |                    |                                          | j         v r>t          fd|D                       sZ||<   `# t          $ r Y lt
          j        $ rV}| j        s | j                             |           | j	        
                    t          d          |z             Y d }~d }~ww xY w|S )Nc              3       K   | ]}|v V  	d S r   rO   )rP   r   
copysources     r;   r  z.mercurial_source._getcopies.<locals>.<genexpr>  s'      <<q:?<<<<<<r@   s   ignoring: %s
)r  filectxrV  any	TypeErrorr
   r:  r  r   r+   rm   r   )r8   r   r   r   r   r;  erV  s          @r;   rO  zmercurial_source._getcopiesv  s!    	7 	7Dt|##7 [[..99;;
--<<<<G<<<<< )t   $ 7 7 7(   &&&Q011A566666666	7
 s*   0A&A& A&&
C2C ACCc                     |                      |          }|                     |          d D             }fd|                                D             }|}t          j        |                                t          j        |                                d          |	                                ||||
                                |                                |                                | j        |                                |          S )Nc                 6    g | ]}|                                 S rO   r   r  s     r;   rR   z.mercurial_source.getcommit.<locals>.<listcomp>  s     ---q15577---r@   c                 D    g | ]}||v|                                 S rO   r]  )rP   r   r3  s     r;   rR   z.mercurial_source.getcommit.<locals>.<listcomp>  s0    PPP!Pax>O>Oaeegg>O>O>Or@   s   %Y-%m-%d %H:%M:%S %1%2)r   r   r   r   r   
optparentsr_   r   sortkeyr   r   r   )r0  r3  r   r   r   userr   datestrr   descriptionr_   r   r   r   r   )r8   r   r   r   r_  crevr3  s         @r;   	getcommitzmercurial_source.getcommit  s    ooc""==%%--H---PPPPs{{}}PPP
}88::!#((**.GHH""!::<<))++GGIIL))++
 
 
 	
r@   c                 *    t          | j                  S r   )r(   r,   r>   s    r;   
numcommitszmercurial_source.numcommits  s    49~~r@   c                 j      fd j                                         D             } fd|D             S )Nc                 \    g | ](}j                             |d                    dk    &|)S )r   s   global)r,   tagtype)rP   tr8   s     r;   rR   z,mercurial_source.gettags.<locals>.<listcomp>  sB     
 
 
y  1&&)33 333r@   c                 `    i | ]*\  }}                     |          |t          |          +S rO   r6  )rP   r;  r   r8   s      r;   
<dictcomp>z,mercurial_source.gettags.<locals>.<dictcomp>  s4    JJJJD$$))D//Jc$iiJJJr@   )r,   tagslist)r8   r   s   ` r;   gettagszmercurial_source.gettags  sV    
 
 
 
Y''))
 
 

 KJJJ$JJJJr@   c                 N                          |          }                     |          }|s-|+d}|                                                                g }}n#|pd}                     ||         |          \  }} fd||fD             \  }}|dk    r|||ff _        ||z   S )Nr   c                 ,    g | ]}fd |D             S )c                 &    g | ]}|j         v|S rO   rN  )rP   r   r8   s     r;   rR   z?mercurial_source.getchangedfiles.<locals>.<listcomp>.<listcomp>  s%    888!4<"7"7!"7"7"7r@   rO   )rP   lr8   s     r;   rR   z4mercurial_source.getchangedfiles.<locals>.<listcomp>  s.    JJJQ8888Q888JJJr@   )r0  r3  r>  keysrJ  r!  )r8   r   ir   r   rB  r  s   `      r;   getchangedfilesz mercurial_source.getchangedfiles  s    ooc""--$$ 	819ALLNN''))2BBQA&&wqz377EBJJJJ2q'JJJA66"%AwDAvr@   c                    | j         2t          | j        j                            d          d          | _         | j                             t          j        d||fz                       | j                                          d S )NrE   s   abri   )	r"  r   r,   rG   rH   rn   r   tonativeeolflush)r8   r   destrevs      r;   	convertedzmercurial_source.converted  sq    >!!$)-"4"4Y"?"?GGDNT-jGS>.IJJKKKr@   c                 :    | j                             d           d S )Ns$   run hg source pre-conversion action
r+   r=   r>   s    r;   r?   zmercurial_source.before  s    >?????r@   c                 :    | j                             d           d S )Ns%   run hg source post-conversion action
r}  r>   s    r;   rC   zmercurial_source.after  s    ?@@@@@r@   c                     dS NTrO   r>   s    r;   hasnativeorderzmercurial_source.hasnativeorder      tr@   c                     dS r  rO   r>   s    r;   hasnativeclosezmercurial_source.hasnativeclose  r  r@   c                     	 t          | j                            |                    S # t          j        t          j        f$ r Y d S w xY wr   )r   r,   rT   r
   r/   r:  r  s     r;   rp   zmercurial_source.lookuprev  sQ    	ty'',,---!23 	 	 	44	s   &) AAc                 4    t          j        | j                  S r   )r   listbookmarksr,   r>   s    r;   getbookmarkszmercurial_source.getbookmarks  s    &ty111r@   	   splicemapc                 2    |                      ||           dS )z+Mercurial, revision string is a 40 byte hexN)checkhexformat)r8   revstrmapnames      r;   checkrevformatzmercurial_source.checkrevformat  s    FG,,,,,r@   r   )r  )r  r  r  r   r0  r3  r7  r   rJ  rS  rO  re  rg  ro  rv  r{  r?   rC   r  r  rp   r  r  rO   r@   r;   r  r    sW       7* 7* 7* 7*r  G G G= = =  
 
 
( ( (4  ,
 
 
,  K K K     @ @ @A A A      2 2 2- - - - - -r@   r  )&r%   r   r   mercurial.i18nr   mercurial.pycompatr   mercurial.noder   r   r   	mercurialr   r	   r
   r   r   r   r  r   r   r   r   r   r   mercurial.utilsr   rj    r   r|   r.   compiler   r   r   r  r  rO   r@   r;   <module>r     s  ( 
			 				        # # # # # #         
                          % $ $ $ $ $=      
.		+	,	,H  H  H  H  H V* H  H  H VX- X- X- X- X-v. X- X- X- X- X-r@   