336
337
assert r[ie.text_version] == ie
338
339
r[ie.text_version] = ie
343
def _set_entry_versions(self):
344
"""Pass over inventory and mark new entry version as needed.
346
Files get a new name version when they are new, have a
347
different parent, or a different name from in the
348
basis inventory, or if the file is in a different place
349
to any of the parents."""
350
# XXX: Need to think more here about when the user has
351
# made a specific decision on a particular value -- c.f.
353
for path, ie in self.new_inv.iter_entries():
356
for parent_tree in self.parent_trees:
357
parent_inv = parent_tree.inventory
358
if file_id not in parent_inv:
360
parent_ie = parent_inv[file_id]
361
if parent_ie.parent_id != ie.parent_id:
364
elif parent_ie.name != ie.name:
367
elif old_version is None:
368
old_version = parent_ie.entry_version
369
elif old_version != parent_ie.entry_version:
373
pass # so far so good
374
if old_version is None:
375
mutter('new entry_version for {%s}', file_id)
376
ie.entry_version = self.rev_id
378
mutter('entry_version for {%s} inherited as {%s}',
379
file_id, old_version)
380
ie.entry_version = old_version
342
383
def _store_entries(self):