diff options
author | Junio C Hamano <gitster@pobox.com> | 2022-04-04 10:56:22 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2022-04-04 10:56:23 -0700 |
commit | da95e25656690e4b585b73677e9db746bd796a67 (patch) | |
tree | 0f43893dabfa07242eeb4cb3fd8c74f77a1ead09 /t | |
parent | Merge branch 'ns/fsync-or-die-message-fix' (diff) | |
parent | branch.c: simplify advice-and-die sequence (diff) | |
download | tgif-da95e25656690e4b585b73677e9db746bd796a67.tar.xz |
Merge branch 'gc/branch-recurse-submodules-fix'
A handful of obvious clean-ups around a topic that is already in
'master'.
* gc/branch-recurse-submodules-fix:
branch.c: simplify advice-and-die sequence
branch: rework comments for future developers
branch: remove negative exit code
branch --set-upstream-to: be consistent when advising
branch: give submodule updating advice before exit
branch: support more tracking modes when recursing
Diffstat (limited to 't')
-rwxr-xr-x | t/t3207-branch-submodule.sh | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/t/t3207-branch-submodule.sh b/t/t3207-branch-submodule.sh index 0d93f7516c..cfde6b237f 100755 --- a/t/t3207-branch-submodule.sh +++ b/t/t3207-branch-submodule.sh @@ -260,7 +260,7 @@ test_expect_success 'should get fatal error upon branch creation when submodule ) ' -test_expect_success 'should set up tracking of remote-tracking branches' ' +test_expect_success 'should set up tracking of remote-tracking branches by default' ' test_when_finished "reset_remote_test" && ( cd super-clone && @@ -289,4 +289,40 @@ test_expect_success 'should not fail when unable to set up tracking in submodule ) ' +test_expect_success '--track=inherit should set up tracking correctly' ' + test_when_finished "reset_remote_test" && + ( + cd super-clone && + git branch --recurse-submodules branch-a origin/branch-a && + # Set this manually instead of using branch --set-upstream-to + # to circumvent the "nonexistent upstream" check. + git -C sub config branch.branch-a.remote origin && + git -C sub config branch.branch-a.merge refs/heads/sub-branch-a && + git -C sub/sub-sub config branch.branch-a.remote other && + git -C sub/sub-sub config branch.branch-a.merge refs/heads/sub-sub-branch-a && + + git branch --recurse-submodules --track=inherit branch-b branch-a && + test_cmp_config origin branch.branch-b.remote && + test_cmp_config refs/heads/branch-a branch.branch-b.merge && + test_cmp_config -C sub origin branch.branch-b.remote && + test_cmp_config -C sub refs/heads/sub-branch-a branch.branch-b.merge && + test_cmp_config -C sub/sub-sub other branch.branch-b.remote && + test_cmp_config -C sub/sub-sub refs/heads/sub-sub-branch-a branch.branch-b.merge + ) +' + +test_expect_success '--no-track should not set up tracking' ' + test_when_finished "reset_remote_test" && + ( + cd super-clone && + git branch --recurse-submodules --no-track branch-a origin/branch-a && + test_cmp_config "" --default "" branch.branch-a.remote && + test_cmp_config "" --default "" branch.branch-a.merge && + test_cmp_config -C sub "" --default "" branch.branch-a.remote && + test_cmp_config -C sub "" --default "" branch.branch-a.merge && + test_cmp_config -C sub/sub-sub "" --default "" branch.branch-a.remote && + test_cmp_config -C sub/sub-sub "" --default "" branch.branch-a.merge + ) +' + test_done |