ó ŸçƒQc@syddlmZddlmZddlmZddlZddlZed„Z d„Z d„Z dd d „Z dS( iÿÿÿÿ(t changegroup(tshort(t_Nc Cs“|j||dƒ}|jdƒ}tjj|ƒsFtj|ƒntjj|dt|ƒ|fƒ}|rzd} nd} tj||| ƒS(s8create a bundle with the specified revisions as a backuptstrips strip-backups%s-%s.hgtHG10BZtHG10UN( tchangegroupsubsettjointostpathtisdirtmkdirRRt writebundle( trepotbasestheadstnodetsuffixtcompresstcgt backupdirtnamet bundletype((s4/sys/lib/python2.7/site-packages/mercurial/repair.pyt_bundles% cCsJtƒ}x4t|t|ƒƒD]}|j||jƒƒqWt|ƒS(s+find out the filelogs affected by the strip(tsettxrangetlentupdatetfilestsorted(R tstriprevRtx((s4/sys/lib/python2.7/site-packages/mercurial/repair.pyt _collectfiless csPtƒ‰‡‡fd†}||jƒx!|D]}||j|ƒƒq/WˆS(s<return the changesets which will be broken by the truncationcsh‡fd†ˆDƒ}x|D]}|ˆkrPqqWx*|D]"}|ˆkr>ˆj|ƒq>q>WdS(Nc3s|]}ˆj|ƒVqdS(N(tlinkrev(t.0ti(trevlog(s4/sys/lib/python2.7/site-packages/mercurial/repair.pys )s(tadd(R$tlinkgentlrev(tsR(R$s4/sys/lib/python2.7/site-packages/mercurial/repair.pyt collectone(s    (Rtmanifesttfile(R RRR)tfname((R(Rs4/sys/lib/python2.7/site-packages/mercurial/repair.pyt_collectbrokencsets%s    talltbackupc& Cs©|jƒ}|jƒ|j}t|tƒr:|g}ng|D]}|j|ƒ^qA}t|ƒ}|dk} t|ƒ} x8|D]0} x'|j| gƒD]} | j | ƒq Wq‡Wt ||ƒ} t || |ƒ}t|ƒ}x`t |dt |ƒƒD]E}|| kr|j |ƒ|j|j|ƒƒ|j |ƒqqWg|D]}|j|ƒ^qR}|r˜t|j|ƒƒ}|j|ƒng|D]}|j|ƒ^qŸ}g| D]}|j|ƒ^qÁ}|jd| | ƒ}|r||djƒ}nd}|j}g}x>|D]6}|||jƒ} | | kr*|j|ƒq*q*Wd}|dkrÇt|||jƒ||ƒ}|jjtdƒ|ƒ|jjdd|ƒn|sÓ|rôt||||d d | ƒ}n|j}|jdƒ}t |jƒ}y3|jƒ|j||ƒ|j||ƒx'| D]}|j |ƒj||ƒqOW|j!ƒy`xOt |t |jƒƒD]5}|j|\}} }!|j"|d ƒj#| ƒq˜W|j$ƒWn|j%ƒ‚nX|sÿ|r¨|j&td ƒƒt'|d ƒ}"t(j)|"|ƒ}#|jj*sO|jj+ƒn|j,|#dd|t-ƒ|jj*s…|jj.ƒn|"j$ƒ| s¨t/j0|ƒq¨nxs|j1ƒD]e}$yt/j0|$ƒWqµt2k r}%|%j3t3j4kr|j5tdƒ|$t|%ƒfƒqqµXqµWx"|D]}||jƒ|| s