/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/bundle/apply_bundle.py

  • Committer: Jelmer Vernooij
  • Date: 2017-06-08 23:30:31 UTC
  • mto: This revision was merged to the branch mainline in revision 6690.
  • Revision ID: jelmer@jelmer.uk-20170608233031-3qavls2o7a1pqllj
Update imports.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
This contains functionality for installing bundles into repositories
19
19
"""
20
20
 
21
 
from ... import ui
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
 
22
 
 
23
from .. import ui
 
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
27
29
 
28
30
 
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()
 
37
    try:
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):
38
42
                continue
39
43
            cset_tree = bundle_reader.revision_tree(repository,
40
 
                                                    revision.revision_id)
 
44
                                                       revision.revision_id)
41
45
            install_revision(repository, revision, cset_tree)
 
46
    finally:
 
47
        repository.unlock()
 
48
        pb.finished()
42
49
 
43
50
 
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()
 
55
    try:
48
56
        pp = ProgressPhase("Merge phase", 6, pb)
49
57
        pp.next_phase()
50
58
        install_bundle(tree.branch.repository, reader)
67
75
        merger.reprocess = reprocess
68
76
        conflicts = merger.do_merge()
69
77
        merger.set_pending()
 
78
    finally:
 
79
        pb.clear()
70
80
    return conflicts