ó
”Sc           @€  sZ  d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z 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 d  d l m Z d  d l m Z d  d l m Z d  d	 l m Z d
 d l m Z d
 d l m Z e j ƒ  Z d „  Z d „  Z  d „  Z! d „  Z" d „  Z# d „  Z$ d „  Z% d „  Z& d „  Z' d „  Z( d „  Z) d e* f d „  ƒ  YZ+ d e* f d „  ƒ  YZ, d e. d d „ Z/ d „  Z0 d „  Z1 d d „ Z2 d „  Z3 e. d  „ Z4 d! „  Z5 d" „  Z6 d# „  Z7 d$ e8 f d% „  ƒ  YZ9 d& „  Z: d' „  Z; d( „  Z< d) „  Z= d* „  Z> d S(+   iÿÿÿÿ(   t   with_statementN(   t	   structure(   t   TransactionAborted(   t   FLAVORS(   t   benchmarking(   t   custom(   t   makedirs(   t   formati   (   t	   svndrivenc           C€  s$   d t  j t j ƒ  ƒ d t j f S(   Ns   /tmp/%s.%s.bazki/checkoutsi    (   t   pwdt   getpwuidt   ost   getuidt   basecustt   APP_NAME(    (    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   checkouts_dir   s    c           C€  s$   d t  j t j ƒ  ƒ d t j f S(   Ns!   /tmp/%s.%s.bazki/locked_checkoutsi    (   R	   R
   R   R   R   R   (    (    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   locked_checkouts_dir   s    c         C€  sM   t  j |  ƒ } t j j t ƒ  | ƒ } t j t j j t ƒ  | ƒ | ƒ | S(   N(   t   randomt   choiceR   t   patht   joinR   t   renameR   (   t   dirst   dt   nd(    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   lock_one_of   s    "c         C€  s8   |  j  | ƒ j j | j k r4 |  j | d | ƒn  d  S(   Nt   revision(   t   infoR   t   numbert   update(   t   clientt   tempdt   rev(    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyR      s    c          C€  sB   t  j j t ƒ  d j d „  t d ƒ Dƒ ƒ ƒ }  t  j |  ƒ |  S(   Nt    c         s€  s!   |  ] } t  j t j ƒ Vq d  S(   N(   R   R   t   stringt	   lowercase(   t   .0t   x(    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pys	   <genexpr>$   s   i    (   R   R   R   R   t   xrangeR   (   R   (    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   new_checkout_dir"   s
    c         €  sâ   yQ xJ t  rO t t j t ƒ  ƒ ƒ } t j j t j j | d d ƒ ƒ r Pq q WWnJ t t	 f k
 r t
 ƒ  } t j d ‡  f d †  d |  | | f ƒ } n" Xt j d t d |  | | f ƒ } | d  k	 rØ | j ƒ  n  | | f S(   Ns   .svnt   entriest   targetc         €  s   |  j  ˆ  | d | ƒS(   NR   (   t   checkout(   t   clR   R    (   t   repopath(    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   <lambda>1   s    t   args(   t   TrueR   R   t   listdirR   R   t   existsR   t
   IndexErrort   OSErrorR'   t	   threadingt   ThreadR   t   Nonet   start(   R   R   R,   R   t   thread(    (   R,   sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   start_checkout(   s    	$		!c         C€  s?   t  t ƒ  ƒ t j |  t j j t ƒ  t j j |  ƒ ƒ ƒ d  S(   N(   R   R   R   R   R   R   t   basename(   t   dir(    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   return_checkout:   s    c          C€  sà   yÈ t  j ƒ  }  t j t ƒ  ƒ } d  } t | ƒ d k r‚ t | ƒ } t j j	 t j j
 | d d ƒ ƒ ry |  j | ƒ q‚ d  } n  | d  k r½ t ƒ  } |  j d t j j t j ƒ | ƒ n  t | ƒ Wn t k
 rÛ n Xd  S(   Ni   s   .svnR(   s   file:///(   t   pysvnt   ClientR   R0   R   R6   t   lenR   R   R1   R   R   R'   R*   t   abspathR   t
   REPOSITORYR<   R3   (   R   R   R   (    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   prefetch_checkout>   s    $		&c           C€  sT   t  j j t ƒ  ƒ r( t j t ƒ  ƒ n  t  j j t ƒ  ƒ rP t j t ƒ  ƒ n  d  S(   N(   R   R   R1   R   t   shutilt   rmtreeR   (    (    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   clear_checkoutsR   s    c         C€  s`   |  j  d ƒ } d } xD | D]< } | | d 7} t j j | ƒ s t j j | d ƒ q q Wd  S(   Nt   /R!   (   t   splitR   R   R1   t   stateR   t   mkdir(   R   t   bitst   pathpntt   b(    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   _mkdir_pX   s    c         C€  sz   |  j  d d ƒ \ } } t | ƒ t |  d ƒ  } | j | d ƒ Wd  QXy t j j |  ƒ Wn t j k
 ru n Xd  S(   NRF   i   t   ws   
(	   t   rsplitRM   t   opent   writeRH   R   t   addR=   t   ClientError(   R   t   valR;   t   fil(    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   _setaddfilea   s    
t   InvalidStatec           B€  s   e  Z RS(    (   t   __name__t
   __module__(    (    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyRW   l   s   t
   LockFailedc           B€  s   e  Z RS(    (   RX   RY   (    (    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyRZ   o   s   c         C€  s  g  } | d  k r! |  j ƒ  } n  xÏ t rò t | ƒ d k r€ |  j ƒ  sT | d k rm |  j |  j d g } q |  j d g } n |  j g | } | d  k	 r« | }  d  } n |  j ƒ  }  |  d  k sÏ | d k rÓ Pn |  t k rã d  S|  j ƒ  } q$ Wt j	 j
 | Œ  S(   Ni    u   toplevels   .yaml(   R6   t   get_orgmodeR/   R?   t   has_childrent   enamet
   get_parentt   FalseR   R   R   (   t   elementt   parentt   symlinkt   orgmodet   above(    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   _elementpathr   s&    		c         C€  s0   t  j j |  d |  d f k r, t t _ n  d  S(   Nt   content_statet
   prop_state(   R=   t   wc_notify_statet
   conflictedR/   RH   t   conflict(   t   dct(    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   notifyŠ   s    c          C€  sè   t  j ƒ  }  |  r$ |  j d ƒ }  n d }  t j ƒ  t _ t t j _ t j j	 |  ƒ i  t _
 t t _ t j ƒ  d t _ t t _ d t j j t  j ƒ } t j j | d t ƒd d d } t t j | | ƒ \ t _ t _ | j S(   Ns   utf-8t   nobodyi   s   file:///t   recursei    R    (   R   t   get_usernamet   encodeR=   R>   RH   R   Rl   t   callback_notifyt   set_default_usernamet   deltasR_   t
   lock_stateR   t   unamet   hostnameRj   R   R@   RA   t   info2R9   R   t   checkout_threadR   (   t   usernameR,   R   (    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   begin   s     			$c         C€  sú   t  |  ƒ } t | t ƒ s- t t | ƒ ƒ ‚ t j | ƒ } | |  j ƒ  k } | j | k rŽ | rŽ d  t
 j j | i  ƒ j |  j i  ƒ | <nh t | j j r¿ | d  k	 s° t ‚ | | f } n t | d ƒ } | t
 j j | i  ƒ j |  j i  ƒ | <d  S(   Ns   utf-8(   Re   t
   isinstancet   strt   AssertionErrort   reprR   t   get_propt   get_final_mapt   defaultR6   RH   Rs   t
   setdefaultR]   R   t   flavort   binaryt   unicode(   R`   t   pnameRT   R   R   t   propt   dtf(    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   setprop¦   s    !+c         C€  s8   t  |  ƒ } d  t j j | i  ƒ j |  j i  ƒ | <d  S(   N(   Re   R6   RH   Rs   R‚   R]   (   R`   R†   R   (    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   delete¹   s    c         C€  sR  | d k rº|  d  k	 s t ‚ t | t j ƒ sK | d  k sK t | j ƒ ‚ i  } | | k rh | rh d  S| d  k	 rÅ t |  d | ƒ} | t j k rÅ |  j	 t j | k rÅ t j | |  j	 } qÅ n  t |  d | ƒ} | j
 d ƒ rR| d  k s| j
 d ƒ rR| d  k	 rt |  ƒ n  | t j j | i  ƒ j d i  ƒ j | i  ƒ |  j	 <qN| d  k	 r‡| j
 d ƒ r‡| j
 d ƒ r‡t ƒ  qN| d  k	 r»| j
 d ƒ r»| j
 d ƒ r»t ƒ  qN| t j k sæt |  | t j | f ƒ ‚ | d  k	 rö| j ƒ  rö| j ƒ  d k röt j j | ƒ d } t j j | ƒ d | j	 d }	 t j j ƒ  t j j t j d t j j | ƒ d ƒ t j j t j d | t j d |	 d t ƒ|	 t j k sÃt ‚ | t j k röt j | t j |	 <t j | =qön  | d  k s| r0t j j ƒ  t t j d | d ƒ nw| | k r§t j j ƒ  | j
 d	 |  j	 |  j	 f ƒ r´| j
 d	 |  j	 |  j	 f ƒ st ‚ t j j | ƒ } t j j | ƒ } n  t |  j ƒ  j ƒ  ƒ d
 k rut j j t j j t ƒ |  j ƒ  j	 d ƒ } t j j t j j t j j t ƒ ƒ |  j ƒ  j	 d ƒ }	 t j j | |	 d t ƒt j j t j j | ƒ g ƒ n  t j j t j d | t j d | d t ƒn  |  j ƒ  d k rNt j j ƒ  |  j ƒ  | k rt |  d t ƒ}
 t j j t j d |
 ƒ n  t |  d | d t ƒ} t j j  t j d | ƒ r^t j! t j d | ƒ t } n t" } t j# d | j$ d ƒ | t j d | ƒ | s·t j j% t j d | ƒ q·qNn”| d k rœ|  j ƒ  rt j j t |  ƒ ƒ } t j j t j j | ƒ | ƒ } n1 t |  ƒ } t j j t j j | ƒ | d ƒ } | | k s]t | | f ƒ ‚ t j j ƒ  t j j t j d | t j d | d t ƒn²| d k r>t" sºt d ƒ ‚ t |  ƒ } t |  d | ƒ} | | k rN| t j k sùt ‚ | t j k r)t j | t j | <t j | =n  t j j ƒ  |  j ƒ  d k rWt" s8t ‚ q;| d k rrt" s8t ‚ q;| d k rl	|  j ƒ  d k s–t ‚ | j
 d ƒ rt j j t j d t j j | ƒ t j d t j j | ƒ d t ƒxt j j& ƒ  D] } | j' t j j | ƒ d ƒ rü| t t j j | ƒ ƒ } t j j | ƒ | } | t j k sht ‚ t j | t j | <t j | =qüqüWnn | j
 d ƒ s¥t ‚ t j j t j d t j j | ƒ d ƒ t j j t j d | t j d | d t ƒt |  d | d t ƒ} t j# d | j$ d ƒ t j j | ƒ t j d | ƒ t j j% t j d | ƒ q;| d k r(|  j ƒ  d k s	t ‚ | j
 d ƒ rŠ
t j j t j d t j j | ƒ t j d t j j | ƒ d t ƒxt j j& ƒ  D] } | j' t j j | ƒ d ƒ rö	| t t j j | ƒ ƒ } t j j | ƒ | } | t j k sb
t ‚ t j | t j | <t j | =qö	qö	Wnn | j
 d ƒ sŸ
t ‚ t j j t j d | t j d | d t ƒt j j t j d t j j | ƒ g ƒ t |  d t ƒ} t j j t j d | ƒ q;t( d | ƒ ‚ qNn t) d | ƒ ‚ d  S(   NRa   s   .listt	   parentaget   toplevels   .yamlRF   R!   t   forces
   %s/%s.yamli   Rb   s   ../R]   Rc   t   listt   normals   .defs   .elms   Invalid orgmode '%s'!s   Unknown eattr %s!(*   R6   R}   R{   R   t   Elementt	   __class__Re   RH   Rs   R]   t   endswitht   edeleteR‚   t   do_somethingt   do_something_elseR\   R[   R   R   t   dirnameRx   R   R   RI   R   t   moveR/   RV   R?   R^   t   get_childrent   removeR1   t   unlinkR_   Rb   t   countRR   t   keyst
   startswithRW   t	   Exception(   R`   t   attrt   oldvalRT   t   bootstrappingt   olddeltst   oldpatht   newpatht
   oldparpatht
   newparpatht
   oldsymlinkt
   newsymlinkt   dontaddt   fil2t   fil1t   wast   willt   kt   newt   sympath(    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   esetattr½   s   -7

++!	!"	$$%##&#*c         C€  s  t  |  ƒ } t j j ƒ  t j j t j | ƒ } | j d |  j |  j f ƒ r_ t	 d ƒ ‚ n“| j d ƒ rt j j
 | ƒ |  j d k r¼ |  j ƒ  s  t ‚ t j j | g d t ƒqòd  t j j | i  ƒ |  j <| t j k r|  j t j | k rt j | |  j =n  d  SnÚ t j j | g d t ƒt |  j ƒ  j ƒ  ƒ d k ròt j j t j j | ƒ |  j ƒ  j d ƒ } t j j t j j t j j | ƒ ƒ |  j ƒ  j d ƒ } t j j | | d t ƒt j j t j j | ƒ g ƒ n  | t j k rt j | =n  d  S(   Ns
   %s/%s.yamls   Removing a node with children!s   .listR   i   s   .yaml(   Re   RH   Rx   R   R   R   R   R’   R]   RW   R:   R\   R}   R   R™   R/   R6   Rs   R‚   R?   R^   R˜   R–   R—   (   R`   t   rpathR   R¥   R¦   (    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyR“   ^  s0    %$"c         C€  s‚  | d k s t  ‚ t j j ƒ  | d k rÚd |  j } d | } | t j k sW t  ‚ t j j t j	 d | ƒ r¸t j
 j t j	 d | t j	 d | d t ƒ| t j k r6t t j | ƒ d	 k sÞ t  t j | ƒ ‚ |  j t j | k st  t j | ƒ ‚ i t j | |  j | 6t j | <t j | =n  xž |  j ƒ  D]n } | j | ƒ } | sˆt  | | j | ƒ | j |  j ƒ f ƒ ‚ t | | | j | j ƒ t | |  j ƒ qCWq~t t j j t j	 | ƒ d
 ƒ n¤ d |  j } t | t ƒ st t | ƒ d ƒ } n  | t j j | i  ƒ j |  j i  ƒ t | d ƒ <t j j t j	 d | ƒ s~t t j j t j	 | ƒ d
 ƒ n  d  S(   NRƒ   R   t   commentR†   t   visibles   props/%s.yamlRF   R   i   R!   s   utf-8(   s   flavors   defaults   comments   pnameR´   (   R}   RH   Rx   R   t   nameRs   R   R   R1   R   R   R—   R/   R?   t   containing_elementst   get_propvalR‰   t   valueR   RŠ   RV   R{   R…   R|   R‚   (   R‡   RŸ   RT   R«   Rª   t   et   old_pvR   (    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   psetattr{  s4    
,)"0"1c         C€  s^   t  j j ƒ  d |  j } t  j j t  j d | g d t ƒ| t  j k rZ t  j | =n  d  S(   Ns   props/%s.yamlRF   R   (	   RH   Rx   R   Rµ   R   R™   R   R/   Rs   (   R‡   RU   (    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   pdeleteœ  s    t   parse_handlerc           B€  sS   e  Z d  „  Z d „  Z d d „ Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(	   c         C€  s6   | |  _  t j d t j j | ƒ |  _ t |  _ d  S(   NRF   (	   t   subsRH   R   R   R   R–   R;   R_   t   noprop(   t   selfR¾   R   (    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   __init__¥  s    	 c         C€  s]   |  j  s t ‚ | |  j k rU | |  j | k rU |  j | | } |  j | | =| S| Sd  S(   N(   R¿   R}   R¾   (   RÀ   R¹   t   pt   contentst   ret(    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyR‡   ©  s    "c         C€  s.   | |  j  k r& |  j  | d  k r& t St Sd  S(   N(   R¾   R6   R_   R/   (   RÀ   R¹   Ra   (    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   start_element±  s    "c         C€  s   d  S(   N(    (   RÀ   R¹   (    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   end_element¶  s    c         €  s-   t  ˆ  _ t ‡  ‡ f d †  ˆ  j ˆ Dƒ ƒ S(   Nc         3€  s=   |  ]3 } ˆ  j  ˆ | d  k	 r | ˆ  j  ˆ | f Vq d  S(   N(   R¾   R6   (   R$   RÂ   (   RÀ   R¹   (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pys	   <genexpr>¼  s    (   R/   R¿   t   dictR¾   (   RÀ   R¹   (    (   RÀ   R¹   sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   get_new_properties¸  s    	c         C€  s"   | |  j  k r |  j  | Sg  Sd  S(   N(   R‹   (   RÀ   R¹   (    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   get_new_children¾  s    c         C€  s>   t  j j |  j | ƒ } t | d ƒ  } | j ƒ  SWd  QXd  S(   Nt   rb(   R   R   R   R;   RP   t   read(   RÀ   R   RU   (    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   get_includeÃ  s    c         C€  sÖ   t  j j |  j | ƒ } | d  k	 r‹ | r{ d } | } xB t  j j | ƒ rw | d 7} d | j | j d d ƒ ƒ } q9 Wn  t | | ƒ n; | s˜ t ‚ t  j j | ƒ rÆ t	 j
 j | g d t ƒn  t  j j | ƒ S(   Ni   s   .%s.t   .R   (   R   R   R   R;   R6   R1   RO   RV   R}   RH   R   R™   R/   R:   (   RÀ   R   RT   R¯   t   cntt   origpath(    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   set_includeÇ  s    
&N(   RX   RY   RÁ   R‡   R6   RÅ   RÆ   RÈ   RÉ   RÌ   RÐ   (    (    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyR½   ¤  s   						c          C€  s¤  t  ƒ  s t ‚ t d ƒ  t j j ƒ  Wd  QXyà xÙ t j D]Î }  t t j d |  ƒ } t	 j
 t j d |  ƒ t t j d |  d d ƒ} t j |  } |  j d ƒ rÆ t | ƒ d k sÆ t ‚ n  t j t j d |  t t j |  |  ƒ | | ƒ | j ƒ  | j ƒ  q= WWn> t j d t d t j t j f ƒ t _ t j j ƒ  ‚  nP Xd	 t j ƒ  } t j j t j d
 | ƒ} t t j ƒ | d  k r™d  S| j Sd  S(   Ns   waiting for checkoutRF   t   modeRN   s   .yamli   R)   R.   s
   Web Edit: t   log_message(   R   R}   R   RH   Rx   R   Rs   RP   R   R   Rš   R’   R?   R   t   parseR½   t   closeR4   R5   t	   do_revertR   t   revert_threadR7   R   t   get_commit_messaget   checkinR<   R6   R   (   R   t   inft   outft   elmsRÒ   R   (    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   commit×  s4    
c         C€  s¤   |  j  | d t ƒx€ |  j | d t ƒD]i } | j s‚ t j j | | j ƒ } t j j | ƒ rr t	 j
 | ƒ q’ t j | ƒ q) t d | ƒ ‚ q) Wt | ƒ d  S(   NRn   t   get_alls.   Reverted client has file in unknown status: %s(   t   revertR/   t   statusR_   t   is_versionedR   R   R   t   isdirRC   RD   Rš   Rž   R<   (   R   R   Rß   RÂ   (    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyRÕ     s    	c           C€  s…   t  ƒ  s t ‚ y t j j ƒ  Wn t k
 r4 n Xy+ t j d t d t j	 t j
 f ƒ t _ Wn t k
 rs n Xt j j ƒ  d  S(   NR)   R.   (   R   R}   RH   Rx   R   t   AttributeErrorR4   R5   RÕ   R   R   RÖ   R7   (    (    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   abort  s    c          C€  sM   t  j ƒ  }  d t j j t j ƒ } |  j | d t ƒd d d } | j	 S(   Ns   file:///Rn   i    i   R    (
   R=   R>   R   R   R@   R   RA   Rw   R_   R   (   R   R,   R   (    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   get_revision  s    !c       
   C€  sê   d d l  m }  t t j j t j d d ƒ d ƒ ° } | j d ƒ | j d ƒ | j d ƒ x t	 j
 t j ƒ j ƒ  D]e } y% | j d	 ƒ } |  j | d
 ƒ } Wn t k
 rµ qw X| rw | rw | j d | | f ƒ qw qw WWd  QXd  S(   Niÿÿÿÿ(   t
   conversiont   conft   passwdRN   sF   ### The name and password for each user follow, one account per line.
s   
s   [users]
u   usernameu   passwords   %s = %s
(   t   bazbaseRå   RP   R   R   R   R   RA   RQ   R   t   get_elementR   t   EDITOR_ANCESTORt   get_descendantsR   t   rendert   KeyError(   Rå   RU   t   adminRy   t   password(    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   update_auth%  s    '(?   t
   __future__R    t   sysR   R	   t   tempfileR4   RC   t   warningsR   R"   R=   Rè   R   t
   bazbase.dbR   t   bazbase.flavorsR   t   bazbase.benchmarkR   R   R   t   bazjunk.pathR   t   bazyamlR   t   shareR   R!   t   localRH   R   R   R   R   R'   R9   R<   RB   RE   RM   RV   Rž   RW   RZ   R6   R_   Re   Rl   Rz   R‰   RŠ   R±   R“   R»   R¼   t   objectR½   RÜ   RÕ   Rã   Rä   Rð   (    (    (    sT   /afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt   <module>   sP   l															¡		!	3	*			