From 4b61d446154686529f79b567db0e32575d24c9e6 Mon Sep 17 00:00:00 2001 From: Craigory V Coppola Date: Tue, 13 Apr 2021 14:39:41 -0500 Subject: [PATCH] fix(core): Wrap head + base arguments in quotes in execSyn (#5240) On windows caret symbols are removed from command line args unless wrapped in double quotes, causing an error in this case. Closes #4828. --- packages/workspace/src/command-line/shared.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/workspace/src/command-line/shared.ts b/packages/workspace/src/command-line/shared.ts index eb1bf021f0..64a5be9625 100644 --- a/packages/workspace/src/command-line/shared.ts +++ b/packages/workspace/src/command-line/shared.ts @@ -45,19 +45,21 @@ function getUntrackedFiles(): string[] { function getFilesUsingBaseAndHead(base: string, head: string): string[] { let mergeBase; try { - mergeBase = execSync(`git merge-base ${base} ${head}`, { + mergeBase = execSync(`git merge-base "${base}" "${head}"`, { maxBuffer: TEN_MEGABYTES, }) .toString() .trim(); } catch { - mergeBase = execSync(`git merge-base --fork-point ${base} ${head}`, { + mergeBase = execSync(`git merge-base --fork-point "${base}" "${head}"`, { maxBuffer: TEN_MEGABYTES, }) .toString() .trim(); } - return parseGitOutput(`git diff --name-only --relative ${mergeBase} ${head}`); + return parseGitOutput( + `git diff --name-only --relative "${mergeBase}" "${head}"` + ); } function parseGitOutput(command: string): string[] {