equal
deleted
inserted
replaced
49 from .node import ( |
49 from .node import ( |
50 nullid, |
50 nullid, |
51 nullrev, |
51 nullrev, |
52 ) |
52 ) |
53 from . import ( |
53 from . import ( |
54 dagutil, |
|
55 error, |
54 error, |
56 util, |
55 util, |
57 ) |
56 ) |
58 |
57 |
59 def _updatesample(revs, heads, sample, parentfn, quicksamplesize=0): |
58 def _updatesample(revs, heads, sample, parentfn, quicksamplesize=0): |
156 if ancestorsof is not None: |
155 if ancestorsof is not None: |
157 ownheads = [clrev(n) for n in ancestorsof] |
156 ownheads = [clrev(n) for n in ancestorsof] |
158 else: |
157 else: |
159 ownheads = [rev for rev in cl.headrevs() if rev != nullrev] |
158 ownheads = [rev for rev in cl.headrevs() if rev != nullrev] |
160 |
159 |
161 dag = dagutil.revlogdag(cl) |
|
162 |
|
163 # early exit if we know all the specified remote heads already |
160 # early exit if we know all the specified remote heads already |
164 ui.debug("query 1; heads\n") |
161 ui.debug("query 1; heads\n") |
165 roundtrips += 1 |
162 roundtrips += 1 |
166 sample = _limitsample(ownheads, initialsamplesize) |
163 sample = _limitsample(ownheads, initialsamplesize) |
167 # indices between sample and externalized version must match |
164 # indices between sample and externalized version must match |
271 common.addbases(commoninsample) |
268 common.addbases(commoninsample) |
272 common.removeancestorsfrom(undecided) |
269 common.removeancestorsfrom(undecided) |
273 |
270 |
274 # heads(common) == heads(common.bases) since common represents common.bases |
271 # heads(common) == heads(common.bases) since common represents common.bases |
275 # and all its ancestors |
272 # and all its ancestors |
276 result = dag.headsetofconnecteds(common.bases) |
273 # The presence of nullrev will confuse heads(). So filter it out. |
277 # common.bases can include nullrev, but our contract requires us to not |
274 result = set(local.revs('heads(%ld)', common.bases - {nullrev})) |
278 # return any heads in that case, so discard that |
|
279 result.discard(nullrev) |
|
280 elapsed = util.timer() - start |
275 elapsed = util.timer() - start |
281 progress.complete() |
276 progress.complete() |
282 ui.debug("%d total queries in %.4fs\n" % (roundtrips, elapsed)) |
277 ui.debug("%d total queries in %.4fs\n" % (roundtrips, elapsed)) |
283 msg = ('found %d common and %d unknown server heads,' |
278 msg = ('found %d common and %d unknown server heads,' |
284 ' %d roundtrips in %.4fs\n') |
279 ' %d roundtrips in %.4fs\n') |