Re: [PATCH] Clarified how "git submodule add" handles relative paths.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Marc Branchaud <marcnarc@xxxxxxxxxxx> writes:

> So this is really about saving the users the hassle of modifying all the
> URLs in the .gitmodules file.  Does this patch document what you mean?

I do not necessarily think it is _solely_ about users. Another obvious
example I left unsaid was what would happen when your project gets popular
and gets mirrored to many places. Surely you need to advise people of
alternate locations of the top-level, but what is recorded in .gitmodules
will be relative to that top-level, so they do not have to be changed.
Even if you have only one public repository, I would imagine that the same
convenience would apply if you ever decide to switch the project hosting
site.

"Users can use a URL different from what was given by the maintainer" is
merely an example; I doubt it deserves stressing that much.

> diff --git a/Documentation/git-submodule.txt b/Documentation/git-submodule.txt
> index 1a16ff6..54dfebb 100644
> --- a/Documentation/git-submodule.txt
> +++ b/Documentation/git-submodule.txt
> @@ -77,8 +77,17 @@ to exist in the superproject. If <path> is not given, the
>  +
>  <repository> is the URL of the new submodule's origin repository.
>  This may be either an absolute URL, or (if it begins with ./
> -or ../), the location relative to the superproject's origin
> -repository.
> +or ../) a URL relative to one of the superproject's remote
> +repostories:  If the superprojet's currently checked-out branch tracks
> +a remote branch then that remote's URL is used, otherwise the "origin"
> +remote's URL is used.  Relative URLs allow users to easily clone the
> +superproject and its submodules using a different URL than what the
> +superproject's maintainer might use (e.g. the maintainer can use ssh://
> +URLs while the users might use git:// URLs).  With relative URLs in the
> +.gitmodules file, the users won't have to edit all the submodule URLs.
> ++
> +*NOTE*: This means that you can *not* use a relative path to refer to a
> +repository in your local filesystem.

It is not "can not" but "do not", is it?  More importantly, I do not think
it is limited to the case of relative path at all.

I thought that in general "submodule add" takes a URL and never a _local_
filesystem location, as the whole point [*1*] of running "submodule add"
command is to update the entry in the .gitmodules file for people who may
not have access to _your_ local filesystem in the first place?

I am starting to suspect that the original confusion that started this
thread is coming from misunderstanding in this area.

[Footnote]

*1* The command also adds a corresponding entry to your own .git/config
file so that you can work as if you are just one of your users and as if
you did "submodule init" based on what is in .gitmodules.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]