mirror of
https://code.forgejo.org/actions/checkout.git
synced 2024-11-24 04:29:16 +01:00
Disable extensions.worktreeConfig
when disabling sparse-checkout
(#1692)
This commit is contained in:
parent
37b082107b
commit
43045ae669
4 changed files with 21 additions and 3 deletions
2
.github/workflows/test.yml
vendored
2
.github/workflows/test.yml
vendored
|
@ -37,7 +37,7 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
# Clone this repo
|
# Clone this repo
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4.1.1
|
||||||
|
|
||||||
# Basic checkout
|
# Basic checkout
|
||||||
- name: Checkout basic
|
- name: Checkout basic
|
||||||
|
|
|
@ -18,6 +18,20 @@ else
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Verify that sparse-checkout is disabled.
|
||||||
|
SPARSE_CHECKOUT_ENABLED=$(git -C ./basic config --local --get-all core.sparseCheckout)
|
||||||
|
if [ "$SPARSE_CHECKOUT_ENABLED" != "" ]; then
|
||||||
|
echo "Expected sparse-checkout to be disabled (discovered: $SPARSE_CHECKOUT_ENABLED)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Verify git configuration shows worktreeConfig is effectively disabled
|
||||||
|
WORKTREE_CONFIG_ENABLED=$(git -C ./basic config --local --get-all extensions.worktreeConfig)
|
||||||
|
if [[ "$WORKTREE_CONFIG_ENABLED" != "" ]]; then
|
||||||
|
echo "Expected extensions.worktreeConfig (boolean) to be disabled in git config. This could be an artifact of sparse checkout functionality."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Verify auth token
|
# Verify auth token
|
||||||
cd basic
|
cd basic
|
||||||
git fetch --no-tags --depth=1 origin +refs/heads/main:refs/remotes/origin/main
|
git fetch --no-tags --depth=1 origin +refs/heads/main:refs/remotes/origin/main
|
||||||
|
|
2
dist/index.js
vendored
2
dist/index.js
vendored
|
@ -582,6 +582,8 @@ class GitCommandManager {
|
||||||
disableSparseCheckout() {
|
disableSparseCheckout() {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
yield this.execGit(['sparse-checkout', 'disable']);
|
yield this.execGit(['sparse-checkout', 'disable']);
|
||||||
|
// Disabling 'sparse-checkout` leaves behind an undesirable side-effect in config (even in a pristine environment).
|
||||||
|
yield this.tryConfigUnset('extensions.worktreeConfig', false);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
sparseCheckout(sparseCheckout) {
|
sparseCheckout(sparseCheckout) {
|
||||||
|
|
|
@ -178,6 +178,8 @@ class GitCommandManager {
|
||||||
|
|
||||||
async disableSparseCheckout(): Promise<void> {
|
async disableSparseCheckout(): Promise<void> {
|
||||||
await this.execGit(['sparse-checkout', 'disable'])
|
await this.execGit(['sparse-checkout', 'disable'])
|
||||||
|
// Disabling 'sparse-checkout` leaves behind an undesirable side-effect in config (even in a pristine environment).
|
||||||
|
await this.tryConfigUnset('extensions.worktreeConfig', false)
|
||||||
}
|
}
|
||||||
|
|
||||||
async sparseCheckout(sparseCheckout: string[]): Promise<void> {
|
async sparseCheckout(sparseCheckout: string[]): Promise<void> {
|
||||||
|
|
Loading…
Reference in a new issue