conflictLine
uses tcmts.cli.style.red, which uses node:util
A conflict as tcm todo and a merge list it: each definition, labelled with its side, and how to settle it.
import type { Conflict } from "#codebase/tcmts/cli/merge"; import { bold, dim, red } from "#codebase/tcmts/cli/style"; import { shortHash } from "#codebase/tcmts/core/hash"; export function conflictLine(c: Conflict): string { const hint = c.sides.some((s) => s.side) ? `tcm edit ${c.path} merges them (conflict markers where they overlap); tcm resolve ${c.path} --ours or --theirs keeps one` : `tcm edit ${c.path} merges them; tcm resolve ${c.path} ${shortHash(c.sides[0]!.hash)} keeps that one`; return `${red("conflict")} ${bold(c.key)}: ${c.sides.map((s) => `${shortHash(s.hash)}${s.side ? ` (${s.side}: ${s.label})` : ""}`).join(" vs ")} ${dim(hint)}`; }
uses
- tcmts.cli.merge.Conflict
- tcmts.cli.style.bold
- tcmts.cli.style.dim
- tcmts.cli.style.red
- tcmts.core.hash.shortHash