mirror of
				https://gitea.com/actions/checkout.git
				synced 2025-10-31 09:08:11 +07:00 
			
		
		
		
	Disable extensions.worktreeConfig when disabling sparse-checkout (#1692)
				
					
				
			This commit is contained in:
		
							parent
							
								
									37b082107b
								
							
						
					
					
						commit
						43045ae669
					
				
							
								
								
									
										6
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							| @ -8,7 +8,7 @@ on: | ||||
|       - releases/* | ||||
| 
 | ||||
| 
 | ||||
| # Note that when you see patterns like "ref: test-data/v2/basic" within this workflow,  | ||||
| # Note that when you see patterns like "ref: test-data/v2/basic" within this workflow, | ||||
| # these refer to "test-data" branches on this actions/checkout repo. | ||||
| # (For example, test-data/v2/basic -> https://github.com/actions/checkout/tree/test-data/v2/basic) | ||||
| 
 | ||||
| @ -37,7 +37,7 @@ jobs: | ||||
|     steps: | ||||
|       # Clone this repo | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v3 | ||||
|         uses: actions/checkout@v4.1.1 | ||||
| 
 | ||||
|       # Basic checkout | ||||
|       - name: Checkout basic | ||||
| @ -257,7 +257,7 @@ jobs: | ||||
|           path: basic | ||||
|       - name: Verify basic | ||||
|         run: __test__/verify-basic.sh --archive | ||||
|      | ||||
| 
 | ||||
|   test-git-container: | ||||
|     runs-on: ubuntu-latest | ||||
|     container: bitnami/git:latest | ||||
|  | ||||
| @ -18,6 +18,20 @@ else | ||||
|     exit 1 | ||||
|   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 | ||||
|   cd basic | ||||
|   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() { | ||||
|         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) { | ||||
|  | ||||
| @ -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> { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user