pub fn commit_metadata(
signing_key: &SigningKey,
parents: impl IntoIterator<Item = Inline<Handle<SimpleArchive>>>,
msg: Option<Inline<Handle<LongString>>>,
content: Option<Blob<SimpleArchive>>,
metadata: Option<Inline<Handle<SimpleArchive>>>,
) -> TribleSetExpand description
Constructs commit metadata describing content, optional metadata, and its parent commits.
The resulting TribleSet is signed using signing_key when content is
present, so that its authenticity can later be verified. If msg is
provided it is stored as a long commit message via a LongString blob
handle. If metadata is provided it is stored as a SimpleArchive handle.
The commit’s entity id is derived intrinsically from the
(attribute, value) pairs present in the metadata — so two commits with
identical content, parents, and signatures collide on entity id and blob
hash alike. This matters especially for merge commits
(content = None): merges carry no author-specific bits (no signature,
no timestamp, no random entity id), so two peers merging the same parent
set produce bit-identical merge commits, and parallel-merge scenarios
converge in zero extra rounds.