When adding a submodule via "git submodule add <relative url>",
the relative url applies to the superprojects remote. When the
superproject was cloned via "git clone . super", the remote url
is ending with '/.'.

The logic to construct the relative urls is not smart enough to
detect that the ending /. is referring to the directory itself
but rather treats it like any other relative path, i.e.

    path/to/dir/. + ../relative/path/to/submodule

would result in

    path/to/dir/relative/path/to/submodule

and not omit the "dir" as you may expect.

As in a later patch we'll normalize the remote url before the
computation of relative urls takes place, we need to first get our
test suite in a shape with normalized urls only, which is why we should
refrain from cloning from '.'

Signed-off-by: Stefan Beller <[email protected]>
---
 t/t7064-wtstatus-pv2.sh      | 9 ++++++---
 t/t7403-submodule-sync.sh    | 3 ++-
 t/t7406-submodule-update.sh  | 6 ++++--
 t/t7407-submodule-foreach.sh | 3 ++-
 t/t7506-status-submodule.sh  | 3 ++-
 5 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/t/t7064-wtstatus-pv2.sh b/t/t7064-wtstatus-pv2.sh
index 3012a4d..95514bb 100755
--- a/t/t7064-wtstatus-pv2.sh
+++ b/t/t7064-wtstatus-pv2.sh
@@ -330,7 +330,8 @@ test_expect_success 'verify UU (edit-edit) conflict' '
 test_expect_success 'verify upstream fields in branch header' '
        git checkout master &&
        test_when_finished "rm -rf sub_repo" &&
-       git clone . sub_repo &&
+       git clone "$(pwd)" sub_repo &&
+       git -C sub_repo config --unset remote.origin.url &&
        (
                ## Confirm local master tracks remote master.
                cd sub_repo &&
@@ -392,8 +393,10 @@ test_expect_success 'verify upstream fields in branch 
header' '
 
 test_expect_success 'create and add submodule, submodule appears clean (A. 
S...)' '
        git checkout master &&
-       git clone . sub_repo &&
-       git clone . super_repo &&
+       git clone "$(pwd)" sub_repo &&
+       git -C sub_repo config --unset remote.origin.url &&
+       git clone "$(pwd)" super_repo &&
+       git -C super_repo config --unset remote.origin.url &&
        (       cd super_repo &&
                git submodule add ../sub_repo sub1 &&
 
diff --git a/t/t7403-submodule-sync.sh b/t/t7403-submodule-sync.sh
index 0726799..6d85391 100755
--- a/t/t7403-submodule-sync.sh
+++ b/t/t7403-submodule-sync.sh
@@ -15,7 +15,8 @@ test_expect_success setup '
        git add file &&
        test_tick &&
        git commit -m upstream &&
-       git clone . super &&
+       git clone "$(pwd)" super &&
+       git -C super config --unset remote.origin.url &&
        git clone super submodule &&
        (
                cd submodule &&
diff --git a/t/t7406-submodule-update.sh b/t/t7406-submodule-update.sh
index 64f322c..9430c2a 100755
--- a/t/t7406-submodule-update.sh
+++ b/t/t7406-submodule-update.sh
@@ -26,7 +26,8 @@ test_expect_success 'setup a submodule tree' '
        git add file &&
        test_tick &&
        git commit -m upstream &&
-       git clone . super &&
+       git clone "$(pwd)" super &&
+       git -C super config --unset remote.origin.url &&
        git clone super submodule &&
        git clone super rebasing &&
        git clone super merging &&
@@ -64,7 +65,8 @@ test_expect_success 'setup a submodule tree' '
         test_tick &&
         git commit -m "none"
        ) &&
-       git clone . recursivesuper &&
+       git clone "$(pwd)" recursivesuper &&
+       git -C recursivesuper config --unset remote.origin.url &&
        ( cd recursivesuper
         git submodule add ../super super
        )
diff --git a/t/t7407-submodule-foreach.sh b/t/t7407-submodule-foreach.sh
index 6ba5daf..257e817 100755
--- a/t/t7407-submodule-foreach.sh
+++ b/t/t7407-submodule-foreach.sh
@@ -17,7 +17,8 @@ test_expect_success 'setup a submodule tree' '
        git add file &&
        test_tick &&
        git commit -m upstream &&
-       git clone . super &&
+       git clone "$(pwd)" super &&
+       git -C super config --unset remote.origin.url &&
        git clone super submodule &&
        (
                cd super &&
diff --git a/t/t7506-status-submodule.sh b/t/t7506-status-submodule.sh
index 74cb6b8..62a99bc 100755
--- a/t/t7506-status-submodule.sh
+++ b/t/t7506-status-submodule.sh
@@ -197,7 +197,8 @@ A  sub1
 EOF
 
 test_expect_success 'status with merge conflict in .gitmodules' '
-       git clone . super &&
+       git clone "$(pwd)" super &&
+       git -C super config --unset remote.origin.url &&
        test_create_repo_with_commit sub1 &&
        test_tick &&
        test_create_repo_with_commit sub2 &&
-- 
2.10.1.507.g2a9098a

Reply via email to