Skip to main content

commit_metadata

Function commit_metadata 

Source
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>>>,
) -> TribleSet
Expand 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.