18
18
This contains functionality for installing bundles into repositories
22
from ...i18n import gettext
23
from ...merge import Merger
24
from ...progress import ProgressPhase
25
from ...trace import note
26
from ..vf_repository import install_revision
21
from __future__ import absolute_import
24
from ..i18n import gettext
25
from ..merge import Merger
26
from ..progress import ProgressPhase
27
from ..trace import note
28
from ..bzr.vf_repository import install_revision
29
31
def install_bundle(repository, bundle_reader):
30
32
custom_install = getattr(bundle_reader, 'install', None)
31
33
if custom_install is not None:
32
34
return custom_install(repository)
33
with repository.lock_write(), ui.ui_factory.nested_progress_bar() as pb:
35
pb = ui.ui_factory.nested_progress_bar()
36
repository.lock_write()
34
38
real_revisions = bundle_reader.real_revisions
35
39
for i, revision in enumerate(reversed(real_revisions)):
36
pb.update(gettext("Install revisions"), i, len(real_revisions))
40
pb.update(gettext("Install revisions"),i, len(real_revisions))
37
41
if repository.has_revision(revision.revision_id):
39
43
cset_tree = bundle_reader.revision_tree(repository,
41
45
install_revision(repository, revision, cset_tree)
44
51
def merge_bundle(reader, tree, check_clean, merge_type,
45
reprocess, show_base, change_reporter=None):
52
reprocess, show_base, change_reporter=None):
46
53
"""Merge a revision bundle into the current tree."""
47
with ui.ui_factory.nested_progress_bar() as pb:
54
pb = ui.ui_factory.nested_progress_bar()
48
56
pp = ProgressPhase("Merge phase", 6, pb)
50
58
install_bundle(tree.branch.repository, reader)