~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/switch.py

(gz) Fix test failure on alpha by correcting format string for
 gc_chk_sha1_record (Martin [gz])

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
from bzrlib import errors, merge, revision
20
20
from bzrlib.branch import Branch
21
 
from bzrlib.i18n import gettext
22
21
from bzrlib.trace import note
23
22
 
 
23
 
24
24
def _run_post_switch_hooks(control_dir, to_branch, force, revision_id):
25
25
    from bzrlib.branch import SwitchHookParams
26
26
    hooks = Branch.hooks['post_switch']
64
64
    # XXX: Should the tree be locked for get_parent_ids?
65
65
    existing_pending_merges = tree.get_parent_ids()[1:]
66
66
    if len(existing_pending_merges) > 0:
67
 
        raise errors.BzrCommandError(gettext('Pending merges must be '
68
 
            'committed or reverted before using switch.'))
 
67
        raise errors.BzrCommandError('Pending merges must be '
 
68
            'committed or reverted before using switch.')
69
69
 
70
70
 
71
71
def _set_branch_location(control, to_branch, force=False):
90
90
            possible_transports = []
91
91
            try:
92
92
                if not force and _any_local_commits(b, possible_transports):
93
 
                    raise errors.BzrCommandError(gettext(
 
93
                    raise errors.BzrCommandError(
94
94
                        'Cannot switch as local commits found in the checkout. '
95
95
                        'Commit these to the bound branch or use --force to '
96
 
                        'throw them away.'))
 
96
                        'throw them away.')
97
97
            except errors.BoundBranchConnectionFailure, e:
98
 
                raise errors.BzrCommandError(gettext(
 
98
                raise errors.BzrCommandError(
99
99
                        'Unable to connect to current master branch %(target)s: '
100
 
                        '%(error)s To switch anyway, use --force.') %
 
100
                        '%(error)s To switch anyway, use --force.' %
101
101
                        e.__dict__)
102
102
            b.set_bound_location(None)
103
103
            b.pull(to_branch, overwrite=True,
104
104
                possible_transports=possible_transports)
105
105
            b.set_bound_location(to_branch.base)
106
 
            b.set_parent(b.get_master_branch().get_parent())
107
106
        else:
108
 
            raise errors.BzrCommandError(gettext('Cannot switch a branch, '
109
 
                'only a checkout.'))
 
107
            raise errors.BzrCommandError('Cannot switch a branch, '
 
108
                'only a checkout.')
110
109
 
111
110
 
112
111
def _any_local_commits(this_branch, possible_transports):
141
140
            revision_id = to_branch.last_revision()
142
141
        if tree.last_revision() == revision_id:
143
142
            if not quiet:
144
 
                note(gettext("Tree is up to date at revision %d."), to_branch.revno())
 
143
                note("Tree is up to date at revision %d.", to_branch.revno())
145
144
            return
146
145
        base_tree = source_repository.revision_tree(tree.last_revision())
147
146
        merge.Merge3Merger(tree, tree, base_tree, to_branch.repository.revision_tree(revision_id))
148
147
        tree.set_last_revision(to_branch.last_revision())
149
148
        if not quiet:
150
 
            note(gettext('Updated to revision %d.') % to_branch.revno())
 
149
            note('Updated to revision %d.' % to_branch.revno())
151
150
    finally:
152
151
        tree.unlock()