diff --git a/.changeset/warm-bananas-behave.md b/.changeset/warm-bananas-behave.md new file mode 100644 index 0000000000..b1b6b4c8ec --- /dev/null +++ b/.changeset/warm-bananas-behave.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +The `--since` flag of repo commands now silently falls back to using the provided `ref` directly if no merge base is available. diff --git a/packages/cli/src/lib/git.ts b/packages/cli/src/lib/git.ts index f8783804d1..074260b38f 100644 --- a/packages/cli/src/lib/git.ts +++ b/packages/cli/src/lib/git.ts @@ -50,9 +50,16 @@ export async function listChangedFiles(ref: string) { if (!ref) { throw new Error('ref is required'); } - const [base] = await runGit('merge-base', 'HEAD', ref); - const tracked = await runGit('diff', '--name-only', base); + let diffRef = ref; + try { + const [base] = await runGit('merge-base', 'HEAD', ref); + diffRef = base; + } catch { + // silently fall back to using the ref directly if merge base is not available + } + + const tracked = await runGit('diff', '--name-only', diffRef); const untracked = await runGit('ls-files', '--others', '--exclude-standard'); return Array.from(new Set([...tracked, ...untracked]));