conflictLine

tcmts.cli.merge.conflictLine · #vcsolnwr · term · runs on the server

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

used by