o ^ÍUbN4ã@sŠddlmZddlZddlZddlZddlZddlmZddlm Z m Z m Z m Z m Z ddlmZmZddlmZGdd „d ejejƒZdS) é)Úabsolute_importN)Ú_)ÚencodingÚerrorÚmailÚpycompatÚutil)ÚdateutilÚprocutilé)Úcommoncs¶eZdZGdd„deƒZd(‡fdd„ Zdd„Zdd „Zd d „Zd d „Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Z‡ZS))Úgnuarch_sourcec@seZdZdd„ZdS)zgnuarch_source.gnuarch_revcCs@||_d|_d|_d|_d|_g|_g|_g|_i|_i|_ dS)Nó) ÚrevÚsummaryÚdateÚauthorÚcontinuationofÚ add_filesÚ mod_filesÚ del_filesÚ ren_filesÚren_dirs)Úselfr©rú7/usr/lib/python3/dist-packages/hgext/convert/gnuarch.pyÚ__init__ s z#gnuarch_source.gnuarch_rev.__init__N)Ú__name__Ú __module__Ú __qualname__rrrrrÚ gnuarch_revs r NcsÚtt|ƒj||||dtj tj |d¡¡s t t dƒ|¡‚d|_ t   d¡r,d|_ nt   d¡r5d|_ n t  t dƒt dƒd¡‚tj |||j ¡tj |¡|_d|_d|_d|_i|_i|_i|_tj|_g|_dS)N)Úrevsó{arch}s+%s does not look like a GNU Arch repositorysbazótlascannot find a GNU Arch tools (try installing the %s package))Úsuperr rÚosÚpathÚexistsÚjoinr ÚNoReporÚexecmdr ÚfindexerÚAbortÚ commandlineÚrealpathÚtmppathÚ treeversionÚlastrevÚchangesÚparentsÚtagsrÚarchives)rÚuiÚrepotyper&r!©Ú __class__rrr,s. ÿ    ÿ zgnuarch_source.__init__c CsÀdd„| dd¡Dƒ|_|jdkr| d|j¡}n| dd|j¡}| ¡|_|j d¡}tj  t   t   ¡¡d |d ¡|_g|jd<|j}d}|rÞ|j td ƒ|¡| d¡d }||jvrk|j td ƒ|¡dS| ddd|¡\}}| |d|¡d}|D]X}| ¡}| |¡|j|<g|j|<| dd|j|¡\} }|r§| d|¡} | | |¡|j| |¡|}|j|jrÏd  |j|j d¡dd…¡}n |dd…dkrÙnq|sIdSdS)NcSsg|]}| d¡‘qS)ó )Úrstrip)Ú.0ÚirrrÚ Ns ÿz)gnuarch_source.before..sarchivess-nr#s tree-versionó-dó/shg-%sr sanalyzing tree version %s... rsItree analysis stopped because it points to an unregistered archive %s... s revisionss-rs-fs"failed retrieving revisions for %sscat-logscat-archive-logs--éÿÿÿÿiúÿÿÿsbase-0)Ú runlines0r5r*Úrun0r&Ústripr0Úsplitr%r(rÚfsencodeÚtempfileÚ gettempdirr/r3r6ÚstatusrÚrunlinesÚ checkexitr r2ÚrunÚ _parsecatlogÚappendr) rÚoutputÚversionr0ÚchildÚarchiverIÚlrÚcatlogrrrÚbeforeLsh ÿ   ÿ  ÿüÿÿÿ    ÿÿ Êzgnuarch_source.beforecCs&|j d|j¡tj|jdddS)Nscleaning up %s T©Ú ignore_errors)r6Údebugr/ÚshutilÚrmtree©rrrrÚafter›szgnuarch_source.aftercCs |jdS©N)r3r[rrrÚgetheadsŸs zgnuarch_source.getheadscCs@||jkr t tdƒ¡‚tj tj |j|¡¡sdS|  ||¡S)Nsinternal calling inconsistency)NN) r1rr,rr%r&Úlexistsr(r/Ú_getfile)rÚnamerrrrÚgetfile¢s  zgnuarch_source.getfilec s6|r t tdƒ¡‚| ˆ¡g}i}|jˆjD] }| |ˆf¡q|jˆjD] }| |ˆf¡q(|jˆjD] }| |ˆf¡q8|jˆj D]}|jˆj |}| |ˆf¡| |ˆf¡|||<qH|jˆj D]"}|jˆj |}|  ||¡\}} |‡fdd„|Dƒ7}|  | ¡qkˆ|_ tt|ƒƒ|tƒfS)Ns)convert from arch does not support --fullcsg|]}|ˆf‘qSrr©r<Úf©rrrr>Äsz-gnuarch_source.getchanges..)rr,rÚ_updater2rrNrrrrÚ_rendirchangesÚupdater1ÚsortedÚset) rrÚfullr2ÚcopiesrdÚsrcÚtoÚchgsÚcpsrrerÚ getchanges«s.   zgnuarch_source.getchangescCs*|j|}tj|j|j|j|j||dS)N)rrÚdescr3r)r2r Úcommitrrrr3)rrr2rrrÚ getcommitÊs ûzgnuarch_source.getcommitcCs|jSr])r4r[rrrÚgettagsÔszgnuarch_source.gettagscOsh|j|g}||7}dd„|Dƒ}t tj¡}|d|d|g7}d |¡}|j |d¡t t  t j |¡¡S)NcSsg|]}t |¡‘qSr)r Ú shellquote)r<Úargrrrr>Úsz+gnuarch_source._execute..ó>s2>ó r:) r*rÚbytestrr%Údevnullr(r6rXÚsystemÚrapplyr Ú tonativestr)rÚcmdÚargsÚkwargsÚcmdlineÚbdevnullrrrÚ_execute×s   zgnuarch_source._executecCsz|j d|¡| dd|j|¡\}}|r$tj|jdd| |¡dS|j|d}|j d||f¡| ||¡dS)Nsapplying revision %s... sreplayr?TrVrs)computing changeset between %s and %s... ) r6rXrJr/rYrZÚ_obtainrevisionr3Ú_parsechangeset)rrÚ changesetrIÚold_revrrrrfás ÿzgnuarch_source._updatecCs‚t tj |j|¡¡j}t |¡r*t  tj |j|¡¡}|r$d}||fSd}||fSt  tj |j|¡¡}|d@r;dpsz0gnuarch_source._readcontents..) r%ÚlistdirÚlenÚpopr&r(r—ÚisdirrN)rr&ÚfilesÚcontentsÚprr˜rÚ _readcontentss      ÷ zgnuarch_source._readcontentsc Cshg}i}| tj |j|¡¡}|D]}tj ||¡}tj ||¡}| |¡| |¡|||<q||fSr])r¡r%r&r(r/rN) rrmÚdestr2rlržrdÚsÚdrrrrgs   zgnuarch_source._rendirchangescCs^|j d|¡| d||j¡}| |¡|j d|¡| |j¡}|j|j|7_dS)Nsobtaining revision %s... sgetsanalyzing revision %s... )r6rXr„r/rKr¡r2r)rrrOržrrrr…s   zgnuarch_source._obtainrevisioncCs| d¡r |dd…S|S)Ns./é)Ú startswith)rr&rrrÚ_stripbasepath's  zgnuarch_source._stripbasepathcCsÎzVt |¡}t t |dd¡¡|j|_| |d¡|j|_d  | |d¡| |  ¡¡f¡|j|_ | |j|j ¡|j|_ d|vrT| |d¡|j|_ WdSWdSt yft tdƒ|¡‚w)Nz Standard-dates%Y-%m-%d %H:%M:%SÚCreators ÚSummaryzContinuation-ofscould not parse cat-log of %s)rÚ parsebytesr ÚdatestrÚstrdater2rÚrecoderr(Ú get_payloadrrÚ Exceptionrr,r)rr“rrTrrrrM,s(  ÿ  þ ÿÿÿ ÿzgnuarch_source._parsecatlogc Cs²|D]S}| ¡}| d¡r-| d¡s-| |dd… ¡¡}| |¡s,|j|j |¡q| d¡rQ| d¡sQ| |dd… ¡¡}| |¡sP|j|j |¡q| d¡rp| |dd… ¡¡}| |¡so|j|j |¡q| d¡r| |d d… ¡¡}| |¡sŽ|j|j |¡q| d ¡r®| |dd… ¡¡}| |¡s­|j|j |¡q| d ¡rð|dd… ¡  d ¡}t |ƒdkrÏ|dd… ¡  d ¡}| |d¡}| |d¡}| |¡sï| |¡sï||j|j |<q| d¡r| |dd… ¡¡}| |¡s|j|j |¡q| d¡rV|dd… ¡  d ¡}t |ƒdkr4|dd… ¡  d ¡}| |d¡}| |d¡}| |¡sV| |¡sV||j|j |<qdS)NóAsA/r óDsD/sMbr¥sM->éóMs=>ryó rschs/>) rDr¦r§r—r2rrNrrrEr›rr) rr“rrSÚfileržrmÚdstÚdirsrrrr†Isf  € €  €  €  €  €  € €Ïzgnuarch_source._parsechangesetr])rrrÚobjectr rrUr\r^rbrqrtrur„rfr`r—r¡rgr…r§rMr†Ú __classcell__rrr8rr s(  O     r )Ú __future__rr%rYrŽrGÚmercurial.i18nrÚ mercurialrrrrrÚmercurial.utilsr r Úr Úconverter_sourcer-r rrrrÚs