/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

Cope with empty inventories.

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
from dulwich.objects import (
26
26
    Blob,
27
27
    )
 
28
from dulwich.protocol import (
 
29
    ZERO_SHA,
 
30
    )
28
31
import os
29
32
import stat
30
33
 
31
34
from bzrlib import (
32
35
    errors,
33
36
    ignores,
 
37
    inventory,
34
38
    lockable_files,
35
39
    lockdir,
36
40
    osutils,
177
181
            raise errors.NotBranchError("branch %s at %s" % (name, self.repository.base))
178
182
        basis_inv = self.repository.get_inventory(self.branch.lookup_foreign_revision_id(head))
179
183
        store = self.repository._git.object_store
180
 
        fileid_map = self.mapping.get_fileid_map(store.__getitem__,
181
 
            store[head].tree)
182
 
        result = GitIndexInventory(basis_inv, fileid_map, self.index, store)
 
184
        if head == ZERO_SHA:
 
185
            fileid_map = {}
 
186
            result = inventory.Inventory(root_id=None)
 
187
        else:
 
188
            fileid_map = self.mapping.get_fileid_map(store.__getitem__,
 
189
                store[head].tree)
 
190
            result = GitIndexInventory(basis_inv, fileid_map, self.index, store)
183
191
        self._set_inventory(result, dirty=False)
184
192
 
185
193
    @needs_read_lock