Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions dist/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -645,7 +645,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
});
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.MinimumGitSparseCheckoutVersion = exports.MinimumGitVersion = void 0;
exports.MinimumGitSparseIndexVersion = exports.MinimumGitSparseCheckoutVersion = exports.MinimumGitVersion = void 0;
exports.createCommandManager = createCommandManager;
const core = __importStar(__nccwpck_require__(2186));
const exec = __importStar(__nccwpck_require__(1514));
Expand All @@ -661,6 +661,7 @@ const git_version_1 = __nccwpck_require__(3142);
// sparse-checkout not [well-]supported before 2.28 (see https://github.com/actions/checkout/issues/1386)
exports.MinimumGitVersion = new git_version_1.GitVersion('2.18');
exports.MinimumGitSparseCheckoutVersion = new git_version_1.GitVersion('2.28');
exports.MinimumGitSparseIndexVersion = new git_version_1.GitVersion('2.32');
function createCommandManager(workingDirectory, lfs, doSparseCheckout) {
return __awaiter(this, void 0, void 0, function* () {
return yield GitCommandManager.createCommandManager(workingDirectory, lfs, doSparseCheckout);
Expand Down Expand Up @@ -1573,9 +1574,9 @@ function getSource(settings) {
yield git.lfsFetch(checkoutInfo.startPoint || checkoutInfo.ref);
core.endGroup();
}
let gitVersion = yield git.version();
// Sparse checkout
if (!settings.sparseCheckout) {
let gitVersion = yield git.version();
// no need to disable sparse-checkout if the installed git runtime doesn't even support it.
if (gitVersion.checkMinimum(git_command_manager_1.MinimumGitSparseCheckoutVersion)) {
yield git.disableSparseCheckout();
Expand All @@ -1589,6 +1590,9 @@ function getSource(settings) {
else {
yield git.sparseCheckoutNonConeMode(settings.sparseCheckout);
}
if (gitVersion.checkMinimum(git_command_manager_1.MinimumGitSparseIndexVersion)) {
yield git.config('index.sparse', 'true', false);
}
core.endGroup();
}
// Checkout
Expand Down
1 change: 1 addition & 0 deletions src/git-command-manager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import {GitVersion} from './git-version'
// sparse-checkout not [well-]supported before 2.28 (see https://github.com/actions/checkout/issues/1386)
export const MinimumGitVersion = new GitVersion('2.18')
export const MinimumGitSparseCheckoutVersion = new GitVersion('2.28')
export const MinimumGitSparseIndexVersion = new GitVersion('2.32')

export interface IGitCommandManager {
branchDelete(remote: boolean, branch: string): Promise<void>
Expand Down
7 changes: 6 additions & 1 deletion src/git-source-provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import * as stateHelper from './state-helper'
import * as urlHelper from './url-helper'
import {
MinimumGitSparseCheckoutVersion,
MinimumGitSparseIndexVersion,
IGitCommandManager
} from './git-command-manager'
import {IGitSourceSettings} from './git-source-settings'
Expand Down Expand Up @@ -232,9 +233,9 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
core.endGroup()
}

let gitVersion = await git.version()
// Sparse checkout
if (!settings.sparseCheckout) {
let gitVersion = await git.version()
// no need to disable sparse-checkout if the installed git runtime doesn't even support it.
if (gitVersion.checkMinimum(MinimumGitSparseCheckoutVersion)) {
await git.disableSparseCheckout()
Expand All @@ -246,6 +247,10 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
} else {
await git.sparseCheckoutNonConeMode(settings.sparseCheckout)
}

if (gitVersion.checkMinimum(MinimumGitSparseIndexVersion)) {
await git.config('index.sparse', 'true', false)
}
core.endGroup()
}

Expand Down