Add submodule specifying depth and branch at the same time won't work

3 messages, 2 authors, 2016-06-15 · open the first message on its own page

Add submodule specifying depth and branch at the same time won't work

From: Carlos Pita <hidden>
Date: 2016-06-15 23:06:50

For example, I can do:

git clone --depth 1 --branch devel git@gitlab.com:memeplex/bash.git

But if I try:

git submodule add --depth 1 -b devel git@gitlab.com:memeplex/bash.git

I get:

fatal: Cannot update paths and switch to branch 'devel' at the same time.
Did you intend to checkout 'origin/devel' which can not be resolved as commit?
Unable to checkout submodule 'src/aur/bash'


I think the devel branch is left outside the update because depth is
just 1, but then the same could be said for the clone, which just
works. The request should be interpreted as depth 1 inside devel
branch.

[PATCH] submodule: Test a shallow branch

From: Stefan Beller <hidden>
Date: 2016-06-15 23:06:50

Instead of tracking the submodule at the specified branch, using a shallow
clone, we get the following error:

fatal: Cannot update paths and switch to branch 'anotherbranch' at the same time.
Did you intend to checkout 'origin/anotherbranch' which can not be resolved as commit?
Unable to checkout submodule 'submodule'

Noticed-by: Carlos Pita [off-list ref]
Signed-off-by: Stefan Beller <redacted>
---

 Hi Carlos,
 
 I can reproduce your issue and have a patch which we can add to the
 testing suite to document this faulty behavior.
 
 Thanks,
 Stefan

 t/t7400-submodule-basic.sh | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/t/t7400-submodule-basic.sh b/t/t7400-submodule-basic.sh
index 540771c..cee74cb 100755
--- a/t/t7400-submodule-basic.sh
+++ b/t/t7400-submodule-basic.sh
@@ -846,7 +846,8 @@ test_expect_success 'submodule add with an existing name fails unless forced' '
 
 test_expect_success 'set up a second submodule' '
 	git submodule add ./init2 example2 &&
-	git commit -m "submodule example2 added"
+	git commit -m "submodule example2 added" &&
+	git checkout -b anotherbranch
 '
 
 test_expect_success 'submodule deinit should remove the whole submodule section from .git/config' '
@@ -987,6 +988,7 @@ test_expect_success 'submodule with UTF-8 name' '
 
 test_expect_success 'submodule add clone shallow submodule' '
 	mkdir super &&
+	test_when_finished "rm -rf super" &&
 	pwd=$(pwd) &&
 	(
 		cd super &&
@@ -999,5 +1001,21 @@ test_expect_success 'submodule add clone shallow submodule' '
 	)
 '
 
+test_expect_failure 'submodule add a shallow branch' '
+	mkdir super &&
+	test_when_finished "rm -rf super" &&
+	pwd=$(pwd) &&
+	(
+		cd super &&
+		git init &&
+		git submodule add --depth=1 --branch anotherbranch file://"$pwd"/example2 submodule &&
+		(
+			cd submodule &&
+			test 1 = $(git log --oneline | wc -l)
+		)
+	)
+'
+
+
 
 test_done
-- 
2.5.0.268.g453a26a

Fwd: [PATCH] submodule: Test a shallow branch

From: Stefan Beller <hidden>
Date: 2016-06-15 23:06:50

I forgot to CC you guys.

---------- Forwarded message ----------
From: Stefan Beller <redacted>
Date: Mon, Oct 12, 2015 at 2:36 PM
Subject: [PATCH] submodule: Test a shallow branch
To: gitster@pobox.com
Cc: git@vger.kernel.org, carlosjosepita@gmail.com, Stefan Beller
[off-list ref]


Instead of tracking the submodule at the specified branch, using a shallow
clone, we get the following error:

fatal: Cannot update paths and switch to branch 'anotherbranch' at the
same time.
Did you intend to checkout 'origin/anotherbranch' which can not be
resolved as commit?
Unable to checkout submodule 'submodule'

Noticed-by: Carlos Pita [off-list ref]
Signed-off-by: Stefan Beller <redacted>
---

 Hi Carlos,

 I can reproduce your issue and have a patch which we can add to the
 testing suite to document this faulty behavior.

 Thanks,
 Stefan

 t/t7400-submodule-basic.sh | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/t/t7400-submodule-basic.sh b/t/t7400-submodule-basic.sh
index 540771c..cee74cb 100755
--- a/t/t7400-submodule-basic.sh
+++ b/t/t7400-submodule-basic.sh
@@ -846,7 +846,8 @@ test_expect_success 'submodule add with an
existing name fails unless forced' '

 test_expect_success 'set up a second submodule' '
        git submodule add ./init2 example2 &&
-       git commit -m "submodule example2 added"
+       git commit -m "submodule example2 added" &&
+       git checkout -b anotherbranch
 '

 test_expect_success 'submodule deinit should remove the whole
submodule section from .git/config' '
@@ -987,6 +988,7 @@ test_expect_success 'submodule with UTF-8 name' '

 test_expect_success 'submodule add clone shallow submodule' '
        mkdir super &&
+       test_when_finished "rm -rf super" &&
        pwd=$(pwd) &&
        (
                cd super &&
@@ -999,5 +1001,21 @@ test_expect_success 'submodule add clone shallow
submodule' '
        )
 '

+test_expect_failure 'submodule add a shallow branch' '
+       mkdir super &&
+       test_when_finished "rm -rf super" &&
+       pwd=$(pwd) &&
+       (
+               cd super &&
+               git init &&
+               git submodule add --depth=1 --branch anotherbranch
file://"$pwd"/example2 submodule &&
+               (
+                       cd submodule &&
+                       test 1 = $(git log --oneline | wc -l)
+               )
+       )
+'
+
+

 test_done
--
2.5.0.268.g453a26a
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help