Browse Source

wip: watch select .git files in watcher

Adam 5 months ago
parent
commit
945de4eddc

+ 0 - 2
packages/opencode/src/cli/cmd/tui.ts

@@ -9,7 +9,6 @@ import { Installation } from "../../installation"
 import { Config } from "../../config/config"
 import { Bus } from "../../bus"
 import { Log } from "../../util/log"
-import { FileWatcher } from "../../file/watcher"
 import { Ide } from "../../ide"
 
 import { Flag } from "../../flag/flag"
@@ -178,7 +177,6 @@ export const TuiCommand = cmd({
             .then(() => Bus.publish(Ide.Event.Installed, { ide }))
             .catch(() => {})
         })()
-        FileWatcher.init()
 
         await proc.exited
         server.stop()

+ 4 - 3
packages/opencode/src/file/ignore.ts

@@ -6,9 +6,6 @@ export namespace FileIgnore {
     "**/.pnpm-store/**",
     "**/vendor/**",
 
-    // vcs
-    "**/.git/**",
-
     // Build outputs
     "**/dist/**",
     "**/build/**",
@@ -50,8 +47,12 @@ export namespace FileIgnore {
     filepath: string,
     opts: {
       extra?: Bun.Glob[]
+      whitelist?: Bun.Glob[]
     },
   ) {
+    for (const glob of opts.whitelist || []) {
+      if (glob.match(filepath)) return false
+    }
     const extra = opts.extra || []
     for (const glob of [...GLOBS, ...extra]) {
       if (glob.match(filepath)) return true

+ 1 - 0
packages/opencode/src/file/watcher.ts

@@ -30,6 +30,7 @@ export namespace FileWatcher {
         ignoreInitial: true,
         ignored: (filepath) => {
           return FileIgnore.match(filepath, {
+            whitelist: [new Bun.Glob("**/.git/{index,logs/HEAD}")],
             extra: ignore,
           })
         },