
    q&f                         d dl Z 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mZmZ d dlmZmZmZ  G d d      Z G d d	e      Zd
 ZddZ G d d      ZddZd Zy)    N)_)open)encodingerrorhookpycompatutil)dateutilprocutil
stringutilc                       e Zd ZdZd Zd Zy)logentrya  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    d| _         | j                  j                  |       y NF)	synthetic__dict__updateselfentriess     5/usr/lib/python3/dist-packages/hgext/convert/cvsps.py__init__zlogentry.__init__2   s    W%    c                       fdt         j                        D        }t               j                  ddj	                  |      dS )Nc              3   F   K   | ]  }|d j                   |     yw)=Nr   .0kr   s     r   	<genexpr>z$logentry.__repr__.<locals>.<genexpr>7   s     PQAt}}Q/0P   !(z, )sortedr   type__name__joinr   itemss   ` r   __repr__zlogentry.__repr__6   s4    P&:OP:..		%0@AAr   Nr(   
__module____qualname____doc__r   r,    r   r   r   r      s    (&Br   r   c                       e Zd Zy)logerrorN)r(   r.   r/   r1   r   r   r3   r3   ;   s    r   r3   c                     | j                  d      }|d   j                  d      }d}|dk7  r|}|d   |d   j                  d|      d }|S )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   getrepopathr@   ?   s[    : MM$Er%JERRyre467HOr   c                 %  ? i ??fd}| j                  t        d             g }t        j                  d      }t        j                  d      }t        j                  d      }	t        j                  d      }
t        j                  d      }t        j                  d      }t        j                  d	      }t        j                  d
      }t        j                  d      }t        j                  d      }t        j                  d      }t        j                  d      }t        j                  d      }d}|	 t	        t
        j                  j                  dd      d      5 }|j                         j                         }ddd       |}|dk(  rd}|r2|j                  t        j                        s|t        j                  z  }	 t	        t
        j                  j                  dd      d      j                         j                         }|s t        j                   j#                  dd      }g }d}|rt
        j                  j%                  d      }t
        j                  j'                  |      st        j(                  |       |j+                  d      |dgz   }|D cg c]*  }|sdj                  t        j,                  d|            , }}t
        j                  j                  |dj                  |D cg c]  }|s|	 c}            }|dk(  r	 | j/                  t        d      z         t1        j2                  t	        |d            }|D ]D  }t5        |d       rt5        |d!      rt5        |d"      r(| j                  t        d#             g } n | j/                  t        d$      t7        |      z         |r%|d&   j:                  }t=        j>                  |d'      }d(d)g}|re|jA                  d*|z         tC        jD                  tG        |            }|j                  d+      s|d+z  }|r|tC        jD                  |      z   }n|}|jA                  d,d-g|          |r|jA                  d.|z         |jA                  |       i }i }i } d/}!d0}"|D #cg c]  }#tI        jJ                  |#       }}#| j/                  t        d1      d2j                  |      z         | jM                  d3|||fz         tI        jN                  d2j                  |      d      }$tC        jP                  |$jS                               }%	 |%}&|&dk(  r	ntC        jP                  |$jS                               }%|&j                  d5      r|&dd& }&|!d/k(  r|jU                  |&      }'|'r|'jW                  d6      }(i }|rytC        jD                  |(dd7       })|)jY                  |      r|)t7        |      d })|)jY                  d+      r|)d6d })|)jY                  d8      r|)d9d })n|)j[                  d:d+      })d;}!d6}!|jU                  |&      }'|'rt        |'jW                  d6            |	jU                  |&      }'|'rt        |'jW                  d;            |
jU                  |&      rt        |&      |!d6k(  rK|jU                  |&      }'|'sJ t        d<             tC        jD                  |'jW                  d6            })d;}!n|!d;k(  r|jU                  |&      ri }d=}!n|!d=k(  r|jU                  |&      }'|'r|'jW                  d;      j+                  d      D *cg c]  }*t]        |*       }+}*t7        |+      },|,d=kD  r|,d;z  d/k(  r|+d7   d/k(  r|+dd7 |+d&d z   }+t_        |+      }+|+|vrg ||+<   ||+   jA                  |'jW                  d6             |'jW                  d;      ||'jW                  d6      <   n|jU                  |&      rd>}!n|jU                  |&      rd/}!n|!d?k(  r7|jU                  |&      rd>}!n|jU                  |&      rqJ t        d@             |!d>k(  r|jU                  |&      }'|'sJ t        dA             ta         |(       |)      t_        |'jW                  d6      j+                  d      D *cg c]  }*t]        |*       c}*      g dddtc               B      }d9}!n|!d9k(  rS|jU                  |&      }'|'sJ t        dC             |'jW                  d6      }-|-d;   d+k(  rdD|-z   }-t7        |-j+                               d=k7  r|-dEz   }-t=        jd                  |-g dF      _         ||'jW                  d;            |_3        |'jW                  d=      ji                         dGk(  |_5        |'jW                  d>      rm|'jW                  d9      r:t]        |'jW                  d>            t]        |'jW                  d9            f|_6        n\t]        |'jW                  d>            d/f|_6        n:|'jW                  d9      r"d/t]        |'jW                  d9            f|_6        nd|_6        |'jW                  dH      r|'jW                  dI      |_7        |'jW                  dJ      r|'jW                  dK      j+                  d      }.t7        |.      d;k(  rdL|_8        n`dj                  |.dd7 dM|.d7   gz         }.|D /cg c]  }/||/   |.k(  s|/ }0}/t7        |0      d6k(  sJ dN|jp                  z         |0d/   |_8        g |_9        dH}!nw|!dHk(  r|jU                  |&      }1|1ru|1jW                  d6      j+                  dO      D *2cg c]A  }*t_        |*j                         j+                  d      D 2cg c]  }2t]        |2       c}2      C c}2}*_:        dI}!n|jU                  |&      r|jU                  |%      rd>}!d4}"n|jU                  |&      rd/}!d4}"njr                  jA                  |&       n|!dIk(  r|jU                  |&      rJ|%}3|3j                  d5      r|3dd& }3|jU                  |3      rd>}!d4}"nMjr                  jA                  |&       n1|jU                  |&      rd/}!d4}"njr                  jA                  |&       |"rjj                  r||jv                  d&   d6k(  rjt7        |jr                        d6k(  rR|jU                  |jr                  d/         r4| jM                  dP|jx                  |jr                  d/   fz         d4|_=        |"r
d0}"t}        |j#                  jv                  g       D *cg c]
  }* ||*       c}*      |_?         |d5j                  |jr                              |_9        t7        |jv                        },|,d=kD  r1|,d;z  d/k(  r)|j#                  |jv                  dd& dg      d/   |_@        nd|_@        tc               }4|j                         D ]  \  }5}6t_        |6j+                  d      D 7cg c]  }7t]        |7       c}7      }8t7        |8      d;k  rF|8d7   d/k(  r0|8d&   d;z  d/k(  r%|8dd7 |jv                  k(  sl|4j                  |5       ~|8dQk(  s|8|jt                  v s|4j                  |5        |4|_C        |jA                  |       |jx                  | |jx                  j[                  d:d+      <   t7        |      dRz  d/k(  r@| j                  t        j                  dSt7        |      |j                  fz  dT      d5z          
|j                  dU V       i }9t}        |dW V      D ]V  }|jx                  j[                  d:d+      }(|(| v r
| |(   |_<        |jv                  dd& }5|jv                  |9|jx                  |5f<   X |D ]b  }|jv                  dd& }5|9j#                  |jx                  |5fd      }||jv                  dd7 }||_H        |jv                  |9|jx                  |5f<   d |r|r|j                  dX V       |r3|d&   j:                  |d/   j:                  k\  rt        t        dY            ||z   }| j/                  t        dZ      z         t1        j                  |t	        |d[             n|}| j                  t        d\      t7        |      z         | j                  d]d^      }:|:rd_ };|D ]  }<|<jr                  }=|:D ]y  }	 |=j                  t        j                  |            j                  d`      |<_9        | j                  r1| jM                  da| |;|<jv                        |<j                  fz           t        j                  t        dd       |;|<jv                        |<j                  fz  t        db      c       t        j                  | dded4|f       |S # 1 sw Y   wxY w# t        $ r t        t        d            w xY w# t        $ r Y #w xY wc c}w c c}w # t8        $ r(}| j/                  t        d%      |z         Y d}~d}~ww xY wc c}#w c c}*w c c}*w c c}/w c c}2w c c}2}*w c c}*w c c}7w # t        $ r Y t        $ r8}>t        j                  t        j                  |>      t        db      c      d}>~>ww xY w)gzCollect the CVS rlogc                 (    j                  | |       S )z#return a shared version of a string)
setdefault)s_scaches    r   scachezcreatelog.<locals>.scachen   s    !!!Q''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
   Repositorys   rb   .s   not a CVS sandboxs   Roots   CVSROOTs   ~/.hg.cvspsr5   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
r6      %Y/%m/%d %H:%M:%S %1%2s   cvss   -qs   -d%sr8   s   logs   rlogs   -d>%sr   Fs   running %s
    s   prefix=%r directory=%r root=%r
T   
   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parentrK   rL   rJ   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
)rP   rP   rP   d      %d %sP   c                 2    | j                   | j                  fS NrW   rY   xs    r   <lambda>zcreatelog.<locals>.<lambda>  s    AEE1::. r   keyc                 2    | j                   | j                  fS rg   rh   ri   s    r   rk   zcreatelog.<locals>.<lambda>  s    155!***= r   c                     | j                   S rg   )dateri   s    r   rk   zcreatelog.<locals>.<lambda>  s
    166 r   s>   log cache overlaps with new log entries, re-run without cache.s   writing cvs log cache %s
s   wbs   %d log entries
s   converts   cvsps.logencodingc                 h    dj                  t        j                  t        j                  |             S )NrG   )r)   r   maplistbytestr)rs    r   revstrz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)Ustatusr   recompiler   ospathr)   readstripIOErrorr3   endswithr   ossepr   environget
expanduserexistsmkdirr9   findallnotepickleloadhasattrlen	Exceptionrp   r
   datestrappendr	   normpathr@   r   
shellquotedebugpopenfromnativeeolreadlinematchgroup
startswithreplaceinttupler   set	parsedateauthorlowerdeadlinesrK   rL   commentrZ   rY   rW   r   r&   tagsbranchr+   addrJ   r   ellipsisrX   sortr[   dump
configlistdecodesysstrencode	debugflagUnicodeDecodeErrorLookupErrorr   Abortrs   r   )@ui	directoryrootrlogcacherF   rw   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oldlogrp   cachedir	cachefilerD   ecmdpr   	branchmaprcsmapstatestoreargpfppeekliner   rW   filenamerj   revrevndmyrevbrZ   mycpeekrJ   r   rY   irevpartsversions	encodingsru   entryr   instrE   s@                                                                  @r   	createlogr   g   s   
 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=95A *Q)*I~ &//(..9hnn$F	VW5u=BBDJJLD ##J4 FD77%%n5ww~~h'HHX JJt$	8'<<	@IO1QTYYrzz'156O	OGGLLdiiI ;q ;<
	 		9GGA34y@A[[i!78F A~.:.<0IIa 789F 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
38s#
3C
3GGAo$))C.12HH0FIt3LLM
..3
/Cclln-D
3;!!#,,.1==9D A:KK%Ekk!n#}}S"X6H**62#+CKM#:**40#+AB<**9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!s1vB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K1A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Na	!8MNHNx=A- -<- $,A;ALAIEaZ D!A WWQZ--d3 1779??4+@Aa3q6AB
 T"u{{4'8T"		  &aZ{{4 >>%(!#2JE;;u%E EII$$T*T"		  & 

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

2$((0*1::-$((0
1 *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KKT)U34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JU* *
  	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l * " ++ ((.L s   ;*AH %AG9AH 
AAH' %AH7-'AH7?AH<AH<A%AI AAI $AI5AI:<AI?9AJAJ?+AJ*AJ	<	AJ-AJ8AJ
DA5AJG9AHG>AH HAH$H'	AH4H3AH4I	AI2I
AI-I-AI2J	AJJ	AK*J*AK*J23AK%K%AK*c                       e Zd ZdZd Zd Zy)	changeseta  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    d | _         d| _        | j                  j                  |       y r   )idr   r   r   r   s     r   r   zchangeset.__init__T  s"    W%r   c                       fdt         j                        D        }dt               j                  dj	                  |      fz  S )Nc              3   F   K   | ]  }d |j                   |   fz    yw)s   %s=%rNr   r   s     r   r!   z%changeset.__repr__.<locals>.<genexpr>Z  s)      
12H4==+,,
r"   s   %s(%s)   , r%   r*   s   ` r   r,   zchangeset.__repr__Y  s@    
6<T]]6K
 DJ//E1BCCCr   Nr-   r1   r   r   r   r   D  s    &
Dr   r   c                    | j                  t        d             i |D ]g  }|j                  s|j                  vr|j                  |j                  <   8t	        |j                  |j                           |j                  <   i |j                  fd       g }t               }dt        |      D ]E  \  }}r|j                  j                  k(  r|j                  |j                  j                  k(  s|j                  j                  |j                  j                  k(  r|j                  j                  k(  r|j                  j                  k(  rvj                  d   j                  d   z   |j                  d   |j                  d   z   cxk  r%j                  d   j                  d   z   |z   k  rn n|j                  |vst        |j                  |j                  |j                  |j                  g |j                  |j                  |j                        |j                         t               }t!        |      dz  dk(  rXd	t!        |      t#        j$                  |j                        d
d fz  }	| j                  t'        j(                  |	d      dz          j*                  j                  |       |j-                  |j                         |j                  _        H |D ]:  t!        j*                        dk(  xr j*                  d   j.                  _        < d }
|D ]1  j*                  j                  t1        j2                  |
             3 t               fd}|j                  t1        j2                  |             i |D ])  j*                  D ]  }|j4                  D ]  }|<   	  + |D ]R  t               }j*                  D ]  }|j7                  |j4                          t9        fd|D              _        T |d}|rt;        j<                  |      }|d}|rt;        j<                  |      }i }i }t!        |      }d}||k  r||   j*                  D ]  }|||j>                  |j@                  f<    d}j                  |v r|j                     }n2tC        |      D ]$  }j                  ||   j                  vr| n#|}& g _"        |||   }|j.                  rTt!        |jD                        dk  sJ t        d             |jD                  r|jD                  d   }nd}n|j.                  rT|jD                  j                  |       j                  rAj                  dk(  rd_        jD                  j                  ||j                               |rx|jG                  j                        }|r[|jI                  d      }|dk(  rd}	 |||      }||v r6j                  |k7  r'j.                  sjD                  j                  |       |r|jG                  j                        }|r|jQ                         r|jI                  d      }|dk(  rd}nd}||v rsj                  |k7  rdt        j                  |j                  dj                  z  g g |||      g      }|jS                  |dz   |       |dz   ||<   |dz  }|d
z  }||j                  <   |dz  }||k  rd}|t!        |      k  r'||   j.                  r||= n|dz  }|t!        |      k  r't        |      D ]  \  }|dz   _*         rWD ]R  \  }}|jT                  |jT                   | jM                  t        d      |jT                  |jT                  fz         T | j                  t        d      t!        |      z         tW        jV                  | ddd|       |S # tJ        $ r@ | jM                  t        d      t#        jN                  |      j                  fz         Y Mw xY w)zConvert log into changesets.s   creating changesets
c                     j                  | j                  d      | j                  xs d| j                  | j                  | j                  xs d| j
                  | j                  fS )N)r6   r   r   )r   rK   r   r   r   rp   rJ   )rj   mindates    r   rk   z!createchangeset.<locals>.<lambda>p  sO    KK

G,JJ#IIHHHHOFFNN
 r   rl   Nr   rP   )r   r   r   rp   r   rL   rJ   rK   rc   rd   rS   r6   re   rO   c                 D   | j                   j                  d      } |j                   j                  d      }t        |       }t        |      }t        ||      }t	        |      D ]:  }|dz   |k(  r||k  r y|dz   |k(  r||kD  r y| |   ||   k  r y| |   ||   kD  s: y y)zMimic cvsps sorting orderr8   rP   r6   r   )rX   r9   r   minrange)lrt   nlnrnr   s         r   entitycomparez&createchangeset.<locals>.entitycompare  s    FFLLFFLLVVBKq 	A1u{rBwQ"b1!1!	 r   c                    t        | j                        t        |j                        z
  }|r|S i }| j                  D ]  }|j                  ||j                  <    i }|j                  D ]  }|j                  ||j                  <    d}| j                  D ]4  } |j
                  |j                  d       |j                  k(  s.|rJ d} n |j                  D ]D  }|j                  |j                  d       |j                  k(  s-|rj                  | |f       d} n d }|s/ |t        | j                        t        |j                              }|sM || j                  D cg c]  }|j                   c}|j                  D cg c]  }|j                   c}      }|s/ |t        | j                        t        |j                              }|S c c}w c c}w )Nr   rP   r6   c                     | |kD  | |k  z
  S rg   r1   )rj   r   s     r   rk   z0createchangeset.<locals>.cscmp.<locals>.<lambda>  s    !a%AE* r   )sumrp   r   rY   rW   r   r[   r   r   rX   rJ   )r   rt   r   ler   ry   codds          r   cscmpzcreatechangeset.<locals>.cscmp  s   K#aff+%H  	#A

BquuI	# 	#A

BquuI	#  	ArvvaeeT"ahh.u		  	AvvaeeT"ahh.GGQFO	 +#aii.#aii.1A199-a166-		/J1/JKA #ann%s1>>':;A ./Js   'G
G
c              3   2   K   | ]  }|   u s|  y wrg   r1   )r   tagr   
globaltagss     r   r!   z"createchangeset.<locals>.<genexpr>#  s     Dz#!/CDs   s   {{mergetobranch ([-\w]+)}}s   {{mergefrombranch ([-\w]+)}}s0   synthetic changeset cannot have multiple parentsr`   sB   warning: CVS commit message references non-existent branch %r:
%s
s&   convert-repo: CVS merge from branch %s)r   r   rp   r   r   r   parentss)   changeset %d is both before and after %d
s   %d changeset entries
s   cvschangesetsT)
changesets),rx   r   rK   rp   r   r   r   	enumeraterJ   r   r   r   rX   r   rL   r   r   r   bytereprr   r   r   r   r   	functools
cmp_to_keyr   r   r&   ry   rz   rW   rY   r   r   searchr   KeyErrorwarnrs   groupsinsertr   r   )r   rw   fuzz	mergefrommergetor   r   filesr   tr   r   r   r   r   rZ   r   r   r   	candidater   ccr   rt   r   r   r   r   s                           @@@@r   createchangesetr  `  s    IIa()* G G::zz(&'ff

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

#G HH
  
 JEEA# ;1& !..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<=					!&&w;~  	E !))n)Daiil.D.D	E$  @			9//>?@
 %C.` OO	,,U3O4 J $ 	$Avv $"#
3$	$$  Eu 	 AKK	  DtDDE 0**W%4	JJy)	HHJA	A
a%qM 	.A,-HaeeQZZ()	. 88x"A #1X 	88:i#8#E#EE} 	=1A ++199~* AG- * 99		!AA ++ }		  #<<||w&#IIZ(>?@  +AGGAJ<A	 *8A; 7I =QXX]9;N;NII$$Y/qyy)A88:
AG| A=QXX]" xx VV I((!# "!+HQK!8! <	B %%a!eR0"#a%HQK FAFA	Q} a%D 	
A
c*o
a=""1FA	 c*o
 *% 11u  	DAqttADD$4CDttQTTl#	 IIa)*S_<=IIb$($:FK   GG= $++A.		:	;s   `$ $Aa-,a-c                 X
   t        j                  |      }|d   rd}n
|d   rd}nd}|d   }	 |rg }|D ]  }|t        | ||d   |      z  } nt        | |d   |      }t        | ||d
         }~t        |      }	i }
i }|D ]l  }|d   r|j                  |
vrt|j                  rh|j                  d   j                  rO||j                  d   j                  dz
     j                  |j                  d   j                  f||j                  <   |j                  |
|j                  <   |d   r|j                  xs d|d   vr|	sC| j	                  d       | j	                  d|j                  z         | j	                  dt        j                  |j                  d      z         | j	                  d|j                  z         | j	                  d|j                  xs dz         | j	                  dddgt        |j                        dkD     dj                  |j                        xs dfz         |j                   r6| j#                  ddj                  t%        |j                               z         |d   r|j                  rt        |j                        dkD  rI| j	                  ddj                  |j                  D cg c]  }d|j                  z   c}      z         n+| j	                  d |j                  d   j                  z         |d   r^|j                  }g }|r)||   \  }}|j'                  d!|xs d||
|   fz         |r)|r#| j	                  d"dj                  |      z         | j#                  d#       | j	                  d$|j(                  z         | j#                  d%       |j*                  D ]  }|j,                  }|j/                  |d&         r|t        |d&         d }| j	                  d'|d(j                  |j0                  D cg c]  }d|z  	 c}      xs d)d(j                  |j2                  D cg c]  }d|z  	 c}      dd*g|j4                     fz          | j	                  d+       |r*|	r(|d   d|j                  z  k(  s|d   |j                  v rd,}	t        |      dkD  sA|	rE|d   d|j                  z  k(  s|d   |j                  v sm y y# t        $ r}| j	                  d	|z         Y d}~yd}~ww xY wc c}w c c}w c c}w )-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_cacherI   Ns	   revisionss   root)r   r   s   %r
s   fuzzs	   ancestorsr   rP   s   branchesr`   s   ---------------------
s   PatchSet %d 
s	   Date: %s
rM   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 
rG   s   INITIALs   (DEAD)rO   F)r   byteskwargsr   r3   writer  r   r   r   r   r
   r   rp   r   r   r)   rJ   writenoi18nr&   r   r   r   rX   r   r[   rY   r   )r   argsoptsr   	revisionsrw   r   r   r   offrZ   	ancestorscsr   r   rt   r   r   fnrj   s                       r   
debugcvspsr    s   
 %DL	o	\"I	C IyQT']%HHI BT']%@C
 !S$w-8J i.CHI Yyy(RZZBJJqM<L<Lrzz!}//!34;;JJqM$$(	"))$ #%%%HRYY %gd;.?? HH/0HH'"%%/1HH!&&rww0IJK HHo		13HHo)=g>@HH#dCL1$45		"''*7i *UZZr8O-PP JBJJrzz?Q&HH,#yy"**)MQ5144<)MNP HHo

10@0@@BL!II$Q<DAqHH[AL!Xa[+IIJ  HH0DIIaLACNN9%HHY+,NN>*ZZ VV==i1CY023B'		ahh"?519"?@NJ		

"C1EAI"CDi(0		 HHUO |.)A,"''2I y>Ac|.)A,"''2IsY  
1x *N4 #@"Cs)   2S3 TT"
T'3	T<TT)Nr   TN)<   NN)r  r{   r   ry   mercurial.i18nr   mercurial.pycompatr   	mercurialr   r   r   r   r	   mercurial.utilsr
   r   r   r   r   r3   r@   r   r   r  r  r1   r   r   <module>r%     sk     	  	  #  B B<	y 	%PZzD D8Qh
{r   