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