
    cÍ                         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dS )    N)_)open)encodingerrorhookpycompatutil)dateutilprocutil
stringutilc                       e Zd ZdZd Zd ZdS )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                            |           d S 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                    |          dS )Nc              3   <   K   | ]}|d j         |         V  dS )=Nr   .0kr   s     r   	<genexpr>z$logentry.__repr__.<locals>.<genexpr>7   s6      PPQAAAt}Q//0PPPPPPr   (z, )sortedr   type__name__joinr   itemss   ` r   __repr__zlogentry.__repr__6   sR    PPPP&:O:OPPP::...		%0@0@0@0@AAr   Nr'   
__module____qualname____doc__r   r+    r   r   r   r      sA         (& & &B B B B Br   r   c                       e Zd ZdS )logerrorN)r'   r-   r.   r0   r   r   r2   r2   ;   s        Dr   r2   c                     |                      d          }|d                             d          }d}|dk    r|}|d         |d                             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?   ?   sj    : MM$Er%%JERRyre44667HOr   r   Tc                 (  6789 i 66fd9|                      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}|6	 t	          t
          j                            dd          d          5 }|                                	                                }ddd           n# 1 swxY w Y   |}|dk    rd}n*# t          $ r t          t          d                    w xY w|r.|                    t          j                  s|t          j        z  }	 t	          t
          j                            dd          d                                          	                                }n# t          $ r Y nw xY w|s t          j                            dd          }g }d}|rt
          j                            d          }t
          j                            |          st          j        |           |                    d          |dgz   }d |D             }t
          j                            |d                    d |D                                 }|dk    rE	 |                     t          d          |z             t/          j        t	          |d                    }|D ]g}t3          j        |d           r*t3          j        |d!          rt3          j        |d"          s&|                      t          d#                     g } nh|                     t          d$          t7          |          z             n<# t8          $ r/}|                     t          d%          |z             Y d}~nd}~ww xY w|r"|d&         j        }t=          j        |d'          }d(d)g}|ro|                     d*|z             t3          j!        tE          |                    }|                    d+          s|d+z  }|r|t3          j!        |          z   }n|}|                     d,d-g|                    |r|                     d.|z             |                     |           i }i 7i }d/}d0}d1 |D             }|                     t          d2          d3                    |          z             | #                    d4|||fz             tI          j%        d3                    |          d          } t3          j&        | '                                          }!	 |!}"|"dk    rnDt3          j&        | '                                          }!|"                    d6          r
|"dd&         }"|d/k    rm|(                    |"          }#|#r|#)                    d7          }$i }|rt3          j!        |$dd8                   }%|%*                    |          r|%t7          |          d         }%|%*                    d+          r
|%d7d         }%|%*                    d9          r|%d:d         }%n|%+                    d;d+          }%d<}(d7},|(                    |"          }#|#r"t          |#)                    d7                    |(                    |"          }#|#r"t          |#)                    d<                    |	(                    |"          rt          |"          n|d7k    rY|
(                    |"          }#|#sJ t          d=                      t3          j!        |#)                    d7                    }%d<}n|d<k    r|(                    |"          ri 7d>}n_|d>k    r-|(                    |"          }#|#rd? |#)                    d<                              d          D             }&t7          |&          }'|'d>k    r*|'d<z  d/k    r!|&d8         d/k    r|&dd8         |&d&d         z   }&tY          |&          }&|&|vrg ||&<   ||&                              |#)                    d7                     |#)                    d<          7|#)                    d7          <   n]|(                    |"          rd@}nD|(                    |"          rd/}n+|dAk    rG|(                    |"          rd@}n|(                    |"          rJ t          dB                      n|d@k    r|(                    |"          }#|#sJ t          dC                      t[           9|$           9|%          tY          dD |#)                    d7                              d          D                       g dddt]                      E          }d:}n4|d:k    r|(                    |"          }#|#sJ t          dF                      |#)                    d7          }(|(d<         d+k    rdG|(z   }(t7          |(                                          d>k    r|(dHz   }(t=          j/        |(g dI          |_         9|#)                    d<                    |_0        |#)                    d>          1                                dJk    |_2        |#)                    d@          r|#)                    d:          rJtg          |#)                    d@                    tg          |#)                    d:                    f|_4        nptg          |#)                    d@                    d/f|_4        nF|#)                    d:          r*d/tg          |#)                    d:                    f|_4        nd|_4        |#)                    dK          r|#)                    dL          |_5        |#)                    dM          r|#)                    dN                              d          8t7          8          d<k    rdO|_6        nid                    8dd8         dP8d8         gz             878fdQ7D             })t7          |)          d7k    sJ dR|j6        z              |)d/         |_6        g |_7        dK}na|dKk    r|(                    |"          }*|*r;dS |*)                    d7                              dT          D             |_8        dL}n	|(                    |"          r|(                    |!          rd@}d5}n|(                    |"          rd/}d5}n|j7                             |"           n|dLk    r|(                    |"          rV|!}+|+                    d6          r
|+dd&         }+|(                    |+          rd@}d5}nO|j7                             |"           n4|(                    |"          rd/}d5}n|j7                             |"           |r|j2        rz|j9        d&         d7k    rit7          |j7                  d7k    rQ|(                    |j7        d/                   r1| #                    dU|j:        |j7        d/         fz             d5|_;        |r$d0}ty          9fdV|                    |j9        g           D                       |_=         9d6                    |j7                            |_7        t7          |j9                  }'|'d>k    r9|'d<z  d/k    r0|                    |j9        dd&         dg          d/         |_>        nd|_>        t]                      },7?                                D ]\  }-}.tY          dW |.                    d          D                       }/t7          |/          d<k     rE|/d8         d/k    r8|/d&         d<z  d/k    r)|/dd8         |j9        k    r|,@                    |-           |/dXk    r|/|j8        v r|,@                    |-           |,|_A        |                     |           |j:        ||j:        +                    d;d+          <   t7          |          dYz  d/k    rB|                      t          jC        dZt7          |          |jD        fz  d[          d6z              N|E                    d\ ]           i }0ty          |d^ ]          D ]N}|j:        +                    d;d+          }$|$|v r||$         |_:        |j9        dd&         }-|j9        |0|j:        |-f<   O|D ]W}|j9        dd&         }-|0                    |j:        |-fd          }||j9        dd8         }||_F        |j9        |0|j:        |-f<   X|r|r|E                    d_ ]           |r8|d&         j        |d/         j        k    rt          t          d`                    ||z   }|                     t          da          |z             t/          jG        |t	          |db                     n|}|                      t          dc          t7          |          z             | H                    ddde          }1|1r&df }2|D ]}3|3j7        }4|1D ]}	 |4I                    t          jJ        |                    K                    dg          |3_7        | jL        r.| #                    dh| |2|3j9                  |3jD        fz              n# t          $ r Y t          $ r:}5t          jP        t          jQ        |5          t          di          j          d}5~5ww xY wt          jP        t          dk           |2|3j9                  |3jD        fz  t          di          j          !t          jR        | ddld5|m           |S )nzCollect the CVS rlogc                 0                         | |           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.cvspsr4   s   cachec                 b    g | ],}|d                      t          j        d|                    -S )   -s   \w+)r(   refindallr   rC   s     r   
<listcomp>zcreatelog.<locals>.<listcomp>   s5    OOO1QOTYYrz'15566OOOr   c                     g | ]}||S r0   r0   rK   s     r   rL   zcreatelog.<locals>.<listcomp>   s     ; ; ;q ; ; ; ;r      updates   reading cvs log cache %s
s   branchpointss   commitids
   mergepoints   ignoring old cache
s   cache has %d log entries
s   error reading cache: %r
r5      %Y/%m/%d %H:%M:%S %1%2s   cvss   -qs   -d%sr7   s   logs   rlogs   -d>%sr   Fc                 6    g | ]}t          j        |          S r0   )r   
shellquote)r   args     r   rL   zcreatelog.<locals>.<listcomp>   s#    
3
3
38s##
3
3
3r   s   running %s
    s   prefix=%r directory=%r root=%r
T   
   s   Attic/   s   /Attic/   s)   RCS file must be followed by working file   c                 ,    g | ]}t          |          S r0   intr   xs     r   rL   zcreatelog.<locals>.<listcomp>/  s    BBB!s1vvBBBr         s!   must have at least some revisionss   expected revision numberc                 ,    g | ]}t          |          S r0   r[   r]   s     r   rL   zcreatelog.<locals>.<listcomp>S  s    KKK1AKKKr   )rcsfilerevisionbranchesparentcommitid
mergepointbranchpointss&   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   0c                 ,    g | ]}|         k    |S r0   r0   )r   b	branchmapmyrevs     r   rL   zcreatelog.<locals>.<listcomp>  s'    NNNa	!8M8M8M8M8Mr   s   unknown branch: %sc                     g | ]@}t          d  |                                                    d          D                       AS )c                 ,    g | ]}t          |          S r0   r[   )r   ys     r   rL   z(createlog.<locals>.<listcomp>.<listcomp>  s    AAAa3q66AAAr   rF   )tuplestripr8   r]   s     r   rL   zcreatelog.<locals>.<listcomp>  sS        AA17799??4+@+@AAABB  r      ;s#   found synthetic revision in %s: %r
c                 &    g | ]} |          S r0   r0   )r   r^   rE   s     r   rL   zcreatelog.<locals>.<listcomp>  s!    III1VVAYYIIIr   c                 ,    g | ]}t          |          S r0   r[   )r   is     r   rL   zcreatelog.<locals>.<listcomp>  s    !G!G!GQ#a&&!G!G!Gr   )rU   rU   rU   d      %d %sP   c                     | j         | j        fS Nrb   rd   r^   s    r   <lambda>zcreatelog.<locals>.<lambda>  s    AE1:. r   keyc                     | j         | j        fS r   r   r   s    r   r   zcreatelog.<locals>.<lambda>  s    15!**= r   c                     | j         S r   )dater   s    r   r   zcreatelog.<locals>.<lambda>  s    16 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                 f    d                     t          j        t          j        |                     S )NrF   )r(   r   maplistbytestr)rs    r   revstrzcreatelog.<locals>.revstr  s&     99X-h.>BBC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)Sstatusr   rI   compiler   ospathr(   readrx   IOErrorr2   endswithr   ossepr   environget
expanduserexistsmkdirr8   notepickleloadr	   safehasattrlen	Exceptionr   r
   datestrappendnormpathr?   debugr   popenfromnativeeolreadlinematchgroup
startswithreplacerw   r   set	parsedateauthorlowerdeadr\   linesrg   rh   commentre   rd   rb   r   r%   tagsbranchr*   addri   r   ellipsisrc   sortrf   dump
configlistdecodesysstrencode	debugflagUnicodeDecodeErrorLookupErrorr   Abortr   r   ):ui	directoryrootrlogcacher   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oldlogr   cachedir	cachefileecmdpr   rcsmapstatestorepfppeekliner   rb   filenamerevrevndre   mcpeekri   r   rd   revpartsversions	encodingsr   entryr   instrD   rr   rs   rE   s:                                                         @@@@r   	createlogr   g   s   
 G( ( ( ( ( IIa())***
C J)**EJ899EJ566EJI E J-..EJ)**EJ,--EJ788EJ	3 E JCDDEJ	( E J*++EJNOOMF	4bgll6=995AA *Q))* * * * * * * * * * * * * * *I~~ 	4 	4 	41122333	4  	%&//(.99 	%hn$F	VW55u==BBDDJJLLDD 	 	 	D	  5##J44 FD 
7%%n55w~~h'' 	HX JJt$$	8'<<	OO	OOO	GLLdii ; ;I ; ; ;<<
 
	 		9GGA344y@AAA[i!7!788F  $Q88(K88 (M::
 IIa 788999FE GGA344s6{{BCCCC 	9 	9 	9GGA233a788888888	9  	E":?D#D*CDDD 5/C 	

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

8d?###JJy DIFEE
3
3s
3
3
3CGGAo$))C..1222HH0FIt3LLMMM
.3
/
/Ccllnn--Dr3;;!#,,..11== 	9D A::KK%%E kk!nn #}S"X66H**622 ;#+CKKMM#:**400 0#+ABB<**955 F#+ABB<#+#3#3J#E#EEKK%%E /u{{1~~...KK%%E /u{{1~~...{{4   %tnn$% aZZKK%%EII!HIIIII}U[[^^44HEEaZZ{{4   	aZZKK%%E BBu{{1~~';';D'A'ABBB 3xx!88aCGqLLcrc(SX-CCjjd?? "DIS	  Q000,1KKNN	%++a..))T"" T"" aZZ{{4    ;;t,,  a8/ /     aZZ KK%%E88!788888F3KKVH%%KKA0D0DT0J0JKKKLL UU	 	 	A EEaZZKK%%EFF!EFFFFFAAtt||AI17799~~""K'   AF vekk!nn--AH[[^^))++w6AF{{1~~ ;;q>> 7"5;;q>>22CA4G4GHAGG"5;;q>>22A6AGGQ c%++a..112{{1~~ ,"[[^^
{{1~~ 
/B--d33u::??#*ALL IIeCRCjD%)3D&DEEENNNNN9NNNHx==A----< .-- $,A;ALAIEEaZZ D!!A ' WWQZZ--d33  
 T"" 'u{{4'8'8 'T"" '	  &&&&aZZ{{4   '>>%(( '!#2#JE;;u%% +E EEI$$T****T"" '	  &&& 
	
	 
2!##AI!####AIaL11 $ HH715!)A,:OO   AK #	EIIIIR0H0HIIIJJAFuzz!)4455AIqz??DaxxTAX!OO88AJssOdV<<Q? 55L$-OO$5$5 
1 
1  !G!G(..2F2F!G!G!GHHx==1$$B<1$$")9Q)>)>}
22$((000**1:--$((000)ANJJqMMM67eF15==T2233xx#~""		'CHHaf3E(ErJJ  _rh HH..H/// HF = =>>> / /emmJ--&==3KAECRC$%J!%!! / /CRCLL!%$//9
3B3A$%J!%!!   	HH))H*** &*/SV[882    3,C GGA344y@AAAKT)U334444CIIa#$$s3xx/000j*>??I %	D 	D 	D
  	 	EmG  $+NN8?13E3E$F$F$M$M% %EM | < &&"8"8%*EF   E)   D"   + (..L     k9  ven--uz:	;
 KLL    ( 	Ib$	4S1111Js   :.F1 ('FF1 FF1 "F#F1 1'GAI 
I,+I,C#P8 8
Q1%Q,,Q1L7A4AN-N-
AO<N9	AO<O5AO7O7AO<c                       e Zd ZdZd Zd ZdS )	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                            |           d S 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                    |          fz  S )Nc              3   <   K   | ]}d |j         |         fz  V  dS )s   %s=%rNr   r   s     r   r!   z%changeset.__repr__.<locals>.<genexpr>Z  sE       
 
12H4=+,,
 
 
 
 
 
r   s   %s(%s)   , r$   r)   s   ` r   r+   zchangeset.__repr__Y  s\    
 
 
 
6<T]6K6K
 
 
 DJJ/E1B1BCCCr   Nr,   r0   r   r   r   r   D  sA         & & &
D D D D Dr   r   <   c                    |                      t          d                     i |D ]J}|j        rA|j        vr|j        |j        <   "t	          |j        |j                           |j        <   K|                    fd           g }t                      }dt          |          D ]\  }}r|j        j        k    r|j        |j        j        k    sv|j        j        |j	        j	        k    r|j
        j
        k    rw|j        j        k    rg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                  |                               t                      }t!          |          dz  dk    r^d	t!          |          t#          j        |j	                  d
d         fz  }	|                      t'          j        |	d          dz              j                            |           |                    |j                   |j        _        |D ]1t!          j                  dk    oj        d         j        _        2d }
|D ]/j                            t1          j        |
                     0t                      fd}|                    t1          j        |                     i |D ]j        D ]}|j        D ]}|<   |D ]Ut                      }j        D ]}|                    |j                   t9          fd|D                       _        V|d}|rt;          j        |          }|d}|rt;          j        |          }i }i }t!          |          }d}||k     r||         j        D ]}|||j        |j         f<   d}j        |v r|j                 }n-tC          |          D ]}j        ||         j        vr| n|}g _"        |y||         }|j        rNt!          |j"                  dk    sJ t          d                      |j"        r|j"        d         }nd}n|j        N|j"                            |           j        r=j        dk    rd_        j"                            ||j                                     |r|#                    j	                  }|r|$                    d          }|dk    rd}	 |||                  }nN# tJ          $ rA | &                    t          d          t#          j'        |          j	        fz             Y nw xY w||v r,j        |k    r!|j        sj"                            |           |r|#                    j	                  }|r|(                                r|$                    d          }|dk    rd}nd}||v rnj        |k    rct          j
        |j        dj        z  g g |||                  g          }|)                    |dz   |           |dz   ||<   |dz  }|d
z  }||j        <   |dz  }||k     d}|t!          |          k     r)||         j        r||= n|dz  }|t!          |          k     )t          |          D ]\  }|dz   _*        rGD ]D\  }}|j*        8|j*        1| &                    t          d          |j*        |j*        fz             E|                      t          d          t!          |          z             tW          j+        | ddd|           |S )zConvert log into changesets.s   creating changesets
c                                          | j        d          | j        pd| j        | j        | j        pd| j        | j        fS )N)r5   r   r   )r   rg   r   r   r   r   ri   )r^   mindates    r   r   z!createchangeset.<locals>.<lambda>p  sD    KK
G,,J#IHHOFN
 r   r   Nr   rU   )r   r   r   r   r   rh   ri   rg   r}   r~   rX   r5   r   rT   c                    | j                             d          } |j                             d          }t          |           }t          |          }t          ||          }t	          |          D ]P}|dz   |k    r	||k     r dS |dz   |k    r	||k    r dS | |         ||         k     r dS | |         ||         k    r dS QdS )zMimic cvsps sorting orderr7   rU   r5   r   )rc   r8   r   minrange)lr   nlnrnr|   s         r   entitycomparez&createchangeset.<locals>.entitycompare  s    FLLFLLVVVVBKKq 	 	A1u{{rBwwrrQ"brr1!rr1!rr qr   c                    t          | j                  t          |j                  z
  }|r|S i }| j        D ]}|j        ||j        <   i }|j        D ]}|j        ||j        <   d}| j        D ])} |j        |j        d           |j        k    r|rJ d} n*|j        D ]C}|                    |j        d           |j        k    r|r                    | |f           d} nDd }|s0 |t          | j                  t          |j                            }|s* |d | j        D             d |j        D                       }|s0 |t          | j	                  t          |j	                            }|S )Nr   rU   r5   c                     | |k    | |k     z
  S r   r0   )r^   rv   s     r   r   z0createchangeset.<locals>.cscmp.<locals>.<lambda>  s    !a%AE* r   c                     g | ]	}|j         
S r0   rc   r   r   s     r   rL   z2createchangeset.<locals>.cscmp.<locals>.<listcomp>  s    ---a16---r   c                     g | ]	}|j         
S r0   r  r  s     r   rL   z2createchangeset.<locals>.cscmp.<locals>.<listcomp>  s    /J/J/J1/J/J/Jr   )
sumr   r   rd   rb   r   rf   r   r   ri   )r   r   r   ler   rI   codds          r   cscmpzcreatechangeset.<locals>.cscmp  s   KK#af++% 	H  	# 	#A
BquII 	# 	#A
BquII 	 	ArvaeT""ah.. /
  	 	AvvaeT""ah.. $GGQFOOO	 / +* 	2#ai..#ai..11A 	L--19---/J/J	/J/J/JKKA  	<#an%%s1>':':;;Ar   c              3   0   K   | ]}|         u |V  d S r   r0   )r   tagr  
globaltagss     r   r!   z"createchangeset.<locals>.<genexpr>#  s1      DDz#!/C/C/C/C/C/CDDr   s   {{mergetobranch ([-\w]+)}}s   {{mergefrombranch ([-\w]+)}}s0   synthetic changeset cannot have multiple parentsrn   sB   warning: CVS commit message references non-existent branch %r:
%s
s&   convert-repo: CVS merge from branch %s)r   r   r   r   r   r   parentss)   changeset %d is both before and after %d
s   %d changeset entries
s   cvschangesetsT)
changesets),r   r   rg   r   r   r   r   	enumerateri   r   r   r   rc   r   rh   r   r   r   bytereprr   r   r   r   r   	functools
cmp_to_keyr   r   r%   rI   r   rb   rd   r   r  searchr   KeyErrorwarnr   groupsinsertr   r   )r   r   fuzz	mergefrommergetor   r  filesr|   tr  r  r  r   r   re   r  r   r   	candidater   ccr   r   r  r  r   r  s                           @@@@r   createchangesetr#  `  s8	    IIa())*** G G G: 	Gz((&'f
##&)!&'!*2E&F&F
# HH
 
 
 
  
 
 
 JEEEA# ; ;1& %	>!.00'AJ!*,D,DZ'1:+=	QY..AH,,AH,,QVAY.F1Iq	1: : : :F1Iq	1T9: : : : : e++ 	xxV<^	 	 	A a   EEE:$))
OO%ai0026   		*-a44u<===				!&  	E 	E !)nn)Dail.D  $  @ @		9/>>???? %%C. . . . .` OO	,U33O444 J $ $ 	$ 	$Av $ $"#
3$	$
  E Euu 	  	 AKKDDDDDtDDDDD 0 &*W%%4	 *Jy))	HHJA	A
a%%qM 	. 	.A,-HaeQZ())8x"AA #1XX  	8:i#8#EEE}	=1A + 19~~***AG- -*** 9 	!AAA +  }	  ###< 	A|w&&#IZ(>?@@@ 	0  ++A 0GGAJJ<<A	 *8A; 7II   GG=  $+A..	:	;     ==QX]]9;N]I$$Y/// 	qy))A 88:: 

AG|| A==QX]]" x V I(!# "!+HQK!8! <	 	 	B %%a!eR000"#a%HQK FAFA	Q} a%%D 	
A
c*oo

a=" 	1FA	 c*oo

 *%%  11u
  	 	DAqtAD$4CDDtQTl#  
 IIa)**S__<===Ib$($:FFFFs   /U> >AW	W	c                 
   t          j        |          }|d         rd}n|d         rd}nd}|d         }	 |r$g }|D ]}|t          | ||d         |          z  }nt          | |d         |          }n0# t          $ r#}|                     d	|z             Y d}~dS d}~ww xY wt          | ||d
                   }~t          |          }	i }
i }|D ]9}|d         rk|j        |
vrS|j        rL|j        d         j	        r:||j        d         j	        dz
           j        |j        d         j	        f||j        <   |j	        |
|j        <   |d         r|j        pd|d         vr|	sB|                     d           |                     d|j	        z             |                     dt          j        |j        d          z             |                     d|j        z             |                     d|j        pdz             |                     dddgt          |j                  dk             d                    |j                  pdfz             |j        r=|                     dd                    t%          |j                            z             |d         r|j        r{t          |j                  dk    r;|                     dd                    d |j        D                       z             n(|                     d |j        d         j	        z             |d         rh|j        }g }|r0||         \  }}|                    d!|pd||
|         fz             |0|r+|                     d"d                    |          z             |                     d#           |                     d$|j        z             |                     d%           |j        D ]}|j        }|                    |d&                   r|t          |d&                   d         }|                     d'|d(                    d) |j        D                       pd*d(                    d+ |j        D                       dd,g|j                 fz             |                     d-           |r'|	r%|d         d.|j	        z  k    s|d         |j        v rd/}	t          |          dk    r(|	s&|d         d.|j	        z  k    s|d         |j        v r dS ;dS )0zRead 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_cacherN   Ns	   revisionss   root)r   r   s   %r
s   fuzzs	   ancestorsr   rU   s   branchesrn   s   ---------------------
s   PatchSet %d 
s	   Date: %s
rO   s   Author: %s
s   Branch: %s
s   Tag%s: %s 
r      s   ,s   (none)s   Branchpoints: %s 
r   s   parentss   Parents: %s
c                 "    g | ]}d |j         z  S    %d)r   )r   r   s     r   rL   zdebugcvsps.<locals>.<listcomp>  s    )M)M)MQ514<)M)M)Mr   s   Parent: %d
s   %s:%d:%ds   Ancestors: %s
s   Log:
s   %s

s
   Members: 
s   prefixs   	%s:%s->%s%s 
rF   c                     g | ]}d |z  S r(  r0   r]   s     r   rL   zdebugcvsps.<locals>.<listcomp>   s    "?"?"?519"?"?"?r   s   INITIALc                     g | ]}d |z  S r(  r0   r]   s     r   rL   zdebugcvsps.<locals>.<listcomp>!  s    "C"C"C1EAI"C"C"Cr   s   (DEAD)rT   r)  F)r   byteskwargsr   r2   writer#  r   r   r  r   r
   r   r   r   r   r(   ri   writenoi18nr%   r   r   r   rc   r   rf   rd   r   )r   argsoptsr   	revisionsr   r   r   r  offre   	ancestorscsrq   r   r  r   fns                     r   
debugcvspsr6    s   
 %%DL 	o	 \"I	 	AC I IyQT']%HHHHI BT']%@@@C   
1 !S$w-88J i..CHI Y Y 	(y((RZ(BJqM<L(rz!}/!34;JqM$(	")$ #%%HRY 	%gd;.??? >	 HH/000HH'"%/111HH!&rw0IJJK   HHo	1333HHo)=g>@@@HH#dCLL1$45		"'**7i    *UZZr8O8O-P-PP   J 	CBJ 	Crz??Q&&HH,#yy)M)M"*)M)M)MNNP    HHo
10@@BBBL! DI K$Q<DAqHH[AL!Xa[+IIJJJ  K  DHH0DIIaLLACCCNN9%%%HHY+,,,NN>***Z  V==i11 4CY00223B'		"?"?ah"?"?"?@@NJ		"C"C
"C"C"CDDi(0	    HHUOOO  	 	|..)A,"'2I2I y>>Ac|..)A,"'2I2IsY Ys   >A5 5
B"?BB")Nr   TN)r   NN)r  r   r   rI   mercurial.i18nr   mercurial.pycompatr   	mercurialr   r   r   r   r	   mercurial.utilsr
   r   r   r   r   r2   r?   r   r   r#  r6  r0   r   r   <module>r;     s       				  				       # # # # # #                      B B B B B B B B<	 	 	 	 	y 	 	 	% % %PZ Z Z ZzD D D D D D D D8Q Q Q Qh
{ { { { {r   