mirror of
https://github.com/actions/checkout.git
synced 2025-04-19 17:16:46 +00:00
Fetch all history for all tags and branches when fetch-depth=0 (#258)
This commit is contained in:
parent
2ff2fbdea4
commit
e52d022eb5
9 changed files with 338 additions and 86 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue