mirror of
				https://github.com/actions/checkout.git
				synced 2025-10-31 15:33:35 +00:00 
			
		
		
		
	Disable extensions.worktreeConfig when disabling sparse-checkout (#1692)
				
					
				
			This commit is contained in:
		
							parent
							
								
									37b082107b
								
							
						
					
					
						commit
						43045ae669
					
				
							
								
								
									
										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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user