ó œt•Pc@sddlmZddlmZddlZddlZddlZdd„Zd„Zd„Z d„Z d d e d „Z dS( iÿÿÿÿ(tnullid(t_Nic CsG|r|j|ƒ}n |jƒ}i}tj|ƒ}tƒ}d} xø|rB|jƒ} | |kroqKn|j| dƒ} | | krš| d9} n| | krá| |krá|j| ƒ|rÞt|ƒ|krÞdSqán|j| ƒxN|j | ƒD]=} | s| |krþ|j| | dƒ|j | ƒqþqþWqKWdS(Nii( theadsetofconnectedstheadstutiltdequetsettpopleftt setdefaulttaddtlentparentstappend( tdagtnodestsampletalwaystquicksamplesizeRtdisttvisittseentfactortcurrtdtp((s:/sys/lib/python2.7/site-packages/mercurial/setdiscovery.pyt _updatesample s0            cCsmt|ƒ|kr%t|ƒddfS|j|ƒ}|t|ƒ}|dkr]|d|fS|tƒ|fS(Ni(R RtNoneR(R RtsizeRt desiredlen((s:/sys/lib/python2.7/site-packages/mercurial/setdiscovery.pyt _setupsample)s  cCsjt|||ƒ\}}}|dkr+|S|r:d}n|}t||||d|ƒ|j|ƒ|S(NR(RRRtupdate(R RRtinitialRRRtfromset((s:/sys/lib/python2.7/site-packages/mercurial/setdiscovery.pyt_takequicksample4s   cCsít|||ƒ\}}}|dkr+|St||||ƒt|jƒ|||ƒ|sct‚t|ƒ|krttj||ƒƒ}nLt|ƒ|krÜ|t|ƒ}|j tjt |||ƒ|ƒƒn|j |ƒ|S(N( RRRtinversetAssertionErrorR RtrandomRRtlist(R RRRRRtmore((s:/sys/lib/python2.7/site-packages/mercurial/setdiscovery.pyt_takefullsample@s  * idiÈcs…d}|j}tj|ƒ}|jdƒ|d7}|jƒ} | } |jƒrz|jƒ} |j|j| ƒƒ‰np|jdƒrØ|j ƒ} | jƒ} | j|j| ƒƒ}| j ƒ| j } |j ‰n|jƒ} g} |j ƒt kr+| t gkrt gt| fSt gtgfS|jtdƒƒ|j| dtƒ}t|ƒt| ƒkr…|jdƒ| t| fS| rÉtjˆƒrÉ|jtdƒƒ|j| ƒ}|t| fS|jƒ}tƒ}tƒ}|j|j|ƒƒ|j|ƒt}xº|rÌ| r¿t‡fd †t| ƒDƒƒ}|j|j||ƒƒgt| ƒD]\}}ˆ|sg|^qg}|j|j||ƒƒ|j|ƒ|j|ƒn|sÉPn|rú|jtd ƒƒt||d |ƒ} nS|r%|jd ƒt||d |ƒ} n(|jd ƒt||d |dtƒ} |d7}|j tdƒ|dtdƒƒ|jd|t|ƒt| ƒfƒt!| ƒ} |j|j| ƒƒ‰t}qW|j"|ƒ}|j tdƒdƒ|jd|ƒ| r`| t gkr`|r7tj$tdƒƒ‚n|j%tdƒƒtt gƒt| fS| t gk}|j|ƒ|| fS(slReturn a tuple (common, anyincoming, remoteheads) used to identify missing nodes from or in remote. isquery 1; heads itbatchssearching for changes t filterunknownsall remote heads known locally sall local heads known remotely c3s%|]\}}ˆ|r|VqdS(N((t.0titn(tyesno(s:/sys/lib/python2.7/site-packages/mercurial/setdiscovery.pys —sssampling from both directions Rstaking initial sample staking quick initial sample Rt searchingtunittqueriess2query %i; still undecided: %i, sample size is: %i s%d total queries srepository is unrelateds!warning: repository is unrelated N(&t changelogtdagutilt revlogdagtdebugRtlocaltknowntexternalizealltcapableR(tsubmittvaluettipRtTruetFalsetstatusRtinternalizeallR RtalltnotetnodesetRRt ancestorsettdifference_updatet enumeratet descendantsetR'R!tprogressR%RRtAborttwarn(tuiR5tremotetinitialsamplesizetfullsamplesizetabortwhenunrelatedt roundtripstclR townheadsRt srvheadhashesR(tsrvheadhashesreftyesnoreftsrvheadst ownheadhashest undecidedtcommontmissingtfulltcommoninsampleR+R,tmissinginsampletresultt anyincoming((R-s:/sys/lib/python2.7/site-packages/mercurial/setdiscovery.pytfindcommonheadsQs”                    "/     "   ( tnodeRti18nRR$RR2RRR!R'R<R_(((s:/sys/lib/python2.7/site-packages/mercurial/setdiscovery.pyt s$