~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/switch.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2010-04-08 06:17:41 UTC
  • mfrom: (4797.33.16 apport)
  • Revision ID: pqm@pqm.ubuntu.com-20100408061741-m7vl6z97vu33riv7
(robertc) Make sure ExecutablePath and InterpreterPath are set in
        Apport. (Martin Pool, James Westby, lp:528114)

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
# Original author: David Allouche
18
18
 
19
19
from bzrlib import errors, merge, revision
20
 
from bzrlib.branch import Branch
 
20
from bzrlib.branch import Branch, BranchFormat, BranchReferenceFormat
 
21
from bzrlib.bzrdir import BzrDir
21
22
from bzrlib.trace import note
22
23
 
23
24
 
24
 
def _run_post_switch_hooks(control_dir, to_branch, force, revision_id):
25
 
    from bzrlib.branch import SwitchHookParams
26
 
    hooks = Branch.hooks['post_switch']
27
 
    if not hooks:
28
 
        return
29
 
    params = SwitchHookParams(control_dir, to_branch, force, revision_id)
30
 
    for hook in hooks:
31
 
        hook(params)
32
 
 
33
25
def switch(control_dir, to_branch, force=False, quiet=False, revision_id=None):
34
26
    """Switch the branch associated with a checkout.
35
27
 
46
38
    _set_branch_location(control_dir, to_branch, force)
47
39
    tree = control_dir.open_workingtree()
48
40
    _update(tree, source_repository, quiet, revision_id)
49
 
    _run_post_switch_hooks(control_dir, to_branch, force, revision_id)
 
41
 
50
42
 
51
43
def _check_pending_merges(control, force=False):
52
44
    """Check that there are no outstanding pending merges before switching.
78
70
    branch_format = control.find_branch_format()
79
71
    if branch_format.get_reference(control) is not None:
80
72
        # Lightweight checkout: update the branch reference
81
 
        branch_format.set_reference(control, None, to_branch)
 
73
        branch_format.set_reference(control, to_branch)
82
74
    else:
83
75
        b = control.open_branch()
84
76
        bound_branch = b.get_bound_location()