f4609b896f
This also bumps the stable nixpkgs to 20.09 as of 2020-11-21, because there is some breakage in the git build related to the netrc credentials helper which someone has taken care of in nixpkgs. The stable channel is not used for anything other than git, so this should be fine. Change-Id: I3575a19dab09e1e9556cf8231d717de9890484fb
65 lines
1.5 KiB
Bash
Executable file
65 lines
1.5 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
test_description='Test cloning repos with submodules using remote-tracking branches'
|
|
|
|
. ./test-lib.sh
|
|
|
|
pwd=$(pwd)
|
|
|
|
test_expect_success 'setup' '
|
|
git checkout -b master &&
|
|
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
|
|
)
|
|
'
|
|
|
|
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/master
|
|
)
|
|
'
|
|
|
|
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/master &&
|
|
test_must_fail git rev-parse --verify origin/other
|
|
)
|
|
'
|
|
|
|
test_done
|