Browse Source

fix: replace isomorphic-git status with direct git diff for worktree support (#1706)

Co-authored-by: Adam <[email protected]>
Netanel Draiman 5 months ago
parent
commit
7fab12da28
1 changed files with 2 additions and 7 deletions
  1. 2 7
      packages/opencode/src/file/index.ts

+ 2 - 7
packages/opencode/src/file/index.ts

@@ -3,7 +3,6 @@ import { Bus } from "../bus"
 import { $ } from "bun"
 import { createPatch } from "diff"
 import path from "path"
-import * as git from "isomorphic-git"
 import { App } from "../app/app"
 import fs from "fs"
 import ignore from "ignore"
@@ -118,12 +117,8 @@ export namespace File {
       .then((x) => x.trim())
     if (app.git) {
       const rel = path.relative(app.path.root, full)
-      const diff = await git.status({
-        fs,
-        dir: app.path.root,
-        filepath: rel,
-      })
-      if (diff !== "unmodified") {
+      const diff = await $`git diff ${rel}`.cwd(app.path.root).quiet().nothrow().text()
+      if (diff.trim()) {
         const original = await $`git show HEAD:${rel}`.cwd(app.path.root).quiet().nothrow().text()
         const patch = createPatch(file, original, content, "old", "new", {
           context: Infinity,