136 roundtrips += 1 |
136 roundtrips += 1 |
137 ownheads = dag.heads() |
137 ownheads = dag.heads() |
138 sample = _limitsample(ownheads, initialsamplesize) |
138 sample = _limitsample(ownheads, initialsamplesize) |
139 # indices between sample and externalized version must match |
139 # indices between sample and externalized version must match |
140 sample = list(sample) |
140 sample = list(sample) |
141 if remote.local(): |
141 batch = remote.batch() |
142 # stopgap until we have a proper localpeer that supports batch() |
142 srvheadhashesref = batch.heads() |
143 srvheadhashes = remote.heads() |
143 yesnoref = batch.known(dag.externalizeall(sample)) |
144 yesno = remote.known(dag.externalizeall(sample)) |
144 batch.submit() |
145 elif remote.capable('batch'): |
145 srvheadhashes = srvheadhashesref.value |
146 batch = remote.batch() |
146 yesno = yesnoref.value |
147 srvheadhashesref = batch.heads() |
|
148 yesnoref = batch.known(dag.externalizeall(sample)) |
|
149 batch.submit() |
|
150 srvheadhashes = srvheadhashesref.value |
|
151 yesno = yesnoref.value |
|
152 else: |
|
153 # compatibility with pre-batch, but post-known remotes during 1.9 |
|
154 # development |
|
155 srvheadhashes = remote.heads() |
|
156 sample = [] |
|
157 |
147 |
158 if cl.tip() == nullid: |
148 if cl.tip() == nullid: |
159 if srvheadhashes != [nullid]: |
149 if srvheadhashes != [nullid]: |
160 return [nullid], True, srvheadhashes |
150 return [nullid], True, srvheadhashes |
161 return [nullid], False, [] |
151 return [nullid], False, [] |