376
376
graph=None, limit=None):
377
377
"""See InterBranch.update_revisions()."""
378
378
interrepo = self._get_interrepo(self.source, self.target)
380
self._last_revid = None
381
379
def determine_wants(heads):
382
380
if not self.source.name in heads:
383
381
raise NoSuchRef(self.source.name, heads.keys())
384
382
if stop_revision is not None:
385
self._last_revid = stop_revision
386
self._head, mapping = self.source.repository.lookup_bzr_revision_id(
383
_last_revid = stop_revision
384
_head, mapping = self.source.repository.lookup_bzr_revision_id(
389
self._head = heads[self.source.name]
391
self.source.mapping.revision_id_foreign_to_bzr(self._head)
392
if self.target.repository.has_revision(self._last_revid):
387
_head = heads[self.source.name]
388
_last_revid = self.source.mapping.revision_id_foreign_to_bzr(
390
if self.target.repository.has_revision(_last_revid):
395
_, r = interrepo.fetch_objects(
393
_, _head = interrepo.fetch_objects(
396
394
determine_wants, self.source.mapping, limit=limit)
397
self._last_revid = self.source.mapping.revision_id_foreign_to_bzr(r)
395
_last_revid = self.source.mapping.revision_id_foreign_to_bzr(_head)
399
397
prev_last_revid = None
401
399
prev_last_revid = self.target.last_revision()
402
self.target.generate_revision_history(self._last_revid, prev_last_revid)
400
self.target.generate_revision_history(_last_revid, prev_last_revid)
404
403
def pull(self, overwrite=False, stop_revision=None,
405
404
possible_transports=None, _hook_master=None, run_hooks=True,
432
431
graph = self.target.repository.get_graph(self.source.repository)
433
432
result.old_revno, result.old_revid = \
434
433
self.target.last_revision_info()
435
self.update_revisions(stop_revision, overwrite=overwrite,
434
_head = self.update_revisions(stop_revision, overwrite=overwrite,
436
435
graph=graph, limit=limit)
437
result.new_git_head = self._head
436
result.new_git_head = _head
438
437
result.tag_conflicts = self.source.tags.merge_to(self.target.tags,
440
439
result.new_revno, result.new_revid = self.target.last_revision_info()
457
456
result.target_branch = self.target
458
457
graph = self.target.repository.get_graph(self.source.repository)
459
458
result.old_revno, result.old_revid = self.target.last_revision_info()
460
self.update_revisions(stop_revision, overwrite=overwrite, graph=graph)
461
result.new_git_head = self._head
459
_head = self.update_revisions(
460
stop_revision, overwrite=overwrite, graph=graph)
461
result.new_git_head = _head
462
462
result.tag_conflicts = self.source.tags.merge_to(self.target.tags,
464
464
result.new_revno, result.new_revid = self.target.last_revision_info()