Re: Git submodules with usernames in the URL
On 02/14/2012 02:26 PM, Tillmann.Crueger@telekom.de wrote:
Show 27 quoted lines
> I already had a look at the mailinglist archive, but I could not find
> any mention of this problem. There is a posting on Stackoverflow.com
> about this
> (http://stackoverflow.com/questions/7714326/git-submodule-url-not-including-username)
> with a workaround, but it would nice to have an official position.
>
> Here is the problem:
>
> When I am using git-submodule over an authorized https it is
> convenient to be able to specify the username directly in the url in
> the form https://user@domain.com/path/to/repo. So I am able to do a
>
>> git submodule add https://user@domain.com/path/to/repo
>
> Howver if I do this, the username becomes baked into the URL of the
> submodule, so other people working with the repository will not be
> able to use the submodule and have to change the URL first.
>
> Is there an actual rationale for including the username in the URL in
> this case, or is this just because it is simpler than removing it?
>
> One thing I noticed, is that automatically removing it would
> basically eliminate the convinience for the person who has been using
> that URL in the first place. If the username was removed every update
> would have to query the username again. Also having a username in the
> repo could be correct, in case this isn't a real user, but a role for
> using that repository.
* If the submodule repository is accessible without authentication, no
user specific URL should go into the repository.
* If the submodule repository is not accessible without authentication,
the user specific URL should not go into the repository either,
because of the problem you just described. (Sure, you could add a
"git submodule user", but..)
> Still I feel that having a username within a repository is hardly
> ever what someone wants and most often a mistake. For now I will try
> to educate everybody about this and fix all repositories where this
> goes wrong, but a better solution would be nice to have.
Git >= v1.7.9 comes with a credentials API and some helpers; see
commit abca927dbef2c310056b8a1a8be5561212b3243a
and following or the available documentation for credentials, e.g.:
https://raw.github.com/gitster/git/master/Documentation/git-credential-store.txt
In contrib, there's a helper for the OS X keychain:
https://github.com/gitster/git/tree/master/contrib/credential
If that's no option, you would have to go with netrc / url config approach.
HTH.