Subject: Re: Why does adding an existing repo as a submodule modify .git/config?

From: Jens Lehmann <[email-masked]>
Date: Mon, 23 May 2011 20:43:30 +0200

Am 22.05.2011 22:02, schrieb Christopher Wilson:
> (I posted this question below on
> http://stackoverflow.com/questions/6083357/why-does-adding-an-existing-repo-as-a-submodule-modify-git-config
> and was recommended to ask the mailing list)
> 
> If I add a submodule that does not currently exist, no submodule
> information is added to .git/config.
> 
> $ mkdir testing
> $ cd testing
> $ git init
> $ git submodule add [email-masked]:submodule.git
> $ cat .git/config
> [core]
>     repositoryformatversion = 0
>     filemode = true
>     bare = false
>     logallrefupdates = true
>     ignorecase = true
> 
> However, if I add a repo that currently exists as a submodule, the url
> is added to .git/config:
> 
> $ mkdir testing
> $ cd testing
> $ git init
> $ git clone [email-masked]:submodule.git
> $ git submodule add [email-masked]:submodule.git
> $ cat .git/config
> [core]
>     repositoryformatversion = 0
>     filemode = true
>     bare = false
>     logallrefupdates = true
>     ignorecase = true
> [submodule "submodule"]
>     url = [email-masked]:submodule.git
> 
> I would have assumed that in both cases, git submodule add would have
> only modified .gitmodules, and that git submodule init would have
> updated the project's .git/config.
> 
> I'm aware this is intentional behavior
> (https://github.com/git/git/commit/c2f939170c65173076bbd752bb3c764536b3b09b),
> but I don't understand why.
> 
> Why is .git/config modified in the second case but not the first? Can
> somebody explain the rational for this behavior?

Hmm, this looks like an inconsistency to me too. It would be great
to hear about the background, so I added Mark to the CC, maybe he
can shed some light.