o ^Ub~!@sddlmZddlZddlZddlZddlZddlmZddlm Z m Z m Z ddl m Z ddlmZejZzddlmmmZddlmmmZWnieyzddlmmmZddlmmmZWnEeyzddlmmZddlmmZWn'eyzddlmmZddlmmZWn eyYnwYnwYnwYnwGdd d ejejZ dS) )absolute_importN)_)errorpycompatutil)dateutil)commoncseZdZdddZddZddZdfdd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ ddZddZZS) darcs_sourceNcCstjj|||||dtj||dtjtj|ds&tt d|tj ddd| d d }|dkrEtt d |d tvrQtt d tj||_d|_i|_i|_i|_|}|rx|d vrvtt d |dS|jt ddS)N)revssdarcss_darcss(%s does not look like a darcs repository)debnames --versionrs2.1s,darcs version 2.1 or newer needed (found %r)s ElementTrees*Python ElementTree module is not available)s darcs-1.0shasheds3%s repository format is unsupported, please upgrades#failed to detect repository format!)r converter_source__init__ commandlineospathexistsjoinNoRepor checktoolrun0 splitlinesstriprAbortglobalsrealpathlastrevchangesparentstagsformatuiwarn)selfr!repotyperr versionr r&5/usr/lib/python3/dist-packages/hgext/convert/darcs.pyr/s:   zdarcs_source.__init__c Cstjdtj|jdd|_|jd|jd\}}|||jddd|jd}d}d}| d D]3}| d }| d d }| d rM|dd }n |durX||j|<d}||j|<|g|j|<|}q2g|j|<dS)Nsconvert--)prefixsinitrepodirschangesT) xml_outputsummaryr+spatchshashnamesTAG )rmkdtemprrbasenametmppathrun checkexitxmlfindallgetfindtext startswithrrrr) r#outputstatustreetagnamechildeltnodenamer&r&r'beforeWs,        zdarcs_source.beforecCs&|jd|jtj|jdddS)Nscleaning up %s T) ignore_errors)r!debugr3shutilrmtreer#r&r&r'afterpszdarcs_source.aftercs(t|tjr |d}tt|||S)Nzlatin-1) isinstancerunicodeencodesuperr recode)r#sencoding __class__r&r'rNts  zdarcs_source.recodecKsNt}tdd}|j|fi|}|j|j|d|||j|S)Nslatin-1)rP)parser) ElementTree XMLParser_runparsestdoutwaitr5 returncodegetroot)r#cmdkwargsetreerSpr&r&r'r6|s  zdarcs_source.xmlcCs\|jdd|jd\}}||td|tj}|sdSdtdd|d dDS) Nshowsrepor*z^\s*Format:\s*(.*)$,css|]}|VqdSN)r).0fr&r&r' sz&darcs_source.format..r) r4rr5research MULTILINErsortedgroupsplit)r#r;r<mr&r&r'r s  $zdarcs_source.formatcCsTg}|jddd|jd\}}|||dD]}|dd}|r'||q|S)Nr`sfilesT)no_directoriesr+ )r4r3r5rkappend)r#manr;r<linerr&r&r'manifests    zdarcs_source.manifestcCs |jdSrb)rrHr&r&r'getheadss zdarcs_source.getheadscCst|j|}d}t|d|}|dd|dd}d}tj||dt|||| |j |d S) Ns%a %b %d %H:%M:%S %Z %Ys local_dater.rnscommentr/s%Y-%m-%d %H:%M:%S %1%2sauthor)authordatedescr) rrstrdater8r9r commitrNdatestrrr)r#revr@ dateformatrvrw newdateformatr&r&r' getcommits   zdarcs_source.getcommitc Csn|jd|jdd|ddd|jd\}}|r5|ddkr"||||jdd|jd \}}|||dSdS) NspullTshash %ss /bin/false)allmatchno_test no_posthookexternal_merger+sWe have conflicts insrevert)rr+)r4rr3findr5)r#r{r;r<r&r&r'pulls    zdarcs_source.pullc Cs2|r ttdi}g}d}|j|dD]o}|jdvr!q|jdkr~|dur.|}|d|d}}||vrP| ||f| ||f|||<q|d}|D]&} | |s^qV|d| t |d} | | |f| | |f| || <qVq| |j |fq||||_t||tfS)Ns*convert from darcs does not support --fullssummary)s add_directorysremove_directorysmovesfromsto/)rrrrr getchildrentagrsr8rpr:lentextrrrriset) r#r{fullcopiesrrqr@sourcedestrdfdestr&r&r' getchangess:      zdarcs_source.getchangesc Cs||jkr ttdtj|j|}z t |}t |j }Wnt y;}z|j t jkr6WYd}~dSd}~ww|d@rBdpCd}||fS)Nsinternal calling inconsistency)NNIxr/)rrrrrrrr3rreadfilelstatst_modeIOErrorerrnoENOENT)r#rBr{rdatamodeinstr&r&r'getfiles   zdarcs_source.getfilecCs|jSrb)rrHr&r&r'gettagsszdarcs_source.gettagsrb)__name__ __module__ __qualname__rrCrIrNr6r rsrtr~rrrr __classcell__r&r&rQr'r .s ( "r )! __future__rrrrfrFmercurial.i18nr mercurialrrrmercurial.utilsrr r"xml.etree.cElementTree.ElementTreer^ cElementTreerT xml.etree.cElementTree.XMLParserrU ImportError!xml.etree.ElementTree.ElementTreexml.etree.ElementTree.XMLParser$elementtree.cElementTree.ElementTree"elementtree.cElementTree.XMLParser#elementtree.ElementTree.ElementTree!elementtree.ElementTree.XMLParserr rr r&r&r&r'sF