332
332
def _set_revision(self, rev, ie, parent_invs):
333
333
"""Set name version for a file.
335
Done in a slightly lazy way: if the file is renamed or in a merge revision
336
it gets a new version, otherwise the same as before.
338
335
file_id = ie.file_id
339
336
if ie.kind == 'root_directory':
341
if len(parent_invs) != 1:
338
if len(parent_invs) == 0:
342
339
ie.revision = rev.revision_id
344
old_inv = parent_invs[0]
345
if not old_inv.has_id(file_id):
346
ie.revision = rev.revision_id
342
for p_inv in parent_invs:
343
if not p_inv.has_id(file_id):
344
ie.revision = rev.revision_id
346
old_ie = p_inv[file_id]
347
if (old_ie.parent_id != ie.parent_id
348
or old_ie.name != ie.name
349
or old_ie.text_sha1 != ie.text_sha1
350
or old_ie.text_size != ie.text_size):
351
ie.revision = rev.revision_id
353
if matched_id is None:
354
matched_id = old_ie.revision
355
elif matched_id != old_ie.revision:
356
ie.revision = rev.revision_id
348
old_ie = old_inv[file_id]
349
if (old_ie.parent_id != ie.parent_id
350
or old_ie.name != ie.name):
351
ie.revision = rev.revision_id
353
ie.revision = old_ie.revision
359
assert matched_id is not None
360
ie.revision = matched_id
357
362
def _convert_file_version(self, rev, ie, parent_invs):
358
363
"""Convert one version of one file.