From 31f3a508dc3cec8dcc7ea05fbff1f1ed6b316f6d Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Thu, 22 Jan 2026 10:35:31 -0600 Subject: [PATCH] Revert "fix(core): snapshot regression" This reverts commit bb710e9ea151c94e68391a22c8199da8a8223342. --- packages/opencode/src/snapshot/index.ts | 32 ++++++++++++++----------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/packages/opencode/src/snapshot/index.ts b/packages/opencode/src/snapshot/index.ts index dcf6499fb..0f5e9c66e 100644 --- a/packages/opencode/src/snapshot/index.ts +++ b/packages/opencode/src/snapshot/index.ts @@ -197,18 +197,6 @@ export namespace Snapshot { export async function diffFull(from: string, to: string): Promise { const git = gitdir() const result: FileDiff[] = [] - - const show = async (hash: string, file: string) => { - const response = - await $`git -c core.autocrlf=false --git-dir ${git} --work-tree ${Instance.worktree} show ${hash}:${file}` - .quiet() - .nothrow() - if (response.exitCode === 0) return response.text() - const stderr = response.stderr.toString() - if (stderr.toLowerCase().includes("does not exist in")) return "" - return `[DEBUG ERROR] git show ${hash}:${file} failed: ${stderr}` - } - for await (const line of $`git -c core.autocrlf=false --git-dir ${git} --work-tree ${Instance.worktree} diff --no-ext-diff --no-renames --numstat ${from} ${to} -- .` .quiet() .cwd(Instance.directory) @@ -218,9 +206,25 @@ export namespace Snapshot { const [additions, deletions, rawFile] = line.split("\t") const file = unquote(rawFile) const isBinaryFile = additions === "-" && deletions === "-" + const beforeResult = isBinaryFile + ? { exitCode: 0, text: () => "", stderr: Buffer.from("") } + : await $`git -c core.autocrlf=false --git-dir ${git} --work-tree ${Instance.worktree} show ${from}:${file}` + .quiet() + .nothrow() + const before = + beforeResult.exitCode === 0 + ? beforeResult.text() + : `[DEBUG ERROR] git show ${from}:${file} failed: ${beforeResult.stderr.toString()}` - const before = isBinaryFile ? "" : await show(from, file) - const after = isBinaryFile ? "" : await show(to, file) + const afterResult = isBinaryFile + ? { exitCode: 0, text: () => "", stderr: Buffer.from("") } + : await $`git -c core.autocrlf=false --git-dir ${git} --work-tree ${Instance.worktree} show ${to}:${file}` + .quiet() + .nothrow() + const after = + afterResult.exitCode === 0 + ? afterResult.text() + : `[DEBUG ERROR] git show ${to}:${file} failed: ${afterResult.stderr.toString()}` const added = isBinaryFile ? 0 : parseInt(additions) const deleted = isBinaryFile ? 0 : parseInt(deletions) result.push({