Re: Git submodules with usernames in the URL
- From
- Michael Schubert <mschub@elegosoft.com>
- Date
- Feb 14, 2012, 14:55 UTC
- Message-ID
- <4F3A75C8.5070201@elegosoft.com>
- In-Reply-To
- <E76DF6102FDBC04BA291EAE9A3BAECB50137C2AC6530@HE111540.emea1.cds.t-internal.com>
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.