ó ï8¥Qc@sudZddlZddlZddlmZmZmZmZmZm Z m Z m Z m Z mZmZddlmZddlmZddlmZddlZddlZddlZd„Zd„Zd „Zd „Zd „Zd „Zd „Zd„Z d„Z!d„Z"e#d„Z$d„Z%d„Z&d„Z'd„Z(d„Z)e#d„Z*d„Z+e#d„Z,d„Z-d„Z.de0d„Z1dd„Z2d„Z3dd„Z4d „Z5d!„Z6e0ddddd"„Z7dd#„Z8d$„Z9d%„Z:d&„Z;dd'„Z<dd(„Z=d)„Z>giddd*„Z?d+„Z@d,„ZAd-„ZBd.„ZCd/„ZDd0„ZEdS(1sHOverridden Mercurial commands and functions for the largefiles extensioniÿÿÿÿN( thgtcommandstutiltcmdutiltscmutiltmatchtnodetarchivalterrortmerget discovery(t_(thex(trebasecs4d‰gitd‡‡fd†}t|ƒ‰dS(sUoverrides scmutil.match so that the matcher it returns will ignore all largefilestrelpathcsˆˆ|||||ƒ}tj|ƒ}‡fd†‰tˆ|jƒ|_t|jƒ|_t|_|j‰‡‡fd†|_|S(Ncs#tj|ƒp!tj|ƒˆk S(N(tlfutilt isstandintstandin(tf(tmanifest(s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyt"scsˆ|ƒrˆ|ƒpdS(N(tNone(R(tnotlfilet origmatchfn(s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyR(s(tcopytfiltert_filestsett_fmaptFalset_alwaystmatchfn(tctxtpatstoptstglobbedtdefaultRtm(Rtoldmatch(RRs>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyt overridematchs  N(RRtinstallmatchfn(RR'((RR&s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytinstallnormalfilesmatchfns  cCs&tj}t|d|ƒ|t_|S(NR&(RRtsetattr(RR&((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyR(,s  cCsttjdtjƒt_dS(sórestores scmutil.match to what it was before installnormalfilesmatchfn was called. no-op if scmutil.match is its original function. Note that n calls to installnormalfilesmatchfn will require n calls to restore matchfn to reverseR&N(tgetattrRR(((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytrestorematchfn2scOsJ|jddƒ}tj|tj|ƒ|jddƒƒ}d}tj|ƒr–|jtjddgƒ}|r–tj|j dt |ƒƒ}q–ng}t j|d||ƒ} d„| _ |d} xS|j | ƒD]B} | j| ƒ} tj| ƒ| k} | | k}| p|}| rO|rO| rÛ|jtdƒ| ƒqÛqÛn| s\| rÛtj| ƒ rÛ|j| ƒ}tjj|ƒs“qÛn|o¶tj|ƒj|ddk}|s×|s×|r|| ƒr|j| ƒ|jsô| r|jtd ƒ| j| ƒƒqqqÛqÛWg}g}|jƒ}zÿ|jd ƒs7tj||ƒ}x…|D]}} tj| ƒ}tj ||d dd tj!|j| ƒƒƒ|j|ƒ|| d krÔ|j"| ƒqd|j#| ƒqdW|j$ƒ|g|dj#|ƒD]'} | | j%ƒkrtj&| ƒ^q7}nWd|j'ƒX|S(NtlargetlfsizetpatternsR$tcSsdS(N(R(txty((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyRGss%s already a largefile isadding %s as a largefile tdry_runthasht executabletr((tpopRRt getminsizet islfilesrepot configlisttlongnametmatch_RtroottlistRtbadtwalktexactRtwarnR Rtwjointostpathtexiststlstattst_sizetappendtverbosetstatustreltwlocktgettopenlfdirstatet writestandint getexecutablet normallookuptaddtwritetfilest splitstandintrelease(tuitrepoR!R"R-R.t lfmatchertlfpatstlfnamesR%twctxRRAtlfiletnfileRFtwfiletaboveminR?tstandinsRMt lfdirstatet standinname((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyt addlargefiles:sf$$       -    / cs1|jdƒ}| r5| r5tjtdƒƒ‚ntj|d||ƒ‰z%t|_|j dˆdtƒ}Wdt |_X|dj ƒ}g|d|d|d|dgD]4}g|D]!}t j |ƒ|krÀ|^qÀ^q³\} } } } ‡‡fd †} d}|rD| g}}| | | | td ƒƒ}nA| | g}}| | td ƒƒ}| | td ƒƒp‚|}xTt||ƒD]B}ˆjsµˆj|ƒ r–ˆj td ƒˆj|ƒƒq–q–W|jƒ}z7t jˆ|ƒ}xl|D]d}|s[t|dt ƒr<ˆj td ƒ|ƒntj|j|ƒdtƒn|j|ƒqW|jƒg|D]}t j |ƒ^q}}g|D]}t j |ƒ^qŸ}|dj|ƒt|dt ƒs x-|D]"}tj|j|ƒdtƒqäWn|dj|ƒWd|jƒX|S(Ntaftersno files specifiedRtcleaniiiicsAx(|D] }ˆj|ˆj|ƒƒqWtt|ƒdkƒS(Ni(RBRLtinttlen(RUtmsgR(R%RX(s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyRBŽs s#not removing %s: file still exists s<not removing %s: file is modified (use -f to force removal) sCnot removing %s: file has been marked for add (use forget to undo) s removing %s t _isaddremovet ignoremissing(RNRtAbortR RRRtTruetlfstatusRKRRRRtsortedRJRARLRMROR+t unlinkpathRCtremoveRTtforgetRW(RXRYR!R"RftsRR>RtmodifiedtaddedtdeletedRgRBtresultRrRsRMRc((R%RXs>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytremovelargefilessV  f '   "" # cCstj|ƒp|S(N(RRV(torigRE((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyt decodepathÂscOs°|jdƒ}|rO|jdƒr<tjtdƒƒ‚n|||||ŽSt||||Ž}t|djƒƒ|||||Ž}t ƒ|dks¦|r¬dp¯dS(NtnormalR-s$--normal cannot be used with --largeii( R7RNRRmR ReR)RRR,(RzRXRYR!R"R|R?Rx((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyt overrideaddËscOsIt|djƒƒ|||||Ž}tƒt||||ŽpH|S(N(R)RRR,Ry(RzRXRYR!R"Rx((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytoverrideremoveØscKs4z t|j_||||SWdt|j_XdS(N(Rnt_repoRoR(RzRYtrev2R"((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytoverridestatusfnÞs cOs1z t|_|||||ŽSWdt|_XdS(N(RnRoR(RzRXRYR!R"((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytoverridestatusås cCs1zt|j_|||ƒSWdt|j_XdS(N(RnRRoR(RzRYt ignoreupdate((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyt overridedirtyìs cs_gitd‡fd†}t|ƒ‰z t|_|||||ŽSWdt|_tƒXdS(NRc sœˆ|||||ƒ}tj|ƒ}g|jD]}tj|ƒ^q1}|jj|ƒt|jƒ|_t|_|j ‰‡fd†} | |_ |S(sÿMatcher that merges root directory with .hglf, suitable for log. It is still possible to match .hglf directly. For any listed files run log on the standin too. matchfn tries both the given filename and with .hglf stripped. cs;tj|ƒ}|dk r+ˆ|ƒr+tSˆ|ƒ}|S(N(RRVRRn(RtlfR6(R(s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyt lfmatchfns  ( RRRRtextendRRRRR( R R!R"R#R$RR%RRbR†(R&(Rs>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyR'ôs%   (RR(RnRoR,(RzRXRYR!R"R'((R&s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyt overridelogós    c Os‚|jdtƒ}|jdtƒ}|jdtƒ}|||||Ž}|s]|s]|r~|pxtj||||ƒ}n|S(NR-tlfatlfc(R7Rt lfcommandst verifylfiles( RzRXRYR!R"R-talltcontentsRx((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytoverrideverifys!cOsB|jdtƒ}|r+tj||ƒn|||||ŽdS(NR-(R7RR‹t debugdirstate(RzRXRYR!R"R-((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytoverridedebugstatescOstj||ƒ}|jtj|j|jƒƒgtttƒ}|\}}} } } } } }|jƒ}zò|drt |ƒdk}xe|D]]}tj |ƒ}|d|j ƒj ƒtj |j|ƒƒkrât}q’|j|ƒq’W|jƒ|rtjtdƒƒ‚qn|ds]x2||| D]}tj|tj |ƒƒq7WnWd|jƒX|||||ŽS(Ntcheckit.suncommitted local changesRg(RRORKR<talwaysR=tgetcwdRRMRiRtdatatstripthashfileRCRnR|RTRRmR t updatestandinRW(RzRXRYR!R"RcRttunsureRuRvtremovedtmissingtunknowntignoredRgRMtmodR^R((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytoverrideupdate's,$       $ cCs8tj|jj|ƒƒ|kr%tS|||||ƒS(N(RRtdirstatet normalizeR(torigfnRYR]tmctxR((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytoverridecheckunknownfileOs!c  Cs<|o | } |||||||||ƒ} g} x| D]ù} | rZ| j| ƒq;n| \} }}}tdƒtdƒf}tj| ƒ}|dkrZ|dk rZ||krZ| |krZ|}| }tdƒ|}|jj||dƒdkr>| j|dd|fƒ| j|d|j|ƒf|fƒq4| j|dd|fƒq;|dkr'tj| ƒ|kr'| |kr'tj| ƒ}| }tdƒ|}|jj||dƒdkræ| j|dd|fƒq4| j|dd|fƒ| j|d|j|ƒf|fƒq;| j| ƒq;W| S(Ns &Largefiles &Normal filetgsM%s has been turned into a largefile use (l)argefile or keep as (n)ormal file?iR6sO%s has been turned into a normal file keep as (l)argefile or use (n)ormal file?( RIR RRVRRXt promptchoicetflagsR(R£RYtp1tp2tpat branchmergetforcetpartialt acceptremotet overwritetactionst processedtactionRR%targsRjtchoicesRVR^R((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytoverridemanifestmergens@     (- (c Cs÷|||}}} tj|ƒs<||||||| ƒS|j|ƒsOdS| |krn|jƒd} n||jƒkrÍ|jjtdƒtj |ƒtj |jƒƒtj |jƒƒfƒn)|jjtdƒtj |jƒƒƒ| jƒ|jƒkr*|j ƒ| j ƒkr*dS| jƒ|jƒkrƒ|j ƒ| j ƒkrƒ|j |jƒ|j ƒ|j ƒƒdS|jj tdƒtj |ƒtdƒtdƒfdƒdkrÊdS|j |jƒ|j ƒ|j ƒƒdSdS(Nismerging %s and %s to %s s merging %s s?largefile %s has a merge conflict keep (l)ocal or take (o)ther?s&Locals&Other(RRtcmpRtparentsRERXRKR RVR–twwriteR¨R§( R£RYtmynodeRztfcdtfcotfcatfcdesttfcothert fcancestor((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytoverridefilemergeŸs6  !!% $%cst|ƒdkr(||ˆ|ˆ|ƒS‡fd†}tj|ƒ}|d}tjj|ƒr“tjj||ƒƒs“tj||ƒƒq“nt} t} zzy0tˆdj ƒƒ||ˆ|ˆ|ƒ} WnCt j k r} t | ƒtdƒkr| ‚nt} d} nXWdtƒXyˆjƒWntk rF| SXz’yNˆjƒ} ˆdj ƒ‰d‰gitd‡‡fd†}t|ƒ‰g}xF|D]>}tj|ƒdk rÑ|j|ƒq¦|j||ƒƒq¦WzPt j‰g‰‡‡‡‡fd†}|t _| ||ˆ|ˆ|ƒ7} Wdˆt _Xtj|ˆƒ}x3ˆD]+\}}tj|kr^|jˆjtjƒƒr^|jˆjtjd ƒƒd ƒ}|jˆjtjd ƒƒd ƒ}tjj ˆj|ƒƒpúd }tjj|ƒstj|ƒn|rWtj!ˆj|ƒˆj|ƒƒ|j"|ƒn"t jˆj|ƒˆj|ƒƒ|j#|ƒq^q^W|j$ƒWn=t j k r×} t | ƒtdƒkrÎ| ‚qØt} nXWdtƒ| j%ƒX| r| rt j tdƒƒ‚n| S( Nics@tjˆjˆjƒ|ƒ}tjjˆjtj |ƒƒƒS(N( Rt canonpathR=R•RDREtjoinRCRR(RRE(RY(s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyt makestandinÒsiÿÿÿÿsno files to copyiRc sg}x^|D]V}tj|ƒdkrVtj|krV|j|jtjdƒƒq |j|ƒq Wˆ|||||ƒ}tj|ƒ}‡fd†} g|jD]!} | | ƒr§tj | ƒ^q§|_t |jƒ|_ t |_ |j‰‡‡fd†|_|S(NR0cstj|ƒˆkS(N(RR(R(R(s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyR scs4tj|ƒr0|ˆkr0ˆtj|ƒƒp3dS(N(RRRVR(R(RR(s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyRs (R<tpatkindRRt shortnameRItreplaceRRRRRRRR( R R!R"R#R$tnewpatstpatRR%R^R(RR&(Rs>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyR'þs $4  cs›tj|krw|jˆjtjƒƒrw|jtjdƒ}ˆd rwtjj|ƒrwtdt dƒƒ‚qwnˆj ||fƒˆ||ƒdS(NR0R­s$destination largefile already exists( RRÆt startswithRCRÇRDRERFtIOErrorR RI(tsrctdestt destlfile(t copiedfilesR"t origcopyfileRY(s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytoverridecopyfilesR0R“(&RiRt expandpatsRDREtisdirtmakedirsRR)RRRRmtstrR RnR,R•tOSErrorRMR(R<RÅRItcopyfileRRORÆRÊRCRÇRtdirnametrenameRrRSRTRW(RzRXRYR!R"RÙRÄtfullpatsRÍt nonormalfilestnolfilesRxteRMR'tlistpatsRÉRÑRcRÌtsrclfileRÎt destlfiledir((RÏRR&R"RÐRYs>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyt overridecopyÌsŠ           $$!"   c sêˆjƒ}zÌtj|ˆƒ}tj|ˆˆdjƒƒ\}}} } } } } |jƒx'|D]}tjˆtj|ƒƒqfWxT| D]L}tj j ˆj tj|ƒƒƒrtj ˆj tj|ƒƒƒqqWzt jˆ|jdƒƒ}d‰gitd‡‡fd†}t|ƒ‰t j|ˆd||ƒ}||ˆ||ŽWdtƒXtˆdgƒ}tj|ˆd|dtƒgˆ_x›|D]“}||kr¨tj j ˆj tj|ƒƒƒr;|ˆdkr;tjˆtj|ƒˆd|jƒjƒdˆd|jƒkƒq;q¨q¨Wtj|ˆƒ}xy|D]q}tj|ƒ}||krX||ks”|jd ƒrX||kr°|j|ƒntjˆj |ƒƒqXqXW|jƒWd|j ƒXdS( NR“trevRc sψˆ||||ƒ}tj|ƒ}‡‡fd†}g|jD]}||ƒ^qC|_g|jD]}|dk rh|^qh|_t|jƒ|_t|_|j‰‡‡‡fd†} | |_|S(NcsCtj|ƒˆkr"tj|ƒStj|ƒˆdkr?dS|S(N(RRR(R(R RY(s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyt tostandinos  cs†tj|ƒr|ˆtj|ƒƒru|ˆdks@|ˆkrutˆdgƒ}|jtj|ƒƒ|ˆ_tStSnˆ|ƒS(Nt_lfilestoupdate( RRRVRR+RIRäRnR(Rt lfileslist(R RRY(s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyRzs (RRRRRRRR( R R!R"R#R$RR%RãRR(R&RY(R Rs>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyR'ks%+   Rätfilelistt printmessageR1R(!RMRROtlfdirstatestatusRâRTR™RRDRERFRCtunlinkRt revsingleRNRRR(RR,R+R‹t updatelfilesRäRPR–R—R¨tdropRRqRW(RzRXRYR!R"RMRcRuRvR›RœRRžRgR^R R'tmatchesRåR((R&RYs>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytoverriderevertXsP 4   $& !    ' % ' cCsw|stj|ƒ}n||||ƒ}d}|sZtj|ƒ}tj||ƒ}ntj|j|d|ƒ|S(NRæ(RtgetstandinsstateRtgetlfilestoupdateR‹RëRX(RzRYRR°t oldstandinsRxRæt newstandins((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyt hgupdaterepo«scCs,|||||ƒ}tj|j|ƒ|S(N(R‹RëRX(RzRYRR­tremindRx((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pythgmerge¹scKst|ƒ}|sd}n||_|jdtƒrt|_zµ|jdƒrh|d=|jdƒn|d=tj|ƒt j }d„}|t _ zt j ||||}Wd|t _ Xt|ƒ} | |kró|pít j ||ƒ}nWdt|_Xn|||||}t|ƒ} |jdgƒ} |jdƒrV| j dƒn| rþ| |krþd } ||_zcx\tj|| ƒD]H} |jtd ƒ| ƒtj||| ƒ\} }| t| ƒ7} qWWd|`X|jtd ƒ| ƒn|S( NR$R tupdatesC--update and --rebase are not compatible, ignoring the update flag c_sdS(N((R´tkwargs((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyt_dummyÐstlfrevtall_largefilesspulled()is#pulling largefiles for revision %s s%d largefiles cached (Rit lfpullsourceRNRRnt _isrebasingtdebugRt bailifchangedRt postincomingtpullR RIt firstpulledRtrevrangetnoteR R‹t cachelfilesRK(RzRXRYtsourceR"t revsprepulltorigpostincomingRøRxt revspostpulltlfrevst numcachedRâtcachedRœ((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyt overridepullÁsL              cCsYy |j}Wn&tk r5tjtdƒƒ‚nXg|D]}||kr=|^q=S(sx``pulled()`` Changesets that just has been pulled. Only available with largefiles from pull --lfrev expressions. .. container:: verbose Some examples: - pull largefiles for all new changesets:: hg pull -lfrev "pulled()" - pull largefiles for all new branch heads:: hg pull -lfrev "head(pulled()) and not closed()" s"pulled() only available in --lfrev(RtAttributeErrorRRmR (RYtsubsetR1RR6((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytpulledrevsetsymbolïs   cKsr|}|dkr$tj|ƒ}n|jdƒr_tj|ƒ r_tjtd|ƒƒ‚n|||||S(NRús>--all-largefiles is incompatible with non-local destination %s(RRt defaultdestRNtislocalRRmR (RzRXRRÍR"td((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyt overrideclone s  c Os}|||||Ž}|dk ry|\}}|jƒ}|jdƒrytj||dƒ\} } | dkrvdSqyn|S(NRúi(RtlocalRNR‹tdownloadlfiles( RzRXR"R´R÷Rxt sourcerepotdestrepoRYtsuccessRœ((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pythgclones     cKs.t|_z||||SWdt|_XdS(N(RnRüR(RzRXRYR"((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytoverriderebase&s c  sVtjˆjˆˆƒ|tjkrAtjtdƒ|ƒ‚nˆˆ‰|dkrxˆrtjtdƒƒ‚qntj||ˆƒ‰‡‡‡‡‡fd†} tj|||pȈj ƒdƒ‰ˆjj ddt ƒr‡‡‡fd†} | d d t | ƒnx׈D]Ï} ˆj | ƒ} ˆ| j}tj| ƒr¼tjˆ|ƒjƒƒ‰ˆdkr•tjtd ƒtj| ƒƒ‚ntj| ƒ} ‡fd †}|}n| | d | krÔdp×d d| k|ƒqW| rHxTtˆjƒD]@}ˆj|ƒ}tj|ˆƒ}|jˆjˆˆ|ƒqWnˆjƒdS(Nsunknown archive type '%s'RUs*cannot give prefix when archiving to filescsYˆrˆ|ƒ rdS|ƒ}ˆr;ˆj||ƒ}nˆjˆ||||ƒdS(N(t wwritedatataddfile(tnametmodetislinktgetdataR–(tarchivertdecodeRtprefixRY(s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyRT?s  iRXt archivemetacsdtˆjjdƒƒtˆƒˆjƒf}dj‡fd†ˆjƒDƒƒ}|sûˆjjƒidd6dd6dd6dd 6}t j ˆjˆ|ƒj ˆƒˆjj ƒj d ƒ\}}djd „|j d ƒDƒƒ}|d |7}n||S(Nsrepo: %s node: %s branch: %s iR0c3s.|]$}ˆj|ƒdkrd|VqdS(tglobalstag: %s N(ttagtype(t.0tt(RY(s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pys Nss{latesttag} {latesttagdistance}ttemplatetstyletpatchtgits css|]}d|VqdS(slatesttag: %s N((R'R(((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pys Vst:slatesttagdistance: %s (R t changelogRtbranchRÃttagsRXt pushbufferRRtshow_changesettshowt popbuffertsplit(tbaseR0R"tltagstdist(R RRY(s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytmetadataJs.%  "s.hg_archival.txti¤s4largefile %s not found in repo store or system cachecs>d}ztˆdƒ}|jƒSWd|r9|jƒnXdS(Ntrb(Rtopentreadtclose(tfd(RE(s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyt getdatafnhs R1iítl(R‹RRXRt archiversRRmR t tidyprefixtdatet configboolRnRR¨R–RRtfindfileR—RRVRptsubstatetsubR<t narrowmatchertarchivetdone(RzRYRÍRtkindR"RR#tmtimetsubreposRTR9RtffR R?tsubpathRGtsubmatch((R!R R"RRRER#RYs>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytoverridearchive-sB  &     / cs°ˆjˆjd ƒˆjd}ˆj|}tj|ˆj|jƒƒ‡‡‡‡‡fd†}xÝ|D]Õ‰|jˆƒ} |ˆj} tj ˆƒrtj ˆj| ƒj ƒƒ‰ˆdkrìt jtdƒtjˆƒƒ‚ntjˆƒ‰‡‡fd†} | } n|ˆd| kr.dp1dd | k| ƒqlWxdt|jƒD]S} |j| ƒ} tj| ˆƒ}| j|ˆtjjˆˆjƒd |ƒqUWdS( NRicsIˆrˆˆƒ rdS|ƒ}ˆjˆˆjd||||ƒdS(Nt/(Rt_path(RRRR R–(R!RRR#RY(s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyRTƒs s4largefile %s not found in repo store or system cachecsMd}z,ttjjˆˆƒdƒ}|jƒSWd|rH|jƒnXdS(NR:(RR;RDRERÃR<R=(R>(RER#(s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyR?—s R1iíi¤R@RR(shg(t_gett_stateRR‹RRR¨R–RRRER—RRRmR RVRpRFRGR<RHRIRDRERÃRS(RzRYRXR!R#RRâR RTRNR R?RORGRP((R!RRRER#RYs>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pythgsubrepoarchive|s.       /%cCsl||ƒt|_|jƒd \}}}}t|_|sP|sP|sP|rhtjtdƒƒ‚ndS(Nisoutstanding uncommitted changes(RnRoRKRRRmR (RzRYRuRvR›Rw((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytoverridebailifchanged®s    c Osqt|_|jƒd \}}}}t|_|sF|sF|sF|r^tjtdƒƒ‚n|||||ŽS(Nisoutstanding uncommitted changes(RnRoRKRRRmR ( RzRXRYR!R"RuRvR›Rw((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyt overridefetch·s   c Os{t|djƒƒ|||||Ž}tƒtj|d||ƒ}z%t|_|jd|dtƒ}Wdt |_Xt |d|d|d|dƒ}g|D]+} t j | ƒ|djƒkrª| ^qª}xt|D]l} t j | ƒ|j krâtjj|jt j | ƒƒƒ râ|jtdƒ|j| ƒƒd}qâqâWxJ|D]B} |jsx|j| ƒ rY|jtdƒ|j| ƒƒqYqYW|jƒ} z¾t j||ƒ} x;|D]3} | | d krí| j| ƒqÇ| j| ƒqÇW| jƒg|D]} t j | ƒ^q} x*| D]"} tj|j| ƒd tƒq1W|dj| ƒWd| jƒX|S( NRRgiiiis+not removing %s: file is already untracked s removing %s taRl( R)RRR,RRRnRoRKRRpRRR¡RDRERÓRLRBR RJRARMRORìRrRTRRqRCRsRW( RzRXRYR!R"RxR%RtRsRRMRcRb((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytoverrideforget¿sB  (8 %  '   "   c Ksë|j|pd|pdƒ}tj||jdƒƒ\}}tj||||jdƒƒ\}}|rgtj||ƒD]}|j|ƒ^q}nytj|||ƒ}Wnt j k rÍdSXt j ||jƒdtƒ} | jsü| jS|jj| j|ƒd} |jdƒr4| jƒntƒ} x¡| D]™} g|jj| ƒD]} | tjkr]| ^q]}|| }t|jƒƒ}t|ƒdkrš|jƒ}|jƒdjƒ}|jƒd jƒ}x*|D]"}||krë|j|ƒqëqëWx*|D]"}||kr|j|ƒqqWxY|D]N}|||j|dƒksƒ|||j|dƒkrE|j|ƒqEqEWn| jtg|D]'}tj|ƒrª||krª|^qªƒƒ} qDWt| ƒS( Ns default-pushR$R/RâR­it newest_firstii(t expandpathRtparseurlRNt addbranchrevsRRtlookuptpeerRt RepoErrorRR tfindcommonoutgoingRRœR.t nodesbetweentreverseRR¸RtnullidRURiRRStunionRRRp(RXRYRÍR"tbranchestrevstcheckoutRâtremotetoutgoingtottouploadtntpR¸R RUtmctmp1tmp2R((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytgetoutgoinglfilesìsH!'1    4       8AcKsÌ|||||}|jddƒrÈt||||}|dkr^|jtdƒƒqÈ|sz|jtdƒƒqÈ|jtdƒƒx(|D] }|jtj|ƒdƒq”W|jdƒn|S(NR-slargefiles: No remote repo slargefiles: no files to upload slargefiles to upload: s (R7RRsRKR RRV(RzRXRYRÍR"RxRmtfile((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytoverrideoutgoings  cOs¶z t|_|||||ŽWdt|_X|jddƒr²t||d|}|dkrv|jtdƒƒq²|s’|jtdƒƒq²|jtdƒt|ƒƒndS(NR-slargefiles: (no remote repo) s!largefiles: (no files to upload) slargefiles: %d to upload ( RnRoRR7RRsRKR Ri(RzRXRYR!R"Rm((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytoverridesummary%s   cCs(tj|ƒs%||||||ƒStj|j|ƒ}|jtj|j|jƒƒgt t t ƒ}|\}} } } } } }}| rÛg| D]}|j |ƒ^q•}t |_ t |j|||Žt |_ nt|j|||Žt|djƒƒ||||||ƒ}tƒ|S(N(RR9RORXRKR<R”R=R•RRCRnRkRyReR)RRR,(RzRYR!R"R3t similarityRcRtRšRuRvR›RœRRžRgRR%Rx((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytscmutiladdremove8s $ "  c shˆjƒ‰ˆj‰dddtttt‡‡‡fd†}|ˆ_|ˆˆ||Žˆˆ_dS(NR“cs¶ˆ|||||||ƒ}tjˆˆƒ}|\} } } } }}}g|D]} || dkrR| ^qR}g|D]} || dkr{| ^q{}| | | | |||fS(Nt?(RRO(tnode1tnode2RRžRgRt listsubreposR6RcRuRvR›RwR(t oldstatusRYRX(s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyR‚]s ))(t unfilteredRKRR(RzRXRYtdirsR"R‚((R}RYRXs>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyt overridepurgeXs    c Ksç||||}tj|dddtdtdtjƒ|jƒ}ztj||ƒ}tj |ƒ}tj ||dj ƒdj ƒƒ}x7|D]/} | |kr¹|j | ƒq—|j | ƒq—W|jƒWd|jƒX|S(NRR¬R­R®i(R RöRRRnRRRMROt listlfilesR¸RâRRRSRTRW( RzRXRYR"RxRMRctlfilest oldlfilesRt((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytoverriderollbackjs  &   c Os‚zqtj|ƒ}t|_|||||Ž}tj|ƒ}tj||ƒ}tj|j|d|dtƒWdt|_X|S(NRæRç( RRïRnt_istransplantingRðR‹RëRXR( RzRXRYRhR"RñRxRòRæ((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytoverridetransplant}s   cs+tj||jdƒƒ}d}tƒ‰tj||f||ƒ}|j‰‡‡fd†} | |_|j‰‡‡fd†} | |_x–|j|ƒD]…} tj ||jdƒ|j ƒd| ƒ} t j | ƒ} | dkr-|| jƒ}|jdƒr|j| |ƒ}n| j|ƒnæt j|| |jƒƒ}t j|j|ƒs»tj|ƒ}|j| |fgƒ\}}t|ƒdkr»tjtdƒ| ƒ‚q»nt j|j|ƒ}t|d ƒ}x'tj|d ƒD]}| j|ƒqòW|jƒ| jƒd }qžW|S(NRâics<tj|ƒ}|dkr%ˆ|ƒSˆj|ƒˆ|ƒS(N(RRVRRS(RR…(tnotbadR(s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyR†s    cs|ˆkrˆ||ƒSdS(N((RRj(R‡t origbadfn(s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytlfbadfn˜s toutputtpathnameR"s8largefile %s is not in cache and could not be downloadedR:i€iii(RRêRNRRRR?R@Rt makefileobjRRRVRR–RRTt readstandinRât inusercacheRXt basestoret _openstoreRiRRmR t usercachepathR;t filechunkiterR=(RzRXRYtfile1R!R"R terrR%R†R‰RtfpR…R–R4tstoreRRœREtfpintchunk((R‡RˆRs>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyt overridecatŠsF     !      cCst|j_||ƒdS(N(RnRYt _isconverting(Rztsink((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytmercurialsinkbefore¸s cCst|j_||ƒdS(N(RRYRš(RzR›((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pytmercurialsinkafter¼s (Ft__doc__RDRt mercurialRRRRRRR<RRRR R tmercurial.i18nR tmercurial.nodeR thgextR RR‹RR)R(R,ReRyR{R}R~RR‚RR„RˆRR‘R R¥R¶RÁRáRîRóRRnRõR RRRRRQRVRWRXRZRsRuRvRxR€R„R†R™RœR(((s>/sys/lib/python2.7/site-packages/hgext/largefiles/overrides.pyt sj  L       E C      ( 0 - Œ S  .   N 2  - (       .