Function: createVersionFromCommit()

createVersionFromCommit(args: { commit: Pick<LixCommit, "id">; id?: LixGenerated<string>; inheritsFrom?: null | { commit_id: string; hidden?: LixGenerated<undefined | boolean>; id: LixGenerated<string>; inherits_from_version_id?: null | string; name: LixGenerated<string>; working_commit_id: LixGenerated<string>; } | Pick<{ commit_id: string; hidden?: LixGenerated<undefined | boolean>; id: LixGenerated<string>; inherits_from_version_id?: null | string; name: LixGenerated<string>; working_commit_id: LixGenerated<string>; }, "id">; lix: Lix; name?: LixGenerated<string>; }): Promise<{ commit_id: string; hidden?: LixGenerated<undefined | boolean>; id: LixGenerated<string>; inherits_from_version_id?: null | string; name: LixGenerated<string>; working_commit_id: LixGenerated<string>; }>

Creates a new version that starts at a specific commit.

  • Points the new version's commit_id to the provided commit.
  • Generates a fresh working_commit_id that references an empty change set (global scope).
  • Does not modify the active version or any other versions.
  • Inheritance lineage is controlled via inheritsFrom and defaults to "global".

Examples

// Branch from a commit
const v = await createVersionFromCommit({ lix, commit });
// Custom id and name
const v = await createVersionFromCommit({ lix, commit, id: "my-id", name: "My Branch" });
// Inherit from a specific version
const parent = await createVersion({ lix, name: "base" });
const v = await createVersionFromCommit({ lix, commit, inheritsFrom: parent });
// Opt-out of inheritance
const v = await createVersionFromCommit({ lix, commit, inheritsFrom: null });

Parameters

ParameterTypeDescription
args{ commit: Pick<LixCommit, "id">; id?: LixGenerated<string>; inheritsFrom?: null | { commit_id: string; hidden?: LixGenerated<undefined | boolean>; id: LixGenerated<string>; inherits_from_version_id?: null | string; name: LixGenerated<string>; working_commit_id: LixGenerated<string>; } | Pick<{ commit_id: string; hidden?: LixGenerated<undefined | boolean>; id: LixGenerated<string>; inherits_from_version_id?: null | string; name: LixGenerated<string>; working_commit_id: LixGenerated<string>; }, "id">; lix: Lix; name?: LixGenerated<string>; }-
args.commitPick<LixCommit, "id">The commit to branch from (only id is required).
args.id?LixGenerated<string>Optional explicit version id.
args.inheritsFrom?null | { commit_id: string; hidden?: LixGenerated<undefined | boolean>; id: LixGenerated<string>; inherits_from_version_id?: null | string; name: LixGenerated<string>; working_commit_id: LixGenerated<string>; } | Pick<{ commit_id: string; hidden?: LixGenerated<undefined | boolean>; id: LixGenerated<string>; inherits_from_version_id?: null | string; name: LixGenerated<string>; working_commit_id: LixGenerated<string>; }, "id">Optional lineage: a parent version to inherit from, or null to disable; defaults to "global".
args.lixLixThe Lix instance.
args.name?LixGenerated<string>Optional version name.

Returns

Promise<{ commit_id: string; hidden?: LixGenerated<undefined | boolean>; id: LixGenerated<string>; inherits_from_version_id?: null | string; name: LixGenerated<string>; working_commit_id: LixGenerated<string>; }>

Throws

If the provided commit id does not exist.