Fetch all history for all tags and branches when fetch-depth=0 (#258)

This commit is contained in:
eric sciple 2020-05-27 09:54:28 -04:00 committed by GitHub
parent 2ff2fbdea4
commit e52d022eb5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 338 additions and 86 deletions

View file

@ -42,7 +42,8 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
git,
settings.repositoryPath,
repositoryUrl,
settings.clean
settings.clean,
settings.ref
)
}
@ -109,8 +110,24 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
// Fetch
core.startGroup('Fetching the repository')
const refSpec = refHelper.getRefSpec(settings.ref, settings.commit)
await git.fetch(settings.fetchDepth, refSpec)
if (settings.fetchDepth <= 0) {
// Fetch all branches and tags
let refSpec = refHelper.getRefSpecForAllHistory(
settings.ref,
settings.commit
)
await git.fetch(refSpec)
// When all history is fetched, the ref we're interested in may have moved to a different
// commit (push or force push). If so, fetch again with a targeted refspec.
if (!(await refHelper.testRef(git, settings.ref, settings.commit))) {
refSpec = refHelper.getRefSpec(settings.ref, settings.commit)
await git.fetch(refSpec)
}
} else {
const refSpec = refHelper.getRefSpec(settings.ref, settings.commit)
await git.fetch(refSpec, settings.fetchDepth)
}
core.endGroup()
// Checkout info