ó œēƒQc@s¦ddlZddlZddlmZmZddlmZmZddlm Z ddl m Z m Z m Z mZdefd„ƒYZde fd „ƒYZdS( i’’’’N(tutiltconfig(thextnullid(t_(tNoRepotcommittconverter_sourcet checktoolt submodulecBs#eZd„Zd„Zd„ZRS(cCs||_||_||_dS(N(tpathtnodeturl(tselfR R R ((s5/sys/lib/python2.7/site-packages/hgext/convert/git.pyt__init__s  cCsd|j|jfS(Ns %s = [git]%s(R R (R ((s5/sys/lib/python2.7/site-packages/hgext/convert/git.pythgsubscCsd|j|jfS(Ns%s %s(R R (R ((s5/sys/lib/python2.7/site-packages/hgext/convert/git.pyt hgsubstates(t__name__t __module__RRR(((s5/sys/lib/python2.7/site-packages/hgext/convert/git.pyR s  t convert_gitcBs¶eZejedƒr'dd„Zn dd„Zd„Zd„Zdd„Z d„Z d„Z d„Z d „Z d „Zd „Zd „Zd „Zd„Zd„Zd„ZRS(tunsetenvcCs«tjjdƒ}|jtjdxs(RRtsortedR?R (R tnullRO((s5/sys/lib/python2.7/site-packages/hgext/convert/git.pyRLvs cCs•g|_tjƒ}|jd|jddƒƒx]|jƒD]O}||}d|kr>d|kr>|jjt|dd|dƒƒq>q>WdS(sParse the formatted .gitmodules file, example file format: [submodule "sub"] path = sub url = git://giturl s .gitmoduless RIR R N(R?RtparsetreplacetsectionstappendR (R tcontenttctsecR!((s5/sys/lib/python2.7/site-packages/hgext/convert/git.pytparsegitmodules|s   cCs£|jd|dfƒ\}}|rAtjtdƒ|ƒ‚n|j|ƒxN|jD]C}|jd||jfƒ\}}|rŒqXn|jƒ|_qXWdS(Nsgit show %s:%ss .gitmoduless(cannot read submodules config file in %ssgit rev-parse %s:%s( R9RRBRR]R?R tstripR (R tversiontmodulesRDROR ((s5/sys/lib/python2.7/site-packages/hgext/convert/git.pytretrievegitmodules‹s  "c Csŗi|_|jd|ƒ}g}tƒ}d}t}x+|jƒjdƒD]}|sz|jdƒsnqMn|}qMn|}||kr[|j|ƒ|jƒ}|d} |ddk} |ddk} |dkrńt }|j dƒq[|dd ks|d d krt }q[| r&dp5| r2dp5d |j|| f<|j || fƒnd}qMW|j ƒrt j tdƒ|ƒ‚n|r°|j|ƒ|j dƒn|ifS(Ns git diff-tree -z --root -m -r %stt:iit100755t120000s .gitmoduless.hgsubRIt160000is:160000txtlscannot read changes in %ss .hgsubstate(s.hgsubRI(s .hgsubstateRI(RMR'tsetR R3R5tsplitt startswithtaddR1RYR6RRBRRa( R R_R7tchangestseententryt subexistsRhtfthR4R!((s5/sys/lib/python2.7/site-packages/hgext/convert/git.pyt getchanges—sB         +   c Cs2|j|dƒ}|jdƒ}||d}|j|ƒ}|| jƒ}g}d}}x |dD]} | jddƒ\} } | dkrō| jƒ} | d\} }dj| d ƒ}|dd krā|dd !}n|j|ƒ}n| d kra| jƒ} | d\} }dj| d ƒ}|dd krO|dd !}n|j|ƒ}n| d kri|j| ƒqiqiW|r¤||kr¤|d |7}n|dd!d|dd!|d}}}t|ƒ t|ƒdt|ƒ}| dt |ƒ}t d|d|d|d|d|ƒ}|S(NRs iit tauthoriž’’’itqžqž||||}d|krDq,n|d jdƒ\}}|j|ƒq,WnB|jd|||dfƒ}g|D]}|jdƒ^q˜}|jƒrŪtjtdƒ|ƒ‚n|S(Nsgit diff-tree --root -m -r %ss i’’’’s1git diff-tree --name-only --root -r %s "%s^%s" --is scannot read changes in %s( R R'RjRYtrstripR6RRBR(R R_tiRmR7RhRORq((s5/sys/lib/python2.7/site-packages/hgext/convert/git.pytgetchangedfiles’s    " c CsŻi}d}t|ƒ}idd6dd6}xŖ|D]¢}yˆ|j||dtjƒ}xe|D]]}|jƒ}|jddƒ\}} | j|ƒsžq_nd|| |f} ||| s  "