threads / patch / 14336

patchgit-submodule - register module url if adding in place

Subject: [PATCH] git-submodule - register module url if adding in place

## tl;dr

4 messages between Jul 8, 2008 and Jul 9, 2008. Diffs are folded; open one to read it.

replies: 3people: 2as markdown or json

Mark Levedahl· Jul 8, 2008, 02:37 UTC · lore

When adding a new submodule in place, meaning the user created the submodule as a git repo in the tree first, we don't go through git submodule init to register the module. Thus, the url is not stored in .git/config, and no git operation will ever do so. In this case, assume the url the user supplies to git add is the one that should be registered, and do so.

Signed-off-by: Mark Levedahl <mlevedahl@gmail.com>
---
 git-submodule.sh |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)
Show changes to git-submodule.sh +10 −0
diff --git a/git-submodule.sh b/git-submodule.sh
index 099a7d7..7525922 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -173,6 +173,16 @@ cmd_add()
 		else
 			die "'$path' already exists and is not a valid git repo"
 		fi
+
+		case "$repo" in
+		./*|../*)
+			url=$(resolve_relative_url "$repo") || exit
+		    ;;
+		*)
+			url="$repo"
+			;;
+		esac
+		git config submodule."$path".url "$url"
 	else
 		case "$repo" in
 		./*|../*)
-- 
1.5.6.2.271.g73ad8
Johannes Schindelin· Jul 8, 2008, 11:34 UTC · re: Mark Levedahl · lore

Re: [PATCH] git-submodule - register module url if adding in place

Hi,
On Mon, 7 Jul 2008, Mark Levedahl wrote:
Show 6 quoted lines
> When adding a new submodule in place, meaning the user created the 
> submodule as a git repo in the tree first, we don't go through git 
> submodule init to register the module. Thus, the url is not stored in 
> .git/config, and no git operation will ever do so. In this case, assume 
> the url the user supplies to git add is the one that should be 
> registered, and do so.

I agree with Sylvain here, namely that this is too dangerous. Imagine this very valid scenario:

	$ git clone <somewhere> abc
	$ git submodule add abc
Bummer.
Yes, happened to me.

So I'd like this to be an error, not something that tries to be helpful, when it clearly cannot be.

Ciao, Dscho

Mark Levedahl· Jul 8, 2008, 23:59 UTC · re: Johannes Schindelin · lore

Re: [PATCH] git-submodule - register module url if adding in place

Johannes Schindelin wrote:
Show 17 quoted lines
> I agree with Sylvain here, namely that this is too dangerous.  Imagine 
> this very valid scenario:
>
> 	$ git clone <somewhere> abc
> 	$ git submodule add abc
>
> Bummer.
>
> Yes, happened to me.
>
> So I'd like this to be an error, not something that tries to be helpful, 
> when it clearly cannot be.
>
> Ciao,
> Dscho
>
>   

I think the real issue here is that submodule-add is too flexible and poorly documented, see my response to Junio in the other thread.

Mark
Johannes Schindelin· Jul 9, 2008, 00:11 UTC · re: Mark Levedahl · lore

Re: [PATCH] git-submodule - register module url if adding in place

Hi,
On Tue, 8 Jul 2008, Mark Levedahl wrote:
Show 16 quoted lines
> Johannes Schindelin wrote:
> > I agree with Sylvain here, namely that this is too dangerous.  
> > Imagine this very valid scenario:
> >
> >  $ git clone <somewhere> abc
> >  $ git submodule add abc
> >
> > Bummer.
> >
> > Yes, happened to me.
> >
> > So I'd like this to be an error, not something that tries to be 
> > helpful, when it clearly cannot be.
>
> I think the real issue here is that submodule-add is too flexible and 
> poorly documented, see my response to Junio in the other thread.

In contrast, I think that we should either disallow the form without URL, or get the URL automatically from the submodule's current branch's default remote.

Ciao, Dscho

← back to recent threads