ó
î8¥Qc           @   sã   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 d  d l m Z d e	 f d „  ƒ  YZ
 d e f d „  ƒ  YZ d	 „  Z e d
 e e d „ Z d e	 f d „  ƒ  YZ d e e d „ Z d „  Z d S(   iÿÿÿÿN(   t   util(   t   _(   t   hookt   logentryc           B   s    e  Z d  Z d „  Z d „  Z RS(   sÎ  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         K   s   t  |  _ |  j j | ƒ d  S(   N(   t   Falset	   synthetict   __dict__t   update(   t   selft   entries(    (    s7   /sys/lib/python2.7/site-packages/hgext/convert/cvsps.pyt   __init__$   s    	c            s?   ‡  f d †  t  ˆ  j ƒ Dƒ } d t ˆ  ƒ j d j | ƒ f S(   Nc         3   s&   |  ] } d  | ˆ  j  | f Vq d S(   s   %s=%rN(   R   (   t   .0t   k(   R   (    s7   /sys/lib/python2.7/site-packages/hgext/convert/cvsps.pys	   <genexpr>)   s    s   %s(%s)s   , (   t   sortedR   t   typet   __name__t   join(   R   t   items(    (   R   s7   /sys/lib/python2.7/site-packages/hgext/convert/cvsps.pyt   __repr__(   s    (   R   t
   __module__t   __doc__R
   R   (    (    (    s7   /sys/lib/python2.7/site-packages/hgext/convert/cvsps.pyR      s   	t   logerrorc           B   s   e  Z RS(    (   R   R   (    (    (    s7   /sys/lib/python2.7/site-packages/hgext/convert/cvsps.pyR   ,   s   c         C   s_   |  j  d ƒ } | d j d ƒ } d } | d k r= | } n  | d | d j d | ƒ } | S(   sU  Return the repository path from a CVS path.

    >>> getrepopath('/foo/bar')
    '/foo/bar'
    >>> getrepopath('c:/foo/bar')
    '/foo/bar'
    >>> getrepopath(':pserver:10/foo/bar')
    '/foo/bar'
    >>> getrepopath(':pserver:10c:/foo/bar')
    '/foo/bar'
    >>> getrepopath(':pserver:/foo/bar')
    '/foo/bar'
    >>> getrepopath(':pserver:c:/foo/bar')
    '/foo/bar'
    >>> getrepopath(':pserver:truc@foo.bar:/foo/bar')
    '/foo/bar'
    >>> getrepopath(':pserver:truc@foo.bar:c:/foo/bar')
    '/foo/bar'
    >>> getrepopath('user@server/path/to/repository')
    '/path/to/repository'
    t   :iÿÿÿÿt   @i    t   /(   t   splitt   find(   t   cvspatht   partst
   atpositiont   startt   repopath(    (    s7   /sys/lib/python2.7/site-packages/hgext/convert/cvsps.pyt   getrepopath/   s    	t    c   8         sJ  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 } | d^ k rÚyF t t j j d d ƒ ƒ j	 ƒ  j
 ƒ  } | } | d k rHd } n  Wn# t k
 rnt t d ƒ ƒ ‚ n X| r˜| j t j ƒ r˜| t j 7} n  y+ t t j j d d ƒ ƒ j	 ƒ  j
 ƒ  } WqÚt k
 rÖqÚXn  | søt j j d d ƒ } n  g  } d^ } | rÅt j j d ƒ } t j j | ƒ s>t j | ƒ n  | j d ƒ | d g } g  | D]' } | r^d j t j d | ƒ ƒ ^ q^} t j j | d j g  | D] } | r¤| ^ q¤ƒ ƒ } n  | d k rÚy± |  j t d ƒ | ƒ t j t | ƒ ƒ } xa | D]Y } t j | d ƒ o@t j | d ƒ o@t j | d  ƒ s|  j  t d! ƒ ƒ g  } PqqW|  j t d" ƒ t | ƒ ƒ Wn* t k
 r®} |  j t d# ƒ | ƒ n X| rÚ| d$ j } t j | d% ƒ } qÚn  d& d' g } | rS| j d( | ƒ t j  t! | ƒ ƒ } | j d) ƒ s.| d) 7} n  | rJ| t j  | ƒ } qS| } n  | j d* d+ g | ƒ | r„| j d, | ƒ n  | j | ƒ i  } i  } d- } t" }  g  | D] }! t j# |! ƒ ^ q°} |  j t d. ƒ d/ j | ƒ ƒ |  j$ d0 | | | f ƒ t j% d/ j | ƒ ƒ }" |" j& ƒ  }# xº
t' rå|# }$ |$ d k rHPn  |" j& ƒ  }# |$ j d1 ƒ rp|$ d$  }$ n  | d- k r¾| j( |$ ƒ }% |% rC|% j) d2 ƒ }& i  } | r7t j  |& d3  ƒ }' |' j* | ƒ rá|' t | ƒ }' n  |' j* d) ƒ rý|' d2 }' n  |' j* d4 ƒ r|' d5 }' n |' j+ d6 d) ƒ }' d7 } q,n  d2 } q,n  | j( |$ ƒ }% |% rpt |% j) d2 ƒ ƒ ‚ n  |	 j( |$ ƒ }% |% rt |% j) d7 ƒ ƒ ‚ n  |
 j( |$ ƒ rjt |$ ƒ ‚ qjn¬| d2 k r| j( |$ ƒ }% |% sñt, t d8 ƒ ƒ ‚ t j  |% j) d2 ƒ ƒ }' d7 } nX| d7 k r?| j( |$ ƒ rji  } d9 } qjn+| d9 k ro| j( |$ ƒ }% |% r<g  |% j) d7 ƒ j d ƒ D] }( t- |( ƒ ^ qy}) t |) ƒ }* |* d9 k rÞ|* d7 d- k rÞ|) d3 d- k rÞ|) d3  |) d$ }) n  t. |) ƒ }) |) | k rg  | |) <n  | |) j |% j) d2 ƒ ƒ |% j) d7 ƒ | |% j) d2 ƒ <qj| j( |$ ƒ rTd: } qj| j( |$ ƒ rjd- } qjnû| d; k r¸| j( |$ ƒ r“d: } qj| j( |$ ƒ sjt, t d< ƒ ƒ ‚ n²| d: k rm	| j( |$ ƒ }% |% sët, t d= ƒ ƒ ‚ t/ d> | |& ƒ d? | |' ƒ d@ t. g  |% j) d2 ƒ j d ƒ D] }( t- |( ƒ ^ q%	ƒ dA g  dB d^ d d^ d  d^ d t0 ƒ  ƒ } d5 } ný| d5 k rç| j( |$ ƒ }% |% s 	t, t dC ƒ ƒ ‚ |% j) d2 ƒ }+ |+ d7 d) k rÌ	dD |+ }+ n  t |+ j ƒ  ƒ d9 k rñ	|+ dE }+ n  t j1 |+ dF dG dH g ƒ | _ | |% j) d7 ƒ ƒ | _2 |% j) d9 ƒ j3 ƒ  dI k | _4 |% j) d: ƒ r´
|% j) d5 ƒ r“
t- |% j) d: ƒ ƒ t- |% j) d5 ƒ ƒ f | _5 qí
t- |% j) d: ƒ ƒ d- f | _5 n9 |% j) d5 ƒ rä
d- t- |% j) d5 ƒ ƒ f | _5 n	 d^ | _5 |% j) dJ ƒ r|% j) dK ƒ | _6 n  |% j) dL ƒ rÕ|% j) dM ƒ j d ƒ }, t |, ƒ d7 k rVdN | _7 qÕd j |, d3  dO |, d3 g ƒ }, g  | D] }- | |- |, k r~|- ^ q~}. t |. ƒ d2 k sÅt, dP | j7 ƒ ‚ |. d- | _7 n  g  | _8 dJ } nƒ| dJ k rË| j( |$ ƒ }/ |/ rmg  |/ j) d2 ƒ j dQ ƒ D]: }( t. g  |( j
 ƒ  j d ƒ D] }0 t- |0 ƒ ^ q@ƒ ^ q!| _9 dK } qj| j( |$ ƒ rš| j( |# ƒ ršd: } t' }  qj| j( |$ ƒ r¸d- } t' }  qj| j8 j |$ ƒ nŸ | dK k rj| j( |$ ƒ r9|# }1 |1 j d1 ƒ r|1 d$  }1 n  | j( |1 ƒ r&d: } t' }  qg| j8 j |$ ƒ qj| j( |$ ƒ rWd- } t' }  qj| j8 j |$ ƒ n  |  rä| j4 rä| j: d$ d2 k rät | j8 ƒ d2 k rä| j( | j8 d- ƒ rä|  j$ dR | j; | j8 d- f ƒ t' | _< n  |  r,t" }  t= g  | j | j: g  ƒ D] }( | |( ƒ ^ q	ƒ | _> | d1 j | j8 ƒ ƒ | _8 t | j: ƒ }* |* d9 k r“|* d7 d- k r“| j | j: d$  d^ g ƒ d- | _? n	 d^ | _? t0 ƒ  }2 xØ | j@ ƒ  D]Ê \ }3 }4 t. g  |4 j d ƒ D] }5 t- |5 ƒ ^ qÑƒ }6 t |6 ƒ d7 k  rq²n  |6 d3 d- k rN|6 d$ d7 d- k rN|6 d3  | j: k r||2 jA |3 ƒ q|q²|6 d_ k r²|6 | j9 k r||2 jA |3 ƒ q|q²q²W|2 | _B | j | ƒ t | ƒ dS d- k râ|  j  t jC dT t | ƒ | jD f dU ƒ d1 ƒ qâq,q,W| jE dV dW „  ƒ i  }7 xq | D]i } | j: d$  }3 |7 j | j; |3 f d^ ƒ } | d^ k rP| j: d3  } n  | | _F | j: |7 | j; |3 f <qW| r| r| jE dV dX „  ƒ | rÇ| d$ j | d- j k rÇt t dY ƒ ƒ ‚ n  | | } |  j t dZ ƒ | ƒ t jG | t | d[ ƒ ƒ q| } n  |  j  t d\ ƒ t | ƒ ƒ tH jH |  d^ d] t' d* | ƒ| S(`   s   Collect the CVS rlogc            s   ˆ  j  |  |  ƒ S(   s#   return a shared version of a string(   t
   setdefault(   t   s(   t   _scache(    s7   /sys/lib/python2.7/site-packages/hgext/convert/cvsps.pyt   scache\   s    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!   t   CVSt
   Repositoryt   .s   not a CVS sandboxt   Roott   CVSROOTs   ~/.hg.cvspsR   t   cachet   -s   \w+R   s   reading cvs log cache %s
t   branchpointst   commitidt
   mergepoints   ignoring old cache
s   cache has %d log entries
s   error reading cache: %r
iÿÿÿÿs   %Y/%m/%d %H:%M:%S %1%2t   cvss   -qs   -d%sR   t   logt   rlogs   -d>%si    s   running %s
t    s   prefix=%r directory=%r root=%r
s   
i   iþÿÿÿs   Attic/i   s   /Attic/i   s)   RCS file must be followed by working filei   i   i   s!   must have at least some revisionss   expected revision numbert   rcst   filet   revisiont   branchest   parents&   revision must be followed by date linet   19s    UTCs   %y/%m/%d %H:%M:%Ss   %Y/%m/%d %H:%M:%Ss   %Y-%m-%d %H:%M:%St   deadi   i   i	   i
   t   HEADt   0s   unknown branch: %st   ;s#   found synthetic revision in %s: %r
id   s   %d %siP   t   keyc         S   s   |  j  |  j f S(   N(   R4   R6   (   t   x(    (    s7   /sys/lib/python2.7/site-packages/hgext/convert/cvsps.pyt   <lambda>¾  s    c         S   s   |  j  S(   N(   t   date(   R?   (    (    s7   /sys/lib/python2.7/site-packages/hgext/convert/cvsps.pyR@   Î  s    s>   log cache overlaps with new log entries, re-run without cache.s   writing cvs log cache %s
t   ws   %d log entries
t   cvslogN(   i   i   i   (I   t   statusR   t   ret   compilet   Nonet   opent   ost   pathR   t   readt   stript   IOErrorR   t   endswitht   sept   environt   gett
   expandusert   existst   mkdirR   t   findallt   notet   picklet   loadR    t   safehasattrt   lent	   ExceptionRA   t   datestrt   appendt   normpathR    R   t
   shellquotet   debugt   popent   readlinet   Truet   matcht   groupt
   startswitht   replacet   AssertionErrort   intt   tupleR   t   sett	   parsedatet   authort   lowerR:   t   linesR.   R/   t   commentR7   R6   R4   R   R   t   tagst   brancht	   iteritemst   addR-   t   ellipsisR5   t   sortR8   t   dumpR   (8   t   uit	   directoryt   rootR2   R+   R%   R1   t   re_00t   re_01t   re_02t   re_03t   re_10t   re_20t   re_30t   re_31t   re_32t   re_50t   re_60t   re_70t   file_added_ret   prefixt   oldlogRA   t   cachedirt	   cachefileR#   t   et   cmdt   pRq   t	   branchmapt   statet   storet   argt   pfpt   peekt   lineRd   R4   t   filenameR?   t   revt   revnt   dt   myrevt   bR7   t   mt   yt   cpeekR-   Rr   R6   t   it   revpartst   versions(    (   R$   s7   /sys/lib/python2.7/site-packages/hgext/convert/cvsps.pyt	   createlogV   s   '+4.!	" 		1,		%1	0!!	!)		Y								7&		.$	:	 
	t	   changesetc           B   s    e  Z d  Z d „  Z d „  Z RS(   sû  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         K   s   t  |  _ |  j j | ƒ d  S(   N(   R   R   R   R   (   R   R	   (    (    s7   /sys/lib/python2.7/site-packages/hgext/convert/cvsps.pyR
   ò  s    	c            s?   ‡  f d †  t  ˆ  j ƒ Dƒ } d t ˆ  ƒ j d j | ƒ f S(   Nc         3   s&   |  ] } d  | ˆ  j  | f Vq d S(   s   %s=%rN(   R   (   R   R   (   R   (    s7   /sys/lib/python2.7/site-packages/hgext/convert/cvsps.pys	   <genexpr>÷  s    s   %s(%s)s   , (   R   R   R   R   R   (   R   R   (    (   R   s7   /sys/lib/python2.7/site-packages/hgext/convert/cvsps.pyR   ö  s    (   R   R   R   R
   R   (    (    (    s7   /sys/lib/python2.7/site-packages/hgext/convert/cvsps.pyR£   ã  s   	i<   c            s6  |  j  t d ƒ ƒ i  ‰ x? | D]7 } | j r  t | j ˆ j | j ƒ ƒ ˆ | j <q  q  W| j d ‡ f d †  ƒ g  } t ƒ  } d" ‰  xût	 | ƒ D]í\ } } ˆ  o‘| j
 ˆ  j
 k o‘| j d" k	 rÛ | j ˆ  j k p‘| j d" k sù ˆ  j d" k o‘| j ˆ  j k o‘| j ˆ  j k o‘| j ˆ  j k o‘ˆ  j d ˆ  j d | j d | j d k o€ˆ  j d ˆ  j d | k n o‘| j | k sWt d | j d | j d | j d	 | j d
 g  d | j d | j
 d | j ƒ ‰  | j ˆ  ƒ t ƒ  } t | ƒ d d k rWd t | ƒ t | j ƒ d d !f }	 |  j  t j |	 d ƒ d ƒ qWn  ˆ  j j | ƒ | j | j ƒ | j ˆ  _ q– Wx6 | D]. ‰  t ˆ  j ƒ d k o¶ˆ  j d j ˆ  _ qŽWd „  }
 x | D] ‰  ˆ  j j |
 ƒ qÐWd „  } | j | ƒ i  ‰ x@ | D]8 ‰  x/ ˆ  j D]$ } x | j D] } ˆ  ˆ | <q-WqWqWx] | D]U ‰  t ƒ  } x! ˆ  j D] } | j | j ƒ qiWt ‡  ‡ f d †  | Dƒ ƒ ˆ  _ qPW| d" k r¾d } n  | rÖt j | ƒ } n  | d" k rëd } n  | rt j | ƒ } n  i  } i  } t | ƒ } d } xk| | k  rŽ| | ‰  x' ˆ  j D] } | | | j | j f <qDWd" } ˆ  j | k r‰| ˆ  j } nI xF t  | ƒ D]8 } ˆ  j | | j
 k rÈ| d" k	 r–Pq–q–n  | } q–Wg  ˆ  _! | d" k	 rj| | } xT | j rGt | j! ƒ d k s$t" t d ƒ ƒ ‚ | j! r=| j! d } qôd" } PqôW| d" k	 rjˆ  j! j | ƒ qjn  ˆ  j r¬ˆ  j d k rŽd" ˆ  _ n  ˆ  j! j | | ˆ  j ƒ n  | rr| j# ˆ  j ƒ } | rr| j$ d ƒ } | d k rîd" } n  y | | | } Wn1 t% k
 r3|  j& t d ƒ | ˆ  j f ƒ n X| | k roˆ  j | k ro| j roˆ  j! j | ƒ qoqrn  | rt| j# ˆ  j ƒ } | rt| j' ƒ  rÃ| j$ d ƒ } | d k rÉd" } qÉn d" } | | k rqˆ  j | k rqt d ˆ  j d | d	 ˆ  j d d ˆ  j d
 g  d g  d | | | ˆ  g ƒ } | j( | d | ƒ | d | | <| d 7} | d 7} q$qqqtn  | | ˆ  j <| d 7} q$Wd } x7 | t | ƒ k  rÎ| | j rÁ| | =q˜| d 7} q˜Wx' t	 | ƒ D] \ } ‰  | d ˆ  _) qÜW|  j  t d ƒ t | ƒ ƒ t* j* |  d" d  t+ d! | ƒ| S(#   s   Convert log into changesets.s   creating changesets
R>   c            s7   ˆ  j  |  j ƒ |  j |  j |  j |  j |  j |  j f S(   N(   RQ   R.   Rp   Rm   Rr   RA   R-   (   R?   (   t   mindate(    s7   /sys/lib/python2.7/site-packages/hgext/convert/cvsps.pyR@     s   i    i   Rp   Rm   Rr   RA   R	   R/   R-   R.   id   s   %d %siÿÿÿÿiP   s   
c         S   sØ   |  j  j d ƒ }  | j  j d ƒ } t |  ƒ } t | ƒ } t | | ƒ } x† t | ƒ D]x } | d | k r~ | | k  r~ d S| d | k rŸ | | k rŸ d 
S|  | | | k  r· d S|  | | | k rX d 
SqX Wd S(   s   Mimic cvsps sorting orderR   i   iÿÿÿÿi    (   R5   R   RZ   t   mint   range(   t   lt   rt   nlt   nrt   nRŸ   (    (    s7   /sys/lib/python2.7/site-packages/hgext/convert/cvsps.pyt   entitycompareH  s    	c         S   s  t  |  j ƒ t  | j ƒ } | r& | Si  } x! |  j D] } | j | | j <q6 Wi  } x! | j D] } | j | | j <q` Wd } xF |  j D]; } | j | j d  ƒ | j k rŠ | s» t ‚ d } PqŠ qŠ WxF | j D]; } | j | j d  ƒ | j k rÓ | st ‚ d } PqÓ qÓ W| S(   Ni    i   iÿÿÿÿ(	   t   sumRA   R	   R6   R4   RQ   RG   R8   Rh   (   R§   R¨   R™   t   leRŒ   RE   (    (    s7   /sys/lib/python2.7/site-packages/hgext/convert/cvsps.pyt   cscmp_  s*    c         3   s%   |  ] } ˆ | ˆ  k r | Vq d  S(   N(    (   R   t   tag(   t   ct
   globaltags(    s7   /sys/lib/python2.7/site-packages/hgext/convert/cvsps.pys	   <genexpr>‹  s    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 %sRq   t   parentsi   s   %d changeset entries
t   cvschangesetst
   changesetsN(,   RD   R   R.   R¥   RA   RQ   Rv   Rk   RG   t	   enumerateR-   Rp   Rm   Rr   R5   R£   R/   R]   RZ   t   reprR    Ru   R	   Rt   R   Rq   R   R   RE   RF   R4   R6   t   xrangeR³   Rh   t   searchRe   t   KeyErrort   warnt   groupst   insertt   idR   Rc   (   Rx   R1   t   fuzzt	   mergefromt   mergetoRŒ   Rµ   t   filesRŸ   t   tR¬   R¯   R°   Rq   R¡   R7   R«   t   fRŽ   t	   candidateRœ   t   cc(    (   R±   R²   R¤   s7   /sys/lib/python2.7/site-packages/hgext/convert/cvsps.pyt   createchangesetú  s   	,	!$	&#	,			&		

	
			%



c         O   s!  | d r d } n | d r& d } n d	 } | d } yc | r| g  } xP | D]) } | t |  | d | d d | ƒ7} qL Wn t |  d | d d | ƒ} Wn% t k
 rÀ } |  j d | ƒ d	 SXt |  | | d
 ƒ } ~ t | ƒ }	 i  }
 i  } x(| D] } | d ry| j |
 k rf| j rf| j d j rf| | j d j d j | j d j f | | j <n  | j |
 | j <n  | d r¢| j pd | d k r¢qù n  |	 s‰|  j d ƒ |  j d | j ƒ |  j d t	 j
 | j d ƒ ƒ |  j d | j ƒ |  j d | j pd ƒ |  j d d d g t | j ƒ d k d j | j ƒ pQd f ƒ | j rˆ|  j d d j t | j ƒ ƒ ƒ n  | d r
| j r
t | j ƒ d k rì|  j d d j g  | j D] } t | j ƒ ^ qÉƒ ƒ q
|  j d | j d j ƒ n  | d rŠ| j } g  } x> | rc| | \ } } | j d  | pNd | |
 | f ƒ q&W| rŠ|  j d! d j | ƒ ƒ qŠn  |  j d" ƒ |  j d# | j ƒ |  j d$ ƒ x¾ | j D]³ } | j } | j | d% ƒ rû| t | d% ƒ } n  |  j d& | d' j g  | j D] } t | ƒ ^ qƒ p5d( d' j g  | j D] } t | ƒ ^ qEƒ d d) g | j f ƒ qÂW|  j d* ƒ n  | rÍ|	 rÍ| d t | j ƒ k sÁ| d | j k rÍt }	 qÍn  t | ƒ d k rù |	 rù | d t | j ƒ k s| d | j k rPqqù qù Wd	 S(+   sŸ   Read CVS rlog for current directory or named path in
    repository, and convert the log to changesets based on matching
    commit log entries and dates.
    t	   new_cachet   writet   update_cacheR   t	   revisionsRz   R+   s   %r
NR¿   t	   ancestorsi    i   R7   R;   s   ---------------------
s   PatchSet %d 
s	   Date: %s
s   %Y/%m/%d %H:%M:%S %1%2s   Author: %s
s   Branch: %s
s   Tag%s: %s 
R!   R#   t   ,s   (none)s   Branchpoints: %s 
s   , R³   s   Parents: %s
s   Parent: %d
s   %s:%d:%ds   Ancestors: %s
s   Log:
s   %s

s
   Members: 
Rˆ   s   	%s:%s->%s%s 
R(   t   INITIALs   (DEAD)s   
(   RG   R¢   R   RÉ   RÇ   RZ   Rr   R³   R¾   R    R\   RA   Rm   Rq   R   R-   R   t   strR]   Rp   R	   R5   Rf   R8   R6   R:   R   (   Rx   t   argst   optsR+   RË   R1   R™   RŒ   Rµ   t   offR7   RÌ   t   csRŽ   R›   R¨   R±   RÄ   t   fnR?   (    (    s7   /sys/lib/python2.7/site-packages/hgext/convert/cvsps.pyt
   debugcvsps  s’    
	
	
* 
(#%			3
		( 		1((   RI   RE   t   cPickleRW   t	   mercurialR    t   mercurial.i18nR   R   t   objectR   R[   R   R    RG   Rc   R¢   R£   RÇ   RÕ   (    (    (    s7   /sys/lib/python2.7/site-packages/hgext/convert/cvsps.pyt   <module>   s   	'ÿ Žÿ 