From ffbbc951809f8c4660afad1d367f70f9cc1ea0a0 Mon Sep 17 00:00:00 2001 From: Avishay Zarad Date: Sun, 26 Apr 2026 16:14:32 +0300 Subject: [PATCH] fix(git): pass --no-ext-diff to patch-emitting git diff calls Patches consumed by parsePatchFiles (@pierre/diffs) honored the user's diff.external config, so users with a structural differ set globally (difftastic, delta-as-ext-diff, etc.) saw 'Unsupported diff format. Showing raw patch.' in the diff panel. Add --no-ext-diff to the three call sites whose stdout flows into parsePatchFiles: - CheckpointStore.diffCheckpoints - GitCore.prepareCommitContext.stagedPatch - GitCore.readRangeContext.diffPatch --- .../server/src/checkpointing/Layers/CheckpointStore.ts | 10 +++++++++- apps/server/src/git/Layers/GitCore.ts | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/apps/server/src/checkpointing/Layers/CheckpointStore.ts b/apps/server/src/checkpointing/Layers/CheckpointStore.ts index 211877e9b1a..df14c8f0294 100644 --- a/apps/server/src/checkpointing/Layers/CheckpointStore.ts +++ b/apps/server/src/checkpointing/Layers/CheckpointStore.ts @@ -246,7 +246,15 @@ const makeCheckpointStore = Effect.gen(function* () { const result = yield* git.execute({ operation, cwd: input.cwd, - args: ["diff", "--patch", "--minimal", "--no-color", fromCommitOid, toCommitOid], + args: [ + "diff", + "--no-ext-diff", + "--patch", + "--minimal", + "--no-color", + fromCommitOid, + toCommitOid, + ], maxOutputBytes: CHECKPOINT_DIFF_MAX_OUTPUT_BYTES, }); diff --git a/apps/server/src/git/Layers/GitCore.ts b/apps/server/src/git/Layers/GitCore.ts index 3e9df316f1e..dc6ade4f6fe 100644 --- a/apps/server/src/git/Layers/GitCore.ts +++ b/apps/server/src/git/Layers/GitCore.ts @@ -1392,7 +1392,7 @@ export const makeGitCore = Effect.fn("makeGitCore")(function* (options?: { const stagedPatch = yield* runGitStdoutWithOptions( "GitCore.prepareCommitContext.stagedPatch", cwd, - ["diff", "--cached", "--patch", "--minimal"], + ["diff", "--no-ext-diff", "--cached", "--patch", "--minimal"], { maxOutputBytes: PREPARED_COMMIT_PATCH_MAX_OUTPUT_BYTES, truncateOutputAtMaxBytes: true, @@ -1610,7 +1610,7 @@ export const makeGitCore = Effect.fn("makeGitCore")(function* (options?: { runGitStdoutWithOptions( "GitCore.readRangeContext.diffPatch", cwd, - ["diff", "--patch", "--minimal", range], + ["diff", "--no-ext-diff", "--patch", "--minimal", range], { maxOutputBytes: RANGE_DIFF_PATCH_MAX_OUTPUT_BYTES, truncateOutputAtMaxBytes: true,