From 92b9ac51a1e5310f81f90796291e2a6fe6c18d61 Mon Sep 17 00:00:00 2001
From: John Wesley Walker III <81404201+jww3@users.noreply.github.com>
Date: Tue, 23 Apr 2024 16:46:32 +0000
Subject: [PATCH] Implement the fix

---
 dist/index.js              | 2 ++
 src/git-command-manager.ts | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/dist/index.js b/dist/index.js
index b210247..5ff87e4 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -582,6 +582,8 @@ class GitCommandManager {
     disableSparseCheckout() {
         return __awaiter(this, void 0, void 0, function* () {
             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) {
diff --git a/src/git-command-manager.ts b/src/git-command-manager.ts
index fa50321..8e42a38 100644
--- a/src/git-command-manager.ts
+++ b/src/git-command-manager.ts
@@ -178,6 +178,8 @@ class GitCommandManager {
 
   async disableSparseCheckout(): Promise<void> {
     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> {