 dd4143e7bf
			
		
	
	dd4143e7bf
	
	
	
		
			
			The "new_pack" we allocate in check_connected() wasn't being
free'd. Let's do that before we return from the function. This has
leaked ever since "new_pack" was added to this function in
c6807a40dc (clone: open a shortcut for connectivity check,
2013-05-26).
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Taylor Blau <me@ttaylorr.com>
		
	
		
			
				
	
	
		
			112 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| test_description='Test cloning repos with submodules using remote-tracking branches'
 | |
| 
 | |
| GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
 | |
| export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
 | |
| 
 | |
| TEST_PASSES_SANITIZE_LEAK=true
 | |
| . ./test-lib.sh
 | |
| 
 | |
| pwd=$(pwd)
 | |
| 
 | |
| test_expect_success 'setup' '
 | |
| 	git config --global protocol.file.allow always &&
 | |
| 	git checkout -b main &&
 | |
| 	test_commit commit1 &&
 | |
| 	mkdir sub &&
 | |
| 	(
 | |
| 		cd sub &&
 | |
| 		git init &&
 | |
| 		test_commit subcommit1 &&
 | |
| 		git tag sub_when_added_to_super &&
 | |
| 		git branch other
 | |
| 	) &&
 | |
| 	git submodule add "file://$pwd/sub" sub &&
 | |
| 	git commit -m "add submodule" &&
 | |
| 	(
 | |
| 		cd sub &&
 | |
| 		test_commit subcommit2
 | |
| 	)
 | |
| '
 | |
| 
 | |
| # bare clone giving "srv.bare" for use as our server.
 | |
| test_expect_success 'setup bare clone for server' '
 | |
| 	git clone --bare "file://$(pwd)/." srv.bare &&
 | |
| 	git -C srv.bare config --local uploadpack.allowfilter 1 &&
 | |
| 	git -C srv.bare config --local uploadpack.allowanysha1inwant 1
 | |
| '
 | |
| 
 | |
| test_expect_success 'clone with --no-remote-submodules' '
 | |
| 	test_when_finished "rm -rf super_clone" &&
 | |
| 	git clone --recurse-submodules --no-remote-submodules "file://$pwd/." super_clone &&
 | |
| 	(
 | |
| 		cd super_clone/sub &&
 | |
| 		git diff --exit-code sub_when_added_to_super
 | |
| 	)
 | |
| '
 | |
| 
 | |
| test_expect_success 'clone with --remote-submodules' '
 | |
| 	test_when_finished "rm -rf super_clone" &&
 | |
| 	git clone --recurse-submodules --remote-submodules "file://$pwd/." super_clone &&
 | |
| 	(
 | |
| 		cd super_clone/sub &&
 | |
| 		git diff --exit-code remotes/origin/main
 | |
| 	)
 | |
| '
 | |
| 
 | |
| test_expect_success 'check the default is --no-remote-submodules' '
 | |
| 	test_when_finished "rm -rf super_clone" &&
 | |
| 	git clone --recurse-submodules "file://$pwd/." super_clone &&
 | |
| 	(
 | |
| 		cd super_clone/sub &&
 | |
| 		git diff --exit-code sub_when_added_to_super
 | |
| 	)
 | |
| '
 | |
| 
 | |
| test_expect_success 'clone with --single-branch' '
 | |
| 	test_when_finished "rm -rf super_clone" &&
 | |
| 	git clone --recurse-submodules --single-branch "file://$pwd/." super_clone &&
 | |
| 	(
 | |
| 		cd super_clone/sub &&
 | |
| 		git rev-parse --verify origin/main &&
 | |
| 		test_must_fail git rev-parse --verify origin/other
 | |
| 	)
 | |
| '
 | |
| 
 | |
| # do basic partial clone from "srv.bare"
 | |
| # confirm partial clone was registered in the local config for super and sub.
 | |
| test_expect_success 'clone with --filter' '
 | |
| 	git clone --recurse-submodules \
 | |
| 		--filter blob:none --also-filter-submodules \
 | |
| 		"file://$pwd/srv.bare" super_clone &&
 | |
| 	test_cmp_config -C super_clone true remote.origin.promisor &&
 | |
| 	test_cmp_config -C super_clone blob:none remote.origin.partialclonefilter &&
 | |
| 	test_cmp_config -C super_clone/sub true remote.origin.promisor &&
 | |
| 	test_cmp_config -C super_clone/sub blob:none remote.origin.partialclonefilter
 | |
| '
 | |
| 
 | |
| # check that clone.filterSubmodules works (--also-filter-submodules can be
 | |
| # omitted)
 | |
| test_expect_success 'filters applied with clone.filterSubmodules' '
 | |
| 	test_config_global clone.filterSubmodules true &&
 | |
| 	git clone --recurse-submodules --filter blob:none \
 | |
| 		"file://$pwd/srv.bare" super_clone2 &&
 | |
| 	test_cmp_config -C super_clone2 true remote.origin.promisor &&
 | |
| 	test_cmp_config -C super_clone2 blob:none remote.origin.partialclonefilter &&
 | |
| 	test_cmp_config -C super_clone2/sub true remote.origin.promisor &&
 | |
| 	test_cmp_config -C super_clone2/sub blob:none remote.origin.partialclonefilter
 | |
| '
 | |
| 
 | |
| test_expect_success '--no-also-filter-submodules overrides clone.filterSubmodules=true' '
 | |
| 	test_config_global clone.filterSubmodules true &&
 | |
| 	git clone --recurse-submodules --filter blob:none \
 | |
| 		--no-also-filter-submodules \
 | |
| 		"file://$pwd/srv.bare" super_clone3 &&
 | |
| 	test_cmp_config -C super_clone3 true remote.origin.promisor &&
 | |
| 	test_cmp_config -C super_clone3 blob:none remote.origin.partialclonefilter &&
 | |
| 	test_cmp_config -C super_clone3/sub false --default false remote.origin.promisor
 | |
| '
 | |
| 
 | |
| test_done
 |