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

Add tests for revspec.

Show diffs side-by-side

added added

removed removed

Lines of Context:
36
36
    osutils,
37
37
    transport,
38
38
    tree,
39
 
    urlutils,
40
39
    workingtree,
41
40
    )
42
41
from bzrlib.decorators import (
59
58
class GitWorkingTree(workingtree.WorkingTree):
60
59
    """A Git working tree."""
61
60
 
62
 
    def __init__(self, bzrdir, repo, branch):
 
61
    def __init__(self, bzrdir, repo, branch, index):
63
62
        self.basedir = bzrdir.root_transport.local_abspath('.')
64
63
        self.bzrdir = bzrdir
65
64
        self.repository = repo
67
66
        self._branch = branch
68
67
        self._transport = bzrdir.transport
69
68
 
70
 
        self.controldir = urlutils.join(self.repository._git._controldir, 'bzr')
 
69
        self.controldir = self.bzrdir.transport.local_abspath('bzr')
71
70
 
72
71
        try:
73
72
            os.makedirs(self.controldir)
78
77
        self._control_files = lockable_files.LockableFiles(
79
78
            transport.get_transport(self.controldir), 'lock', lockdir.LockDir)
80
79
        self._format = GitWorkingTreeFormat()
81
 
        self.index = self.repository._git.open_index()
 
80
        self.index = index
82
81
        self.views = self._make_views()
83
82
        self._detect_case_handling()
84
83
 
172
171
 
173
172
    def _reset_data(self):
174
173
        self._inventory_is_modified = False
175
 
        basis_inv = self.repository.get_inventory(self.mapping.revision_id_foreign_to_bzr(self.repository._git.head()))
 
174
        try:
 
175
            head = self.repository._git.head()
 
176
        except KeyError, name:
 
177
            raise errors.NotBranchError("branch %s at %s" % (name, self.repository.base))
 
178
        basis_inv = self.repository.get_inventory(self.mapping.revision_id_foreign_to_bzr(head))
176
179
        result = GitIndexInventory(basis_inv, self.mapping, self.index,
177
180
            self.repository._git.object_store)
178
181
        self._set_inventory(result, dirty=False)