MCPcopy Create free account
hub / github.com/cloudflare/computer / runMerge

Function runMerge

packages/computer/src/git/cli.ts:1564–1618  ·  view source on GitHub ↗
(
  client: GitClient,
  args: string[],
  input: GitCliInput,
)

Source from the content-addressed store, hash-verified

1562// ---------------------------------------------------------------
1563
1564async function runMerge(
1565 client: GitClient,
1566 args: string[],
1567 input: GitCliInput,
1568): Promise<GitCliResult> {
1569 const parsed = parseFlags(args, {
1570 "ff-only": { kind: "bool" },
1571 "no-ff": { kind: "bool" },
1572 message: { kind: "value", alias: ["m"] },
1573 });
1574 if ("error" in parsed) {
1575 return { stdout: "", stderr: `git merge: ${parsed.error}\n`, exitCode: 129 };
1576 }
1577 if (parsed.positional.length === 0) {
1578 return { stdout: "", stderr: "git merge: missing <ref>\n", exitCode: 129 };
1579 }
1580 if (parsed.positional.length > 1) {
1581 return {
1582 stdout: "",
1583 stderr: `git merge: unexpected argument '${parsed.positional[1]}'\n`,
1584 exitCode: 129,
1585 };
1586 }
1587 const dir = resolveDir(undefined, input.cwd);
1588 try {
1589 const result = await client.merge({
1590 dir,
1591 theirs: parsed.positional[0],
1592 fastForwardOnly: parsed.flags["ff-only"] === true,
1593 fastForward: parsed.flags["no-ff"] === true ? false : undefined,
1594 message: parsed.flags.message as string | undefined,
1595 env: input.env,
1596 });
1597 if (result.alreadyMerged) {
1598 return { stdout: "Already up to date.\n", stderr: "", exitCode: 0 };
1599 }
1600 if (result.fastForward && result.oid) {
1601 return {
1602 stdout: `Fast-forward to ${result.oid.slice(0, 7)}\n`,
1603 stderr: "",
1604 exitCode: 0,
1605 };
1606 }
1607 if (result.oid) {
1608 return {
1609 stdout: `Merge commit ${result.oid.slice(0, 7)}\n`,
1610 stderr: "",
1611 exitCode: 0,
1612 };
1613 }
1614 return { stdout: "", stderr: "", exitCode: 0 };
1615 } catch (cause) {
1616 return mapGitError("merge", cause);
1617 }
1618}
1619
1620// ---------------------------------------------------------------
1621// remote

Callers 1

runGitCliFunction · 0.85

Calls 4

resolveDirFunction · 0.85
mapGitErrorFunction · 0.85
parseFlagsFunction · 0.70
mergeMethod · 0.65

Tested by

no test coverage detected