
    6h                        S SK Jr  S SKrS SKrS SKrS SKrS SKJr  S SKJ	r	J
r
JrJrJr  S SKJrJrJr   " S S5      r " S S	\5      rS
 rSS jr " S S5      rSS jrS rg)    )annotationsN)_)encodingerrorhookpycompatutil)dateutilprocutil
stringutilc                  $    \ rS rSrSrS rS rSrg)logentry   aB  Class logentry has the following attributes:
.author    - author name as CVS knows it
.branch    - name of branch this revision is on
.branches  - revision tuple of branches starting at this revision
.comment   - commit message
.commitid  - CVS commitid or None
.date      - the commit date as a (time, tz) tuple
.dead      - true if file revision is dead
.file      - Name of file
.lines     - a tuple (+lines, -lines) or None
.parent    - Previous revision of this entry
.rcs       - name of file as returned from CVS
.revision  - revision number as tuple
.tags      - list of tags on the file
.synthetic - is this a synthetic "file ... added on ..." revision?
.mergepoint - the branch that has been merged from (if present in
              rlog output) or None
.branchpoints - the branches that start at the current entry or empty
c                H    SU l         U R                  R                  U5        g NF)	synthetic__dict__updateselfentriess     5/usr/lib/python3/dist-packages/hgext/convert/cvsps.py__init__logentry.__init__3   s    W%    c                   ^  U 4S j[        T R                  5       5       n[        T 5      R                  < SSR	                  U5      < S3$ )Nc              3  N   >#    U  H  o< S TR                   U   < 3v   M     g7f)=Nr   .0kr   s     r   	<genexpr>$logentry.__repr__.<locals>.<genexpr>8   s!     P:OQAt}}Q/0:Os   "%(z, )sortedr   type__name__joinr   itemss   ` r   __repr__logentry.__repr__7   s4    P&:OP:..		%0@AAr   )r   Nr*   
__module____qualname____firstlineno____doc__r   r.   __static_attributes__ r   r   r   r      s    (&Br   r   c                      \ rS rSrSrg)logerror<   r6   N)r*   r1   r2   r3   r5   r6   r   r   r8   r8   <   s    r   r8   c                    U R                  S5      nUS   R                  S5      nSnUS:w  a  UnUS   US   R                  SU5      S nU$ )a  Return the repository path from a CVS path.

>>> getrepopath(b'/foo/bar')
'/foo/bar'
>>> getrepopath(b'c:/foo/bar')
'/foo/bar'
>>> getrepopath(b':pserver:10/foo/bar')
'/foo/bar'
>>> getrepopath(b':pserver:10c:/foo/bar')
'/foo/bar'
>>> getrepopath(b':pserver:/foo/bar')
'/foo/bar'
>>> getrepopath(b':pserver:c:/foo/bar')
'/foo/bar'
>>> getrepopath(b':pserver:truc@foo.bar:/foo/bar')
'/foo/bar'
>>> getrepopath(b':pserver:truc@foo.bar:c:/foo/bar')
'/foo/bar'
>>> getrepopath(b'user@server/path/to/repository')
'/path/to/repository'
   :   @r      /N)splitfind)cvspathparts
atpositionstartrepopaths        r   getrepopathrF   @   s[    : MM$Er%JERRyre467HOr   c                X)  ^@ 0 m@U@4S jnU R                  [        S5      5        / n[        R                  " S5      n[        R                  " S5      n[        R                  " S5      n	[        R                  " S5      n
[        R                  " S5      n[        R                  " S5      n[        R                  " S	5      n[        R                  " S
5      n[        R                  " S5      n[        R                  " S5      n[        R                  " S5      n[        R                  " S5      n[        R                  " S5      nSnUc   [	        [
        R                  R                  SS5      S5       nUR                  5       R                  5       nSSS5        UnUS:X  a  SnU(       a7  UR                  [        R                  5      (       d  U[        R                  -  n [        R                   " [
        R                  R                  SS5      5      R                  5       nU(       d   ["        R$                  R'                  SS5      n/ nSnU(       a  [
        R                  R)                  S5      n[
        R                  R+                  U5      (       d  [
        R,                  " U5        UR/                  S5      US/-   nU Vs/ s H2  nU(       d  M  SR                  [        R0                  " SU5      5      PM4     nn[
        R                  R                  USR                  U Vs/ s H  nU(       d  M  UPM     sn5      5      nUS:X  a   U R3                  [        S5      W-  5        [	        US5       n[4        R6                  " U5      nU HT  n[9        US 5      (       a$  [9        US!5      (       a  [9        US"5      (       a  M8  U R                  [        S#5      5        / n  O   SSS5        U R3                  [        S$5      [;        U5      -  5        U(       a&  US&   R>                  n[@        RB                  " US'5      nS(S)/nU(       aq  URE                  S*U-  5        [        RF                  " [I        U5      5      nUR                  S+5      (       d  US+-  nU(       a  U[        RF                  " U5      -   nOUnURE                  S,S-/U   5        U(       a  URE                  S.U-  5        URE                  U5        0 n0 n 0 n!S/n"S0n#U V$s/ s H  n$[J        RL                  " U$5      PM     nn$U R3                  [        S15      S2R                  U5      -  5        U RO                  S3UX4-  5        [J        RP                  " S2R                  U5      S45      n%[        RR                  " U%RU                  5       5      n& U&n'U'S:X  a  G
O[        RR                  " U%RU                  5       5      n&U'R                  S65      (       a  U'SS& n'U"S/:X  GaI  URW                  U'5      n(U((       a  U(RY                  S75      n)0 nU(       a  [        RF                  " U)SS8 5      n*U*R[                  U5      (       a  U*[;        U5      S n*U*R[                  S+5      (       a  U*S7S n*U*R[                  S95      (       a  U*S:S n*OU*R]                  S;S+5      n*S<n"GM  S7n"GM  URW                  U'5      n(U((       a  [        U(RY                  S75      5      eU	RW                  U'5      n(U((       a  [        U(RY                  S<5      5      eU
RW                  U'5      (       a  [        U'5      eGOU"S7:X  aQ  URW                  U'5      n(U((       d   [        S=5      5       e[        RF                  " U(RY                  S75      5      n*S<n"GOCU"S<:X  a  URW                  U'5      (       a  0 n S>n"GO!U"S>:X  Ga  URW                  U'5      n(U((       a  U(RY                  S<5      R/                  S5       V+s/ s H  n+[_        U+5      PM     n,n+[;        U,5      n-U-S>:  a  U-S<-  S/:X  a  U,S8   S/:X  a  U,SS8 U,S&S -   n,[a        U,5      n,U,U;  a  / UU,'   UU,   RE                  U(RY                  S75      5        U(RY                  S<5      U U(RY                  S75      '   GO=URW                  U'5      (       a  S?n"GO#URW                  U'5      (       a  S/n"GO	U"S@:X  aB  URW                  U'5      (       a  S?n"GOURW                  U'5      (       a   [        SA5      5       eGOU"S?:X  a  URW                  U'5      n(U((       d   [        SB5      5       e[c        U" W)5      U" W*5      [a        U(RY                  S75      R/                  S5       V+s/ s H  n+[_        U+5      PM     sn+5      / SSS[e        5       SC9nS:n"GO*U"S::X  Ga{  URW                  U'5      n(U((       d   [        SD5      5       eU(RY                  S75      n.U.S<   S+:X  a  SEU.-   n.[;        U.R/                  5       5      S>:w  a  U.SF-   n.[@        Rf                  " U./ SGQ5      Wl        U" U(RY                  S<5      5      Ul4        U(RY                  S>5      Rk                  5       SH:H  Ul6        U(RY                  S?5      (       ar  U(RY                  S:5      (       a:  [_        U(RY                  S?5      5      [_        U(RY                  S:5      5      4Ul7        Oa[_        U(RY                  S?5      5      S/4Ul7        O?U(RY                  S:5      (       a"  S/[_        U(RY                  S:5      5      4Ul7        OSUl7        U(RY                  SI5      (       a  U(RY                  SJ5      Ul8        U(RY                  SK5      (       a  U(RY                  SL5      R/                  S5      n/[;        U/5      S<:X  a  SMUl9        OfSR                  U/SS8 SNU/S8   /-   5      n/U  V0s/ s H  n0U U0   U/:X  d  M  U0PM     n1n0[;        U15      S7:X  d   SOURr                  -  5       eU1S/   Ul9        / Ul:        SIn"GOU"SI:X  a  URW                  U'5      n2U2(       a|  U2RY                  S75      R/                  SP5       V+V3s/ s HE  n+[a        U+R                  5       R/                  S5       V3s/ s H  n3[_        U35      PM     sn35      PMG     sn3n+Wl;        SJn"GOURW                  U'5      (       a  URW                  U&5      (       a  S?n"S5n#OURW                  U'5      (       a  S/n"S5n#OWRt                  RE                  U'5        OU"SJ:X  a  URW                  U'5      (       aT  U&n4U4R                  S65      (       a  U4SS& n4URW                  U45      (       a  S?n"S5n#ORWRt                  RE                  U'5        O6URW                  U'5      (       a  S/n"S5n#OWRt                  RE                  U'5        U#(       a  WRl                  (       a  URx                  S&   S7:X  ap  [;        URt                  5      S7:X  aW  URW                  URt                  S/   5      (       a4  U RO                  SQURz                  URt                  S/   4-  5        S5Ul>        U#(       Ga"  S0n#[        UR'                  WRx                  / 5       V+s/ s H  n+U" U+5      PM     sn+5      Ul@        U" S6R                  URt                  5      5      Ul:        [;        URx                  5      n-U-S>:  a2  U-S<-  S/:X  a)  UR'                  URx                  SS& S/5      S/   UlA        OSUlA        [e        5       n5U R                  5        H  u  n6n7[a        U7R/                  S5       V8s/ s H  n8[_        U85      PM     sn85      n9[;        U95      S<:  a  MK  U9S8   S/:X  a4  U9S&   S<-  S/:X  a(  U9SS8 URx                  :X  a  U5R                  U65        M  M  U9SR:X  d  M  U9URv                  ;   d  M  U5R                  U65        M     U5UlD        URE                  U5        URz                  U!URz                  R]                  S;S+5      '   [;        U5      SS-  S/:X  aA  U R                  [        R                  " ST[;        U5      UR                  4-  SU5      S6-   5        G
M  UR                  SV SW9  0 n:[        USX SW9 HY  nURz                  R]                  S;S+5      n)U)U!;   a
  U!U)   Ul=        URx                  SS& n6URx                  U:URz                  U64'   M[     U Hd  nURx                  SS& n6U:R'                  URz                  U64S5      nUc  URx                  SS8 nUUlI        URx                  U:URz                  U64'   Mf     U(       a  U(       a  UR                  SY SW9  U(       a4  US&   R>                  US/   R>                  :  a  [        [        SZ5      5      eUU-   nU R3                  [        S[5      W-  5        [	        US\5       n[4        R                  " UU5        SSS5        OUnU R                  [        S]5      [;        U5      -  5        U R                  S^S_5      n;U;(       a  S` n<U H  n=U=Rt                  n>U; H  n U>R                  [        R                  " U5      5      R                  Sa5      U=l:        U R                  (       a1  U RO                  SbUU<" U=Rx                  5      U=R                  4-  5          M     [        R                  " [        Se5      U<" U=Rx                  5      U=R                  4-  [        Sc5      Sd9e   [        R                  " U SSfS5USg9  U$ ! , (       d  f       GN= f! [         a    [        [        S5      5      ef = f! [         a     GNf = fs  snf s  snf ! , (       d  f       GN= f! [<         a(  nU R3                  [        S%5      U-  5         SnAGNSnAff = fs  sn$f s  sn+f s  sn+f s  sn0f s  sn3f s  sn3n+f s  sn+f s  sn8f ! , (       d  f       GN	= f! [         a     GM  [         a7  n?[        R                  " [        R                  " U?5      [        Sc5      Sd9eSn?A?ff = f)hzCollect the CVS rlogc                &   > TR                  X 5      $ )z#return a shared version of a string)
setdefault)s_scaches    r   scachecreatelog.<locals>.scacheo   s    !!!''r   s   collecting CVS rlog
s   RCS file: (.+)$s   cvs \[r?log aborted\]: (.+)$s   cvs (r?log|server): (.+)
$s>   (Cannot access.+CVSROOT)|(can't create temporary directory.+)$s   Working file: (.+)$s   symbolic names:s   	(.+): ([\d.]+)$s   ----------------------------$sN   =============================================================================$s(   revision ([\d.]+)(\s+locked by:\s+.+;)?$s   date:\s+(.+);\s+author:\s+(.+);\s+state:\s+(.+?);(\s+lines:\s+(\+\d+)?\s+(-\d+)?;)?(\s+commitid:\s+([^;]+);)?(.*mergepoint:\s+([^;]+);)?s   branches: (.+);$s+   file [^/]+ was (initially )?added on branchr   Ns   CVSs
   Repositoryrb   .s   not a CVS sandboxs   Roots   CVSROOTs   ~/.hg.cvspsr;   s   cache   -s   \w+   updates   reading cvs log cache %s
branchpointscommitid
mergepoints   ignoring old cache
s   cache has %d log entries
s   error reading cache: %r
r<      %Y/%m/%d %H:%M:%S %1%2s   cvss   -qs   -d%sr>   s   logs   rlogs   -d>%sr   Fs   running %s
    s   prefix=%r directory=%r root=%r
s   rbT   
   s   Attic/   s   /Attic/   s)   RCS file must be followed by working file         s!   must have at least some revisionss   expected revision number)rcsfilerevisionbranchesparentrS   rT   rR   s&   revision must be followed by date lines   19s    UTC)s   %y/%m/%d %H:%M:%Ss   %Y/%m/%d %H:%M:%Ss   %Y-%m-%d %H:%M:%Ss   dead      	   
      HEAD   0s   unknown branch: %s   ;s#   found synthetic revision in %s: %r
)rX   rX   rX   d      %d %sP   c                2    U R                   U R                  4$ Nr_   ra   xs    r   <lambda>createlog.<locals>.<lambda>  s    AEE1::.r   keyc                2    U R                   U R                  4$ ro   rp   rq   s    r   rs   rt     s    155!***=r   c                    U R                   $ ro   )daterq   s    r   rs   rt     s    166r   s>   log cache overlaps with new log entries, re-run without cache.s   writing cvs log cache %s
wbs   %d log entries
s   converts   cvsps.logencodingc                j    SR                  [        R                  " [        R                  U 5      5      $ )NrO   )r+   r   maplistbytestr)rs    r   revstrcreatelog.<locals>.revstr  s&     99X--h.>.>BCCr   zutf-8s   transcoding by %s: %s of %s
s-   check convert.cvsps.logencoding configuration)hints6   no encoding can transcode CVS log message for %s of %ss   cvslog)log)Vstatusr   recompileopenospathr+   readstripOSErrorr8   endswithr   ossepr	   readfiler   environget
expanduserexistsmkdirr?   findallnotepickleloadhasattrlen	Exceptionry   r
   datestrappendnormpathrF   r   
shellquotedebugpopenfromnativeeolreadlinematchgroup
startswithreplaceinttupler   set	parsedateauthorlowerdeadlinesrS   rT   commentrb   ra   r_   r   r(   tagsbranchr-   addrR   r   ellipsisr`   sortrc   dump
configlistdecodesysstrencode	debugflagUnicodeDecodeErrorLookupErrorr   Abortr}   r   )Aui	directoryrootrlogcacherL   r   re_00re_01re_02re_03re_10re_20re_30re_31re_32re_50re_60re_70file_added_reprefixfoldlogry   cachedir	cachefilerJ   fpecmdpr   	branchmaprcsmapstatestoreargpfppeekliner   r_   filenamerr   revrevndmyrevbrb   mycpeekrR   r   ra   irevpartsversions	encodingsr   entryr   instrK   sA                                                                   @r   	createlogr   h   sE   
 G( IIa()*
C JJ)*EJJ89EJJ56EJJIE JJ-.EJJ)*EJJ,-EJJ78EJJ	3E JJCDEJJ	(E JJ*+EJJNOMF	4bggll6=94@A) AI~ &//(..99hnn$F	==fg!>?EEGD ##J4 FD77%%n5ww~~h''HHX JJt$	8'<<	@IO	1Q6TYYrzz'156		OGGLLdiiI ;IqI ;<
	 		9GGA34y@Ai&"RA>22#Az22#A|44		!$;"<=!#   ' GGA34s6{BC ":??D##D*CDD 5/C

7T>"MM+d+,zz$IAv..FFJJ &'

8d?#JJy DIFEE/2
3s8s#sC
3GGAo$))C.12HH0FI3LLM
..3
/Cclln-D
3;!!#,,.1==9D A:KK%Ekk!n#}}S"X6H**622#+CKM#:**400#+AB<**955#+AB<#+#3#3J#EEKK%Eu{{1~..KK%Eu{{1~..{{4  tn$ ! aZKK%EI!HII5}}U[[^4HEaZ{{4  	aZKK%E',{{1~';';D'AB'A!s1v'AB 3x!8aCGqLcr(SX-CCjd? "DIS	  Q0,1KKN	%++a.)T""T""aZ{{4   ;;t,, a8/ ,, aZ KK%E8!78853KH%A0D0DT0JK0J1A0JKL U	A EaZKK%EF!EFF5AAtt|AI1779~"K''AF ekk!n-AH[[^))+w6AF{{1~~;;q>>"5;;q>2CA4GHAG"5;;q>2A6AGQc%++a.12{{1~~"[[^
{{1~~B--d3u:?#*AL IIeCRjD%)3D&DEE+4N9a	!8M9HNx=A- -<- $,A;ALAIEaZ D!A WWQZ--d33 1779??4+@A+@a3q6+@AB3
 T""u{{4'8'8T""		  &aZ{{4  >>%((!#2JE;;u%%E EII$$T*T""		  & 

2!#AII!###AIIaL11HH7155!))A,:OO AKER0HI0H1VAY0HIJAFuzz!))45AIqzz?DaxTAX!O88AJJsOdV<Q? 5L$-OO$5  (..2F!G2FQ#a&2F!GHx=1$B<1$")9Q)>}

2$((0 3*1::-$((0 %6 *ANJJqM67eeF155==T233x#~"		''CHaff3E(ErJ_ h HH.H/ HF =>eemmJ-&=3KAECR$%JJ!%%! ? CRLL!%%$/9

3BA$%JJ!%%!  HH)H*&*//SV[[82  3,C GGA34y@Ai&"C$ '& CIIa#$s3x/0j*>?I	D
 EmmG$+NN8??13E$F$M$M%EM ||< &"8%**EF  * kk9 enn-uzz:	;
 KL / @ 	IIb$	4S1J[ A@
  	411233	4  		2 P ; '&  	9GGA23a788	9@ 4z CH  Lh  O Bj J "Hx '&8 * " ++ ((.L s-  
*AN 4AN
AN $AAN> AO*AO/AO>AO)AO+ ?AAO AO0.AO+  AP AP% AP* AP/AP/,AP9>AP4AP9AP?AQ
H,AQ	J(A;AQN

ANNAN NAN;N>
AOOAOO
AO(O#AO+ O+
APO5APPAPP4AP9Q	
AQQ
AR)Q)	AR)Q22AR$R$AR)c                  $    \ rS rSrSrS rS rSrg)	changesetiH  a  Class changeset has the following attributes:
.id        - integer identifying this changeset (list index)
.author    - author name as CVS knows it
.branch    - name of branch this changeset is on, or None
.comment   - commit message
.commitid  - CVS commitid or None
.date      - the commit date as a (time,tz) tuple
.entries   - list of logentry objects in this changeset
.parents   - list of one or two parent changesets
.tags      - list of tags on this changeset
.synthetic - from synthetic revision "file ... added on branch ..."
.mergepoint- the branch that has been merged from or None
.branchpoints- the branches that start at the current entry or empty
c                V    S U l         SU l        U R                  R                  U5        g r   )idr   r   r   r   s     r   r   changeset.__init__X  s"    W%r   c                   ^  U 4S j[        T R                  5       5       nS[        T 5      R                  SR	                  U5      4-  $ )Nc              3  L   >#    U  H  nS UTR                   U   4-  v   M     g7f)s   %s=%rNr   r    s     r   r#   %changeset.__repr__.<locals>.<genexpr>^  s(      
6KH4==+,,6Ks   !$s   %s(%s)   , r'   r,   s   ` r   r.   changeset.__repr__]  s@    
6<T]]6K
 DJ//E1BCCCr   )r   r   Nr0   r6   r   r   r   r   H  s    &
Dr   r   c                  ^^^^ U R                  [        S5      5        0 mU Hq  nUR                  (       d  M  UR                  T;  a  UR                  TUR                  '   MA  [	        UR                  TUR                     5      TUR                  '   Ms     UR                  U4S jS9  / n[        5       nSm[        U5       GHW  u  pT(       Ga%  UR                  TR                  :X  Ga
  UR                  b  UR                  TR                  :X  Gd  UR                  b  TR                  c  UR                  TR                  :X  a  UR                  TR                  :X  a  UR                  TR                  :X  az  TR                  S   TR                  S   -   UR                  S   UR                  S   -   s=::  a&  TR                  S   TR                  S   -   U-   ::  a  O  OUR                  U;  d  [        UR                  UR                  UR                  UR                  / UR                  UR                  UR                  S9mUR                  T5        [        5       n[!        U5      S-  S:X  aZ  S	[!        U5      ["        R$                  " UR                  5      S
S 4-  n	U R                  [&        R(                  " U	S5      S-   5        TR*                  R                  U5        UR-                  UR                  5        UR                  Tl        GMZ     U H@  m[!        TR*                  5      S:H  =(       a    TR*                  S   R.                  Tl        MB     S n
U H0  mTR*                  R                  [0        R2                  " U
5      S9  M2     [        5       mU4S jnUR                  [0        R2                  " U5      S9  0 mU H.  mTR*                   H  nUR4                   H  nTTU'   M
     M     M0     U HV  m[        5       nTR*                   H  nUR7                  UR4                  5        M      [9        UU4S jU 5       5      Tl        MX     Uc  SnU(       a  [:        R<                  " U5      nUc  SnU(       a  [:        R<                  " U5      n0 n0 n[!        U5      nSnUU:  Ga  Xh   mTR*                   H  nXUR>                  UR@                  4'   M     SnTR                  U;   a  UTR                     nO8[C        U5       H)  nTR                  UU   R                  ;  a  Ub    OM'  UnM+     / Tl"        Ub  UU   nUR.                  (       a`  [!        URD                  5      S::  d   [        S5      5       eURD                  (       a  URD                  S   nOSnOUR.                  (       a  M`  Ub  TRD                  R                  U5        TR                  (       aA  TR                  S:X  a  STl        TRD                  R                  XoTR                        5        U(       a  URG                  TR                  5      nU(       ac  URI                  S5      nUS:X  a  Sn XoU      nUU;   a<  TR                  U:w  a,  WR.                  (       d  TRD                  R                  U5        U(       a  URG                  TR                  5      nU(       a  URQ                  5       (       a  URI                  S5      nUS:X  a  SnOSnUU;   aq  TR                  U:w  aa  [        TR                  UTR                  STR                  -  / / XoU      T/S9nURS                  US-   U5        US-   UU'   US-  nUS
-  nGM  XTR                  '   US-  nUU:  a  GM  SnU[!        U5      :  a,  Xh   R.                  (       a  Xh	 OUS-  nU[!        U5      :  a  M,  [        U5       H  u  nmUS-   Tl*        M     T(       a]  T HW  u  nnURT                  c  M  URT                  c  M$  U RM                  [        S5      URT                  URT                  4-  5        MY     U R                  [        S5      [!        U5      -  5        [V        RV                  " U SSSUS9  U$ ! [J         aA    U RM                  [        S5      ["        RN                  " U5      TR                  4-  5         GNyf = f)zConvert log into changesets.s   creating changesets
c                   > TR                  U R                  S5      U R                  =(       d    SU R                  U R                  U R                  =(       d    SU R
                  U R                  4$ )N)r<   r   r   )r   rS   r   r   r   ry   rR   )rr   mindates    r   rs   !createchangeset.<locals>.<lambda>t  sM    KK

G,JJ#IIHHHHOFFNN
r   ru   Nr   rX   )r   r   r   ry   r   rT   rR   rS   rk   rl   r[   r<   rm   rW   c                F   U R                   R                  S5      n UR                   R                  S5      n[        U 5      n[        U5      n[        X#5      n[	        U5       H;  nUS-   U:X  a  X#:  a    gUS-   U:X  a  X#:  a    gX   X   :  a    gX   X   :  d  M;    g   g)zMimic cvsps sorting orderr>   rX   r<   r   )r`   r?   r   minrange)lr~   nlnrnr   s         r   entitycompare&createchangeset.<locals>.entitycompare  s    FFLLFFLLVVKqA1u{rwQ"  r   c                  > [        U R                  5      [        UR                  5      -
  nU(       a  U$ 0 nU R                   H  nUR                  X4R                  '   M     0 nUR                   H  nUR                  XTR                  '   M     SnU R                   H;  nUR
                  " UR                  S 5      UR                  :X  d  M0  U(       a   eSn  O   UR                   HJ  nUR                  UR                  S 5      UR                  :X  d  M/  U(       a  TR                  X45        Sn  O   S nU(       d/  U" [        U R                  5      [        UR                  5      5      nU(       dQ  U" U R                   Vs/ s H  oDR                  PM     snUR                   Vs/ s H  oDR                  PM     sn5      nU(       d/  U" [        U R                  5      [        UR                  5      5      nU$ s  snf s  snf )Nr   rX   r<   c                    X:  X:  -
  $ ro   r6   )rr   r   s     r   rs   0createchangeset.<locals>.cscmp.<locals>.<lambda>	  s    !%AE*r   )sumry   r   ra   r_   r   rc   r   r   r`   rR   )r  r~   r   ler   r   codds          r   cscmpcreatechangeset.<locals>.cscmp  s|   K#aff+%H A

BuuI A

BuuI  AvvaeeT"ahh.u	  AvvaeeT"ahh.GGQFO  +#aii.#aii.1A199-9a669-		/J	1	/JKA #ann%s1>>':;A ./Js   H ,H
c              3  <   >#    U  H  nTU   TL d  M  Uv   M     g 7fro   r6   )r!   tagr  
globaltagss     r   r#   "createchangeset.<locals>.<genexpr>&  s     Dtz#!/Cts   	s   {{mergetobranch ([-\w]+)}}s   {{mergefrombranch ([-\w]+)}}s0   synthetic changeset cannot have multiple parentsrh   sB   warning: CVS commit message references non-existent branch %r:
%s
s&   convert-repo: CVS merge from branch %s)r   r   ry   r   r   r   parentss)   changeset %d is both before and after %d
s   %d changeset entries
s   cvschangesetsT)
changesets),r   r   rS   ry   r   r   r   	enumeraterR   r   r   r   r`   r   rT   r   r   r   bytereprr   r   r   r   r   	functools
cmp_to_keyr   r   r(   r   r   r_   ra   r  r  searchr   KeyErrorwarnr}   groupsinsertr   r   )r   r   fuzz	mergefrommergetor   r  filesr   tr  r  r  r   r   rb   r  r   r   	candidater   ccr  r~   r  r  r   r  s                           @@@@r   createchangesetr'  d  s    IIa()* G:::zz(&'ff

#&)!&&'!**2E&F

#  HH
  
 JEEA#$ !..0'AJJ!**,DZZ'1::+=		QYY.AHH,AHH,QVVAY.FF1Iq	1:FF1Iq	1T9: e+ 		xxxxVV<<^^	A a EE:$)
O%%aii026   		*--a4u<=					!&&u |  !))n)Daiil.D.D $ 			9//>? 
 %C.` OO	,,U3O4 JAvv"#
3    uAKK  DtDD  0**W%4	JJy)	HHJA	A
a%MA,-aeeQZZ()  88x"A #1X	88:i#8#E#EE} & 	=1A ++199~* AG- * 99		!AA +++ }		  #<<||w&#IIZ(>?@  +AGGAJ<A	 *A; 7I =QXX]9;N;NII$$Y/qyy)A88::
AG| A=QXX]" xx VV I((!# "!+QK!8! <	B %%a!eR0"#a%HQK FAFA	Q} a%D 	
A
c*o
=""FA	 c*o
 *%11u & DAqttADD$4CDttQTTl#  IIa)*S_<=IIb$($:FK   GG= $++A.		:	;s   >b4 4Ac?>c?c                r   [         R                  " U5      nUS   (       a  SnOUS   (       a  SnOSnUS   n U(       a  / nU H  nU[        XUS   US9-  nM     O[        XS   US9n [        XUS
   5      nA[        U5      n	0 n
0 nU GH  nUS   (       a  UR                  U
;  a|  UR                  (       ak  UR                  S   R                  (       aM  XR                  S   R                  S-
     R                  UR                  S   R                  4XR                  '   UR                  XR                  '   US   (       a  UR                  =(       d    SUS   ;  a  M  U	(       Gd  U R	                  S5        U R                  SUR                  -  5        U R                  S[        R                  " UR                  S5      -  5        U R                  SUR                  -  5        U R                  SUR                  =(       d    S-  5        U R                  SSS/[        UR                  5      S:     SR!                  UR                  5      =(       d    S4-  5        UR"                  (       a6  U R                  SSR!                  [%        UR"                  5      5      -  5        US   (       a  UR                  (       a  [        UR                  5      S:  aL  U R                  SSR!                  UR                   Vs/ s H  nSUR                  -  PM     sn5      -  5        O+U R                  S UR                  S   R                  -  5        US   (       aq  UR                  n/ nU(       a2  X   u  nnUR'                  S!U=(       d    SUX   4-  5        U(       a  M2  U(       a#  U R                  S"SR!                  U5      -  5        U R                  S#5        U R	                  S$UR(                  -  5        U R                  S%5        UR*                   H  nUR,                  nUR/                  US&   5      (       a  U[        US&   5      S nU R	                  S'US(R!                  UR0                   Vs/ s H  nSU-  PM
     sn5      =(       d    S)S(R!                  UR2                   Vs/ s H  nSU-  PM
     sn5      SS*/UR4                     4-  5        M     U R	                  S+5        U(       a2  U	(       a+  US   SUR                  -  :X  d  US   UR                  ;   a  S,n	[        U5      S:  d  GM  U	(       a  GM  US   SUR                  -  :X  d  US   UR                  ;   d  GM    g   g! [         a  nU R	                  S	U-  5         SnAgSnAff = fs  snf s  snf s  snf )-zRead CVS rlog for current directory or named path in
repository, and convert the log to changesets based on matching
commit log entries and dates.
s	   new_caches   writes   update_cacherQ   Ns	   revisionss   root)r   r   s   %r
s   fuzzs	   ancestorsr   rX   s   branchesrh   s   ---------------------
s   PatchSet %d 
s	   Date: %s
rU   s   Author: %s
s   Branch: %s
s   Tag%s: %s 
r      s   ,s   (none)s   Branchpoints: %s 
r   s   parentss   Parents: %s
s   %ds   Parent: %d
s   %s:%d:%ds   Ancestors: %s
s   Log:
s   %s

s
   Members: 
s   prefixs   	%s:%s->%s%s 
rO   s   INITIALs   (DEAD)rW   F)r   byteskwargsr   r8   writer'  r   r   r  r   writenoi18nr
   r   ry   r   r   r+   rR   r(   r   r   r   r`   r   rc   ra   r   )r   argsoptsr   	revisionsr   r   r   r  offrb   	ancestorscsr   r   r~   r  r   fnrr   s                       r   
debugcvspsr5    s   
 %DL	o	\"I	CyT']%HH  B']%@C
 !$w-8J i.CHIyy(RZZBJJqM<L<Lzz!}//!34;;JJqM$$(	))$ #%%%HYY %gd;.?? HH/0NN,ruu45NN""277,EFG NN?RYY67NN?bii.B7CDNN$KBGGq 01IIbgg&3) *UZZr8O-PP JBJJrzz?Q&NN(99bjj%Ijuqtt|j%IJL
 NN?RZZ]5E5E#EFL!II$<DAqHH[AL!X[+IIJ a NN#51#FGNN9%HHY+,NN>*ZZVV==i11CY023B'		ahh"?h519h"?@NJ		

"C
1EAI
"CDi(0		   HHUO |.)A,"''2I y>Acc|.)A,"''2Ie   
1l &J2 #@"Cs/   #U? U? V* V/7V4?
V'	V""V')Nr   TN)r9   NN)
__future__r   r  r   r   r   mercurial.i18nr   	mercurialr   r   r   r   r	   mercurial.utilsr
   r   r   r   r   r8   rF   r   r   r'  r5  r6   r   r   <module>r:     sk    #  	  	   B B<	y 	%P]@D D8Pf
tr   