/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: 2018-11-17 17:17:02 UTC
  • mto: This revision was merged to the branch mainline in revision 7187.
  • Revision ID: jelmer@jelmer.uk-20181117171702-4tm0yznbaw3rq3es
More beees.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2006, 2007, 2009, 2010 Canonical Ltd
 
1
# Copyright (C) 2005, 2006, 2007, 2009, 2010, 2011 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 
16
 
16
17
"""\
17
18
This contains functionality for installing bundles into repositories
18
19
"""
19
20
 
20
 
import bzrlib.ui
21
 
from bzrlib.progress import ProgressPhase
22
 
from bzrlib.merge import Merger
23
 
from bzrlib.repository import install_revision
24
 
from bzrlib.trace import note
 
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
25
29
 
26
30
 
27
31
def install_bundle(repository, bundle_reader):
28
32
    custom_install = getattr(bundle_reader, 'install', None)
29
33
    if custom_install is not None:
30
34
        return custom_install(repository)
31
 
    pb = bzrlib.ui.ui_factory.nested_progress_bar()
32
 
    repository.lock_write()
33
 
    try:
 
35
    with repository.lock_write(), ui.ui_factory.nested_progress_bar() as pb:
34
36
        real_revisions = bundle_reader.real_revisions
35
37
        for i, revision in enumerate(reversed(real_revisions)):
36
 
            pb.update("Install revisions",i, len(real_revisions))
 
38
            pb.update(gettext("Install revisions"), i, len(real_revisions))
37
39
            if repository.has_revision(revision.revision_id):
38
40
                continue
39
41
            cset_tree = bundle_reader.revision_tree(repository,
40
 
                                                       revision.revision_id)
 
42
                                                    revision.revision_id)
41
43
            install_revision(repository, revision, cset_tree)
42
 
    finally:
43
 
        repository.unlock()
44
 
        pb.finished()
45
44
 
46
45
 
47
46
def merge_bundle(reader, tree, check_clean, merge_type,
48
 
                    reprocess, show_base, change_reporter=None):
 
47
                 reprocess, show_base, change_reporter=None):
49
48
    """Merge a revision bundle into the current tree."""
50
 
    pb = bzrlib.ui.ui_factory.nested_progress_bar()
51
 
    try:
 
49
    with ui.ui_factory.nested_progress_bar() as pb:
52
50
        pp = ProgressPhase("Merge phase", 6, pb)
53
51
        pp.next_phase()
54
52
        install_bundle(tree.branch.repository, reader)
64
62
        merger.pp.next_phase()
65
63
        merger.find_base()
66
64
        if merger.base_rev_id == merger.other_rev_id:
67
 
            note("Nothing to do.")
 
65
            note(gettext("Nothing to do."))
68
66
            return 0
69
67
        merger.merge_type = merge_type
70
68
        merger.show_base = show_base
71
69
        merger.reprocess = reprocess
72
70
        conflicts = merger.do_merge()
73
71
        merger.set_pending()
74
 
    finally:
75
 
        pb.clear()
76
72
    return conflicts