@@ -16,8 +16,12 @@ vi.mock("child_process", async () => {
|
|||||||
const [command, commandArgs] = args;
|
const [command, commandArgs] = args;
|
||||||
if (command === "git" && Array.isArray(commandArgs)) {
|
if (command === "git" && Array.isArray(commandArgs)) {
|
||||||
const normalizedArgs = commandArgs.map((arg) => String(arg));
|
const normalizedArgs = commandArgs.map((arg) => String(arg));
|
||||||
|
// `runGitCommand` always prepends `-c core.quotepath=false`; skip it to
|
||||||
|
// find the actual git subcommand.
|
||||||
|
const subcommandIndex =
|
||||||
|
normalizedArgs[0] === "-c" && normalizedArgs[1] === "core.quotepath=false" ? 2 : 0;
|
||||||
const isTrackedTextDiff =
|
const isTrackedTextDiff =
|
||||||
normalizedArgs[0] === "diff" &&
|
normalizedArgs[subcommandIndex] === "diff" &&
|
||||||
normalizedArgs.includes("HEAD") &&
|
normalizedArgs.includes("HEAD") &&
|
||||||
!normalizedArgs.includes("--numstat") &&
|
!normalizedArgs.includes("--numstat") &&
|
||||||
!normalizedArgs.includes("--no-index") &&
|
!normalizedArgs.includes("--no-index") &&
|
||||||
|
|||||||
@@ -77,7 +77,9 @@ export function runGitCommand(
|
|||||||
logger.trace(traceContext, "Spawning git command");
|
logger.trace(traceContext, "Spawning git command");
|
||||||
}
|
}
|
||||||
|
|
||||||
const child = spawnProcess("git", args, {
|
// `core.quotepath=false` makes git emit raw UTF-8 paths instead of
|
||||||
|
// octal-escaping non-ASCII bytes (e.g. `测试文件.txt` vs `"\346\265\213..."`).
|
||||||
|
const child = spawnProcess("git", ["-c", "core.quotepath=false", ...args], {
|
||||||
cwd: options.cwd,
|
cwd: options.cwd,
|
||||||
envOverlay,
|
envOverlay,
|
||||||
shell: false,
|
shell: false,
|
||||||
|
|||||||
Reference in New Issue
Block a user