diff --git a/dist/index.js b/dist/index.js index a16648d..71893ad 100644 --- a/dist/index.js +++ b/dist/index.js @@ -3872,10 +3872,17 @@ async function getChangesSinceMergeBase(baseRef, ref, initialFetchDepth) { let noMergeBase = false; core.startGroup(`Searching for merge-base ${baseRef}...${ref}`); try { + let init = true; let lastCommitCount = await getCommitCount(); let depth = Math.max(lastCommitCount * 2, initialFetchDepth); while (!(await hasMergeBase())) { - await exec_1.default('git', ['fetch', `--depth=${depth}`, 'origin', `${baseRef}:${baseRef}`, `${ref}`]); + if (init) { + await exec_1.default('git', ['fetch', `--depth=${depth}`, 'origin', `${baseRef}:${baseRef}`, `${ref}`]); + init = false; + } + else { + await exec_1.default('git', ['fetch', `--deepen=${depth}`, 'origin', baseRef, ref]); + } const commitCount = await getCommitCount(); if (commitCount === lastCommitCount) { core.info('No more commits were fetched'); diff --git a/src/git.ts b/src/git.ts index c58621f..a55faa6 100644 --- a/src/git.ts +++ b/src/git.ts @@ -66,10 +66,16 @@ export async function getChangesSinceMergeBase( let noMergeBase = false core.startGroup(`Searching for merge-base ${baseRef}...${ref}`) try { + let init = true let lastCommitCount = await getCommitCount() let depth = Math.max(lastCommitCount * 2, initialFetchDepth) while (!(await hasMergeBase())) { - await exec('git', ['fetch', `--depth=${depth}`, 'origin', `${baseRef}:${baseRef}`, `${ref}`]) + if (init) { + await exec('git', ['fetch', `--depth=${depth}`, 'origin', `${baseRef}:${baseRef}`, `${ref}`]) + init = false + } else { + await exec('git', ['fetch', `--deepen=${depth}`, 'origin', baseRef, ref]) + } const commitCount = await getCommitCount() if (commitCount === lastCommitCount) { core.info('No more commits were fetched')