mς σRΕDc@sήdkTdklZdkTeeƒdƒd„Zdfd„ƒYZdfd„ƒYZdfd „ƒYZ d fd „ƒYZ hd e <d e<dd„<dd„<dd„<de |_|ii||ƒdS(Niil(RAtZipInfoR RR(RHR)R%t compressiont compress_typet flag_bitst create_systemRtstattS_IFREGt external_attrtwritestrR*(R R(RR*R)((RR,]s   cCs|iiƒdS(N(R R%R/(R ((RR0gs(R1R2R3tTrueR&R,R0(((RR=Ms  tfileitcBs)tZdZd„Zd„Zd„ZRS(s$write archive as files in directory.cCsp|otitdƒƒ‚n||_h|_ti ti Bti Bt tddƒBt tddƒB|_ dS(Ns*cannot give prefix when archiving to filestO_BINARYit O_NOFOLLOW(RRRRR(R tbasedirtdirsRtO_CREATtO_EXCLtO_WRONLYR7toflags(R R(RR!((RR&ms   cCsžtii|i|ƒ}tii|ƒ}||i jo5tii |ƒpti |ƒnd|i |…sttgzcCst|||dƒS(Ntgz(RR(RR!(R(RR!((RRg†stuzipcCst|||tƒS(N(R=R(RR!tFalse(R(RR!((RRg‡stzipc s‡‡‡‡d†} ˆii|ƒ}|d} t||||p |ddƒ‰ˆi i| ƒiƒ}ˆi i| ƒ} |iƒ| dddtˆiidƒƒt|ƒfƒxH|D]@\} }| | | | odpdˆi| ƒi|ƒƒqΓWˆiƒdS( s‡create archive of repo as it was at node. dest can be name of directory, name of archive file, or file object to write archive to. kind is type of archive to create. decode tells whether to put files through decode filters from hgrc. matchfn is function to filter names of files to write to archive. prefix is name of path to put before every archive member.csjˆoˆ|ƒ odSnˆo/tiƒ}ˆi|||ƒ|i ƒ}nˆi |||ƒdS(N( tmatchfnR(tdecodeR-R.R5trepotwwriteR*tgetvaluetarchiverR,R(R(RR*R5(RoRmRnRr(RR:›s iis.hg_archival.txti€srepo: %s node: %s iνN(R:Rot changelogtreadtnodetchangetmnt archiversR$RRR!Rrtmanifesttitemstmft readflagstmfftsortthextfilenametfilenodetfileR0(RoRRuR$RnRmRR!R{R}RwR€R:RrRRv((RoRnRmRrRtarchive‹s %  ) N(t demandloadti18ntgettextRRutglobalsRRR4R=RSRxRRtNoneRƒ(RR4R=RxRSRRƒR((Rt?s  E