diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-12-06 18:23:35 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-12-06 18:23:35 +0100 |
commit | 0b75572a1b9f601b751d431faea55f492ea92ac9 (patch) | |
tree | 77c08b1f554cedb53a924e6ab0ef23e947469858 /t/lib-submodule-update.sh | |
parent | Sync with v2.15.1 (diff) | |
parent | Documentation/checkout: clarify submodule HEADs to be detached (diff) | |
download | git-0b75572a1b9f601b751d431faea55f492ea92ac9.tar.xz git-0b75572a1b9f601b751d431faea55f492ea92ac9.zip |
Merge branch 'sb/submodule-recursive-checkout-detach-head'
"git checkout --recursive" may overwrite and rewind the history of
the branch that happens to be checked out in submodule
repositories, which might not be desirable. Detach the HEAD but
still allow the recursive checkout to succeed in such a case.
* sb/submodule-recursive-checkout-detach-head:
Documentation/checkout: clarify submodule HEADs to be detached
recursive submodules: detach HEAD from new state
Diffstat (limited to 't/lib-submodule-update.sh')
-rwxr-xr-x | t/lib-submodule-update.sh | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/t/lib-submodule-update.sh b/t/lib-submodule-update.sh index bb94c23209..9058bf978a 100755 --- a/t/lib-submodule-update.sh +++ b/t/lib-submodule-update.sh @@ -689,6 +689,23 @@ test_submodule_switch_recursing_with_args () { test_submodule_content sub1 origin/add_sub1 ) ' + test_expect_success "$command: submodule branch is not changed, detach HEAD instead" ' + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git -C sub1 checkout -b keep_branch && + git -C sub1 rev-parse HEAD >expect && + git branch -t check-keep origin/modify_sub1 && + $command check-keep && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/modify_sub1 && + git -C sub1 rev-parse keep_branch >actual && + test_cmp expect actual && + test_must_fail git -C sub1 symbolic-ref HEAD + ) + ' + # Replacing a tracked file with a submodule produces a checked out submodule test_expect_success "$command: replace tracked file with submodule checks out submodule" ' prolog && |