From: Jonathan Nieder <jrnieder@gmail.com>
To: Robert Dailey <rcdailey.lists@gmail.com>
Cc: Git <git@vger.kernel.org>, Jens Lehmann <Jens.Lehmann@web.de>,
Heiko Voigt <hvoigt@hvoigt.net>
Subject: Re: Relative submodule URLs
Date: Mon, 18 Aug 2014 13:55:05 -0700 [thread overview]
Message-ID: <20140818205505.GA20185@google.com> (raw)
In-Reply-To: <CAHd499CRNjp-UzXiTt=xgDJWGOEqew+AuPFmrF3-VsEGefXiuA@mail.gmail.com>
Hi,
Robert Dailey wrote:
> The documentation wasn't 100% clear on this, but I'm assuming by
> "remote origin", it says that the relative URL is relative to the
> actual remote *named* origin (and it is not using origin as just a
> general terminology).
Thanks for reporting. The remote used is the default remote that "git
fetch" without further arguments would use:
get_default_remote () {
curr_branch=$(git symbolic-ref -q HEAD)
curr_branch="${curr_branch#refs/heads/}"
origin=$(git config --get "branch.$curr_branch.remote")
echo ${origin:-origin}
}
The documentation is wrong. git-fetch(1) doesn't provide a name for
this thing. Any ideas for wording?
> Is there a way to specify (on a per-clone basis) which named remote
> will be used to calculate the URL for submodules?
Currently there isn't, short of reconfiguring the remote used by
default by "git fetch".
> Various co-workers use the remote named "central" instead of
> "upstream" and "fork" instead of "origin" (because that just makes
> more sense to them and it's perfectly valid).
>
> However if relative submodules require 'origin' to exist AND also
> represent the upstream repository (in triangle workflow), then this
> breaks on several levels.
Can you explain further? In a triangle workflow, "git fetch" will
pull from the 'origin' remote by default and will push to the remote
named in the '[remote] pushdefault' setting (see "remote.pushdefault"
in git-config(1)). So you can do
[remote]
pushDefault = whereishouldpush
and then 'git fetch' and 'git fetch --recurse-submodules' will fetch
from "origin" and 'git push' will push to the whereishouldpush remote.
It might make sense to introduce a new
[remote]
default = whereishouldfetch
setting to allow the name "origin" above to be replaced, too. Is that
what you mean?
Meanwhile it is hard to fork a project that uses relative submodule
URLs without also forking the submodules (or, conversely, to fork some
of the submodules of a project that uses absolute submodule URLs).
That's a real and serious problem but I'm not sure how it relates to
the names of remotes. My preferred fix involves teaching git to read
a refs/meta/git (or similarly named) ref when cloning a project with
submodules and let settings from .gitmodules in that ref override
.gitmodules in other branches. Is that what you were referring to?
Curious,
Jonathan
next prev parent reply other threads:[~2014-08-18 20:55 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-18 18:22 Relative submodule URLs Robert Dailey
2014-08-18 20:55 ` Jonathan Nieder [this message]
2014-08-19 10:24 ` Heiko Voigt
2014-08-19 16:15 ` Robert Dailey
2014-08-19 16:39 ` Junio C Hamano
2014-08-19 16:50 ` Robert Dailey
2014-08-19 19:19 ` Junio C Hamano
2014-08-19 20:18 ` Robert Dailey
2014-08-19 19:30 ` Heiko Voigt
2014-08-19 20:23 ` Robert Dailey
2014-08-19 20:57 ` Heiko Voigt
2014-08-20 13:18 ` Robert Dailey
2014-08-21 12:37 ` Heiko Voigt
2014-08-19 16:07 ` Robert Dailey
2014-08-22 16:00 ` Marc Branchaud
2014-08-24 13:34 ` Heiko Voigt
2014-08-25 14:29 ` Robert Dailey
2014-08-25 14:32 ` Robert Dailey
2014-08-26 6:28 ` Heiko Voigt
2014-08-26 15:18 ` Robert Dailey
2014-08-26 20:34 ` Heiko Voigt
2014-08-25 13:48 ` Robert Dailey
2014-08-28 17:44 ` Marc Branchaud
2014-08-28 19:35 ` Heiko Voigt
2014-08-29 15:09 ` Marc Branchaud
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140818205505.GA20185@google.com \
--to=jrnieder@gmail.com \
--cc=Jens.Lehmann@web.de \
--cc=git@vger.kernel.org \
--cc=hvoigt@hvoigt.net \
--cc=rcdailey.lists@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).