23
23
from copy import deepcopy
28
revision as _mod_revision,
25
from bzrlib import errors, mutabletree
30
26
from bzrlib.decorators import needs_read_lock, needs_write_lock
31
27
from bzrlib.osutils import sha_file
32
28
from bzrlib.mutabletree import needs_tree_write_lock
68
64
def create_on_branch(branch):
69
65
"""Create a MemoryTree for branch, using the last-revision of branch."""
70
revision_id = _mod_revision.ensure_null(branch.last_revision())
71
if _mod_revision.is_null(revision_id):
73
return MemoryTree(branch, revision_id)
66
return MemoryTree(branch, branch.last_revision())
75
68
def _gather_kinds(self, files, kinds):
76
69
"""See MutableTree._gather_kinds.
230
223
raise errors.NoSuchId(self, file_id)
232
def set_parent_ids(self, revision_ids, allow_leftmost_as_ghost=False):
233
"""See MutableTree.set_parent_trees()."""
234
for revision_id in revision_ids:
235
_mod_revision.check_not_reserved_id(revision_id)
236
if len(revision_ids) == 0:
237
self._parent_ids = []
238
self._basis_tree = self.branch.repository.revision_tree(None)
240
self._parent_ids = revision_ids
241
self._basis_tree = self.branch.repository.revision_tree(
243
self._branch_revision_id = revision_ids[0]
245
225
def set_parent_trees(self, parents_list, allow_leftmost_as_ghost=False):
246
226
"""See MutableTree.set_parent_trees()."""
247
227
if len(parents_list) == 0:
248
228
self._parent_ids = []
249
self._basis_tree = self.branch.repository.revision_tree(None)
229
self._basis_tree = self.branch.repository.revisiontree(None)
251
231
if parents_list[0][1] is None and not allow_leftmost_as_ghost:
252
232
# a ghost in the left most parent
253
233
raise errors.GhostRevisionUnusableHere(parents_list[0][0])
254
234
self._parent_ids = [parent_id for parent_id, tree in parents_list]
255
if parents_list[0][1] is None or parents_list[0][1] == 'null:':
256
import pdb; pdb.set_trace()
257
self._basis_tree = self.branch.repository.revision_tree(None)
235
if parents_list[0][1] is None:
236
self._basis_tree = self.branch.repository.revisiontree(None)
259
238
self._basis_tree = parents_list[0][1]
260
239
self._branch_revision_id = parents_list[0][0]