1
# Copyright (C) 2005, 2006, 2007, 2009, 2010 Canonical Ltd
1
# Copyright (C) 2005, 2006, 2007, 2009, 2010, 2011 Canonical Ltd
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
17
from __future__ import absolute_import
17
20
This contains functionality for installing bundles into repositories
24
from bzrlib.i18n import gettext
25
from bzrlib.merge import Merger
21
26
from bzrlib.progress import ProgressPhase
22
from bzrlib.merge import Merger
23
from bzrlib.repository import install_revision
24
27
from bzrlib.trace import note
28
from bzrlib.vf_repository import install_revision
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()
35
pb = ui.ui_factory.nested_progress_bar()
32
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("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,
47
51
def merge_bundle(reader, tree, check_clean, merge_type,
48
52
reprocess, show_base, change_reporter=None):
49
53
"""Merge a revision bundle into the current tree."""
50
pb = bzrlib.ui.ui_factory.nested_progress_bar()
54
pb = ui.ui_factory.nested_progress_bar()
52
56
pp = ProgressPhase("Merge phase", 6, pb)