ó Afc @ sÜ d Z d d l m Z m Z d d l Z d d l Z d d l Z d d l Z d d l m Z d Z d e f d „ ƒ YZ d Z d Z d e f d „ ƒ YZ d e f d „ ƒ YZ d „ Z d „ Z e d k rØ e ƒ n d S( s$ Remote CVS -- command line interfaceiÿÿÿÿ( t CVSt FileN( t CommandFrameWorki t MyFilec B sk e Z d „ Z d „ Z d d „ Z g d „ Z d „ Z d d „ Z d „ Z d „ Z d „ Z d „ Z RS( c C sl | j s | j ƒ n | j s, | j ƒ n | j s| | j sR | j sK d Sd Sqh| j s_ d S| j | j k ru d Sd Snì | j sÆ | j r¢ | j r› d Sd Sqh| j r¿ d G| j Gd GHd Sd Sn¢ | j sã | j rÜ d Sd Sn… | j r | j | j k rd Sd Sn | j | j k r8| j | j k r1d Sd Sn0 | j | j k rNd S| j | j k rdd Sd Sd S( s Return a code indicating the update status of this file. The possible return values are: '=' -- everything's fine '0' -- file doesn't exist anywhere '?' -- exists locally only 'A' -- new locally 'R' -- deleted locally 'U' -- changed remotely, no changes locally (includes new remotely or deleted remotely) 'M' -- changed locally, no changes remotely 'C' -- conflict: changed locally as well as remotely (includes cases where the file has been added or removed locally and remotely) 'D' -- deleted remotely 'N' -- new remotely 'r' -- get rid of entry 'c' -- create entry 'u' -- update entry (and probably others :-) t 0t Nt ?t ct Ct Rt rs warning:s was lostt Ut At Dt ut =t MN( t lseent getlocalt rseent getremotet eseent lsumt rsumt edeletedt filet enewt esum( t self( ( s' /usr/lib64/python2.7/Demo/pdist/rcvs.pyt action0 sT c C s | j ƒ } | d k r d S| G| j GH| d k rA | j ƒ nÅ | d k r\ d | j GHnª | d k r� t | j ƒ d | _ n… | d k r™ d | _ nm | d k rd | _ | j | _ d | _ d | _ | j | _ t j | j ƒ d \ | _ | _ d | _ n d S( NR R R R s+ %s: conflict resolution not yet implementedR i R R R i iþÿÿÿt ( R R ( R R ( R R t gett removeR t rrevt erevR R R R t ost statt emtimet ectimet extra( R t code( ( s' /usr/lib64/python2.7/Demo/pdist/rcvs.pyt updatey s, "R c C sc | j ƒ } | d k r) | j | ƒ d S| d k rD d | j GHn | d k r_ d | j GHn d S( NR R i R s* %s: committing removes not yet implementedR s+ %s: conflict resolution not yet implemented( R R ( R t putR ( R t messageR( ( ( s' /usr/lib64/python2.7/Demo/pdist/rcvs.pyt commit� s c C sE | j ƒ d } | j } x; | D]3 \ } } | d k rA | } q | d | | } q W| | j k r| | j | j k r| d S| d } | j } | j j | | f ƒ } t j | ƒ j ƒ } | j | k rÏ d Sd d l } | j ƒ } | j | ƒ | j ƒ d | | | f GHt j d | | j | f ƒ } | rAd d GHn d S( NR s -rt i iÿÿÿÿs diff %s -r%s %ss diff %s %s %sR iF ( R R! R R R t proxyR t md5t newt digestt tempfilet NamedTemporaryFilet writet flushR# t systemt name( R t optst flagst revt ot at fnt datat sumR2 t tft sts( ( s' /usr/lib64/python2.7/Demo/pdist/rcvs.pyt diffœ s. ! c C s | j ƒ d k S( NR ( R ( R ( ( s' /usr/lib64/python2.7/Demo/pdist/rcvs.pyt commitcheck· s c C s“ d G| j Gd GHt | j ƒ j ƒ } | j sD | j j | j ƒ n | j j | j | | ƒ } | rm | GHn | j | j j | j ƒ | j ƒ d S( Ns Checking ins ...( R t opent readR R. t lockR* t setentryt headR ( R R+ R> t messages( ( s' /usr/lib64/python2.7/Demo/pdist/rcvs.pyR* º s c C sX | j j | j ƒ } t | j d ƒ } | j | ƒ | j ƒ | j | j | j ƒ d S( Nt w( R. R R RD R4 t closeRG R! R ( R R> t f( ( s' /usr/lib64/python2.7/Demo/pdist/rcvs.pyR Ä s c C s | j j | j | ƒ GHd S( N( R. t logR ( R t otherflags( ( s' /usr/lib64/python2.7/Demo/pdist/rcvs.pyRM Ë s c C sX d | _ | j | _ d \ | _ | _ d | _ d | _ d | _ d | _ d | _ d S( Ni R i ( i i ( R R R R% R&