- shalist.append((0100644, '.bupm', w.new_blob(metadata)))
- tree = force_tree or w.new_tree(shalist)
+ metadata_f = StringIO(metadata)
+ mode, id = hashsplit.split_to_blob_or_tree(w.new_blob, w.new_tree,
+ [metadata_f],
+ keep_boundaries=False)
+ shalist.append((mode, '.bupm', id))
+ # FIXME: only test if collision is possible (i.e. given --strip, etc.)?
+ if force_tree:
+ tree = force_tree
+ else:
+ names_seen = set()
+ clean_list = []
+ for x in shalist:
+ name = x[1]
+ if name in names_seen:
+ parent_path = '/'.join(parts) + '/'
+ add_error('error: ignoring duplicate path %r in %r'
+ % (name, parent_path))
+ else:
+ names_seen.add(name)
+ clean_list.append(x)
+ tree = w.new_tree(clean_list)