/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

Implement to_files() for git merge directives.

Show diffs side-by-side

added added

removed removed

Lines of Context:
46
46
from bzrlib.plugins.git.inventory import (
47
47
    GitIndexInventory,
48
48
    )
49
 
from bzrlib.plugins.git.mapping import (
50
 
    GitFileIdMap,
51
 
    )
52
49
from bzrlib.plugins.git.tree import (
53
50
    changes_from_git_changes,
54
51
    tree_delta_from_git_changes,
61
58
class GitWorkingTree(workingtree.WorkingTree):
62
59
    """A Git working tree."""
63
60
 
64
 
    def __init__(self, bzrdir, repo, branch, index):
 
61
    def __init__(self, bzrdir, repo, branch):
65
62
        self.basedir = bzrdir.root_transport.local_abspath('.')
66
63
        self.bzrdir = bzrdir
67
64
        self.repository = repo
80
77
        self._control_files = lockable_files.LockableFiles(
81
78
            transport.get_transport(self.controldir), 'lock', lockdir.LockDir)
82
79
        self._format = GitWorkingTreeFormat()
83
 
        self.index = index
 
80
        self.index = self.repository._git.open_index()
84
81
        self.views = self._make_views()
85
82
        self._detect_case_handling()
86
83
 
174
171
 
175
172
    def _reset_data(self):
176
173
        self._inventory_is_modified = False
177
 
        try:
178
 
            head = self.repository._git.head()
179
 
        except KeyError, name:
180
 
            raise errors.NotBranchError("branch %s at %s" % (name, self.repository.base))
181
 
        basis_inv = self.repository.get_inventory(self.mapping.revision_id_foreign_to_bzr(head))
182
 
        store = self.repository._git.object_store
183
 
        commit = store[head]
184
 
        try:
185
 
            file_id_map_sha = store[commit.tree][self.mapping.BZR_FILE_IDS_FILE][1]
186
 
        except KeyError:
187
 
            file_ids = {}
188
 
        else:
189
 
            file_ids = self.mapping.import_fileid_map(store[file_id_map_sha])
190
 
        fileid_map = GitFileIdMap(file_ids, self.mapping)
191
 
        result = GitIndexInventory(basis_inv, fileid_map, self.index, store)
 
174
        basis_inv = self.repository.get_inventory(self.mapping.revision_id_foreign_to_bzr(self.repository._git.head()))
 
175
        result = GitIndexInventory(basis_inv, self.mapping, self.index,
 
176
            self.repository._git.object_store)
192
177
        self._set_inventory(result, dirty=False)
193
178
 
194
179
    @needs_read_lock