From: Marc Branchaud <marcnarc@xxxxxxxxxxx> Use "git remote default" instead of replicating its logic. The unit test checks a relative-path submodule because the submodule code is (almost) the only thing that uses get_default_remote. Signed-off-by: Marc Branchaud <marcnarc@xxxxxxxxxxx> --- git-parse-remote.sh | 5 +---- t/t7400-submodule-basic.sh | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/git-parse-remote.sh b/git-parse-remote.sh index 484b2e6..49257f0 100644 --- a/git-parse-remote.sh +++ b/git-parse-remote.sh @@ -5,10 +5,7 @@ GIT_DIR=$(git rev-parse -q --git-dir) || :; get_default_remote () { - curr_branch=$(git symbolic-ref -q HEAD) - curr_branch="${curr_branch#refs/heads/}" - origin=$(git config --get "branch.$curr_branch.remote") - echo ${origin:-origin} + echo $(git remote default) } get_remote_merge_branch () { diff --git a/t/t7400-submodule-basic.sh b/t/t7400-submodule-basic.sh index 81827e6..2ac2ffc 100755 --- a/t/t7400-submodule-basic.sh +++ b/t/t7400-submodule-basic.sh @@ -507,6 +507,27 @@ test_expect_success 'relative path works with user@host:path' ' ) ' +test_expect_success 'realtive path works when superproject on detached HEAD' ' + ( + test_create_repo detach && + cd detach && + test_create_repo sub && + ( + cd sub && + test_commit foo + ) && + git add sub && + git commit -m "added sub" && + rm -rf sub && + git checkout HEAD@{0} && + git config -f .gitmodules submodule.sub.path sub && + git config -f .gitmodules submodule.sub.url ../subrepo && + git remote add awkward /path/to/awkward + git submodule init sub && + test "$(git config submodule.sub.url)" = /path/to/subrepo + ) +' + test_expect_success 'moving the superproject does not break submodules' ' ( cd addtest && -- 1.7.11.1 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html