/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 processor.py

create branches as required

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
"""
22
22
 
23
23
 
 
24
from bzrlib.errors import NotBranchError
24
25
import errors
25
26
 
26
27
 
43
44
        self.bzrdir = bzrdir
44
45
        if bzrdir is None:
45
46
            # Some 'importers' don't need a repository to write to
 
47
            self.working_tree = None
46
48
            self.branch = None
47
49
            self.repo = None
48
 
            self.working_tree = None
49
50
        else:
50
 
            (self.working_tree, self.branch) = bzrdir._get_tree_branch()
51
 
            self.repo = self.branch.repository
 
51
            try:
 
52
                # Might be inside a branch
 
53
                (self.working_tree, self.branch) = bzrdir._get_tree_branch()
 
54
                self.repo = self.branch.repository
 
55
            except NotBranchError:
 
56
                # Must be inside a repository
 
57
                self.working_tree = None
 
58
                self.branch = None
 
59
                self.repo = bzrdir.open_repository()
52
60
 
53
61
        # Handlers can set this to request exiting cleanly without
54
62
        # iterating through the remaining commands
69
77
            self.working_tree.lock_write()
70
78
        elif self.branch is not None:
71
79
            self.branch.lock_write()
 
80
        elif self.repo is not None:
 
81
            self.repo.lock_write()
72
82
        try:
73
83
            self._process(command_iter)
74
84
        finally:
76
86
                self.working_tree.unlock()
77
87
            elif self.branch is not None:
78
88
                self.branch.unlock()
 
89
            elif self.repo is not None:
 
90
                self.repo.unlock()
79
91
 
80
92
    def _process(self, command_iter):
81
93
        self.pre_process()