ó ”Sc@€sZddlmZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl m Z ddlmZddlmZddlmZddl mZddlmZdd lmZd d lmZd dlmZejƒZd „Zd „Z d„Z!d„Z"d„Z#d„Z$d„Z%d„Z&d„Z'd„Z(d„Z)de*fd„ƒYZ+de*fd„ƒYZ,de.dd„Z/d„Z0d„Z1dd„Z2d„Z3e.d „Z4d!„Z5d"„Z6d#„Z7d$e8fd%„ƒYZ9d&„Z:d'„Z;d(„Z<d)„Z=d*„Z>dS(+iÿÿÿÿ(twith_statementN(t structure(tTransactionAborted(tFLAVORS(t benchmarking(tcustom(tmakedirs(tformati(t svndrivencC€s$dtjtjƒƒdtjfS(Ns/tmp/%s.%s.bazki/checkoutsi(tpwdtgetpwuidtostgetuidtbasecusttAPP_NAME(((sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt checkouts_dirscC€s$dtjtjƒƒdtjfS(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.pytlocked_checkouts_dirscC€sMtj|ƒ}tjjtƒ|ƒ}tjtjjtƒ|ƒ|ƒ|S(N(trandomtchoiceR tpathtjoinRtrenameR(tdirstdtnd((sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt lock_one_ofs"cC€s8|j|ƒjj|jkr4|j|d|ƒndS(Ntrevision(tinfoRtnumbertupdate(tclientttempdtrev((sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyRscC€sBtjjtƒdjd„tdƒDƒƒƒ}tj|ƒ|S(Ntcs€s!|]}tjtjƒVqdS(N(RRtstringt lowercase(t.0tx((sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pys $si (R RRRtxrangeR(R((sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pytnew_checkout_dir"s   c€sâyQxJtrOttjtƒƒƒ}tjjtjj|ddƒƒrPqqWWnJtt fk rt ƒ}t j d‡fd†d|||fƒ}n"Xt j dt d|||fƒ}|dk rØ|jƒn||fS(Ns.svntentriesttargetc€s|jˆ|d|ƒS(NR(tcheckout(tclRR (trepopath(sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt1stargs(tTrueRR tlistdirRRtexistsRt IndexErrortOSErrorR't threadingtThreadRtNonetstart(RRR,Rtthread((R,sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pytstart_checkout(s $   !  cC€s?ttƒƒtj|tjjtƒtjj|ƒƒƒdS(N(RRR RRRtbasename(tdir((sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pytreturn_checkout:s cC€sàyÈtjƒ}tjtƒƒ}d}t|ƒdkr‚t|ƒ}tjj tjj |ddƒƒry|j |ƒq‚d}n|dkr½t ƒ}|j dtjjtjƒ|ƒnt|ƒWntk rÛnXdS(Nis.svnR(sfile:///(tpysvntClientR R0RR6tlenRRR1RRR'R*tabspathRt REPOSITORYR<R3(RRR((sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pytprefetch_checkout>s  $   & cC€sTtjjtƒƒr(tjtƒƒntjjtƒƒrPtjtƒƒndS(N(R RR1RtshutiltrmtreeR(((sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pytclear_checkoutsRscC€s`|jdƒ}d}xD|D]<}||d7}tjj|ƒstjj|dƒqqWdS(Nt/R!(tsplitR RR1tstateRtmkdir(Rtbitstpathpnttb((sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt_mkdir_pXs  cC€sz|jddƒ\}}t|ƒt|dƒ}|j|dƒWdQXytjj|ƒWntjk runXdS(NRFitws ( trsplitRMtopentwriteRHRtaddR=t ClientError(RtvalR;tfil((sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt _setaddfileas t InvalidStatecB€seZRS((t__name__t __module__(((sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyRWlst LockFailedcB€seZRS((RXRY(((sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyRZoscC€sg}|dkr!|jƒ}nxÏtròt|ƒdkr€|jƒsT|dkrm|j|jdg}q|jdg}n|jg|}|dk r«|}d}n |jƒ}|dksÏ|dkrÓPn|tkrãdS|jƒ}q$Wtj j |ŒS(Niutoplevels.yaml( R6t get_orgmodeR/R?t has_childrentenamet get_parenttFalseR RR(telementtparenttsymlinktorgmodetabove((sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt _elementpathrs&      cC€s0tjj|d|dfkr,tt_ndS(Nt content_statet prop_state(R=twc_notify_statet conflictedR/RHtconflict(tdct((sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pytnotifyŠscC€sètjƒ}|r$|jdƒ}nd}tjƒt_ttj_tjj |ƒit_ t t_ t jƒdt_t t_dt jjtjƒ}tjj|dt ƒddd}ttj||ƒ\t_t_|jS(Nsutf-8tnobodyisfile:///trecurseiR (Rt get_usernametencodeR=R>RHRRltcallback_notifytset_default_usernametdeltasR_t lock_stateR tunamethostnameRjRR@RAtinfo2R9Rtcheckout_threadR(tusernameR,R((sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pytbegins      $ cC€sút|ƒ}t|tƒs-tt|ƒƒ‚tj|ƒ}||jƒk}|j|krŽ|rŽdt j j |iƒj |j iƒ| t"sºtdƒ‚t|ƒ}t|d|ƒ}||krN |tjksùt‚|tjkr)tj|tj|¼s(R/R¿tdictR¾(RÀR¹((RÀR¹sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pytget_new_properties¸s cC€s"||jkr|j|SgSdS(N(R‹(RÀR¹((sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pytget_new_children¾s cC€s>tjj|j|ƒ}t|dƒ}|jƒSWdQXdS(Ntrb(R RRR;RPtread(RÀRRU((sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt get_includeÃscC€sÖtjj|j|ƒ}|dk r‹|r{d}|}xBtjj|ƒrw|d7}d|j|jddƒƒ}q9Wnt||ƒn;| s˜t‚tjj|ƒrÆt j j |gdt ƒntjj |ƒS(Nis.%s.t.R(R RRR;R6R1RORVR}RHRR™R/R:(RÀRRTR¯tcnttorigpath((sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt set_includeÇs  & N( RXRYRÁR‡R6RÅRÆRÈRÉRÌRÐ(((sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyR½¤s       cC€s¤tƒ st‚tdƒtjjƒWdQXyàxÙtjD]Î}ttjd|ƒ}t j tjd|ƒttjd|ddƒ}tj|}|j dƒrÆt |ƒdksÆt‚nt jtjd|ttj||ƒ||ƒ|jƒ|jƒq=WWn>tjdtdtjtjfƒt_tjjƒ‚nPXd tjƒ}tjjtjd |ƒ}ttjƒ|dkr™dS|jSdS( Nswaiting for checkoutRFtmodeRNs.yamliR)R.s Web Edit: t log_message(RR}RRHRxRRsRPRR RšR’R?RtparseR½tcloseR4R5t do_revertRt revert_threadR7Rtget_commit_messagetcheckinR<R6R(RtinftoutftelmsRÒR((sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pytcommit×s4      cC€s¤|j|dtƒx€|j|dtƒD]i}|js‚tjj||jƒ}tjj|ƒrrt j |ƒq’tj |ƒq)t d|ƒ‚q)Wt |ƒdS(NRntget_alls.Reverted client has file in unknown status: %s(trevertR/tstatusR_t is_versionedR RRtisdirRCRDRšRžR<(RRRßRÂ((sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyRÕs cC€s…tƒ st‚ytjjƒWntk r4nXy+tjdtdtj tj fƒt_ Wntk rsnXtj j ƒdS(NR)R.( RR}RHRxRtAttributeErrorR4R5RÕRRRÖR7(((sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pytaborts  cC€sMtjƒ}dtjjtjƒ}|j|dtƒddd}|j S(Nsfile:///RniiR ( R=R>R RR@RRARwR_R(RR,R((sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt get_revisions !c C€sêddlm}ttjjtjddƒdƒ°}|jdƒ|jdƒ|jdƒxt j t j ƒj ƒD]e}y%|jd ƒ}|j|d ƒ}Wntk rµqwX|rw|rw|jd ||fƒqwqwWWdQXdS( Niÿÿÿÿ(t conversiontconftpasswdRNsF### The name and password for each user follow, one account per line. s s[users] uusernameupasswords%s = %s (tbazbaseRåRPR RRRRARQRt get_elementR tEDITOR_ANCESTORtget_descendantsRtrendertKeyError(RåRUtadminRytpassword((sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pyt update_auth%s'     (?t __future__RtsysR R ttempfileR4RCtwarningsRR"R=RèRt bazbase.dbRtbazbase.flavorsRtbazbase.benchmarkRRR t bazjunk.pathRtbazyamlRtshareRR!tlocalRHRRRRR'R9R<RBRERMRVRžRWRZR6R_ReRlRzR‰RŠR±R“R»R¼tobjectR½RÜRÕRãRäRð(((sT/afs/athena.mit.edu/user/x/a/xavid/.local/lib/python2.7/site-packages/bazsvn/hook.pytsPl                 ¡  ! 3 *