From: "Avery Pennarun" <apenwarr@gmail.com>
To: "Eyvind Bernhardsen" <eyvind-git@orakel.ntnu.no>
Cc: "Sam Vilain" <sam@vilain.net>,
"git@vger.kernel.org" <git@vger.kernel.org>
Subject: Re: git-submodule getting submodules from the parent repository
Date: Mon, 31 Mar 2008 17:36:35 -0400 [thread overview]
Message-ID: <32541b130803311436t7b5041a4pabface15aad8ce63@mail.gmail.com> (raw)
In-Reply-To: <834174D1-82F4-4438-9854-762F416BB5EF@orakel.ntnu.no>
On Mon, Mar 31, 2008 at 5:29 AM, Eyvind Bernhardsen
<eyvind-git@orakel.ntnu.no> wrote:
> On 31. mars. 2008, at 01.03, Avery Pennarun wrote:
> As I tried to explain, all the automatic push solutions I could come
> up with were flawed, so I decided not to use submodules at all and
> just have the build tool check out every module (that's what we
> currently do with CVS, so it's the easy way out anyway).
I even *use* git-submodule and had to modify my build scripts because
"git submodule init" and "git submodule update" don't seem to kick in
automatically for some reason. The ideal situation would be to have
git just manage the version control without having to babysit it, of
course. That's hard to do in the general case, but should be quite
possible in the limited situation that I'm proposing in this thread.
> If I understand you correctly, you want to be forced to create a
> branch and push to that? I don't think that works well with many
> developers pushing to a shared repository (my situation),
Hmm, this is curious. If you're *not* using submodules, then I don't
think you can push successfully without being on a branch, can you?
So the suggestion merely extends this behaviour to submodules.
(To be more precise, 'git push' seems only to be able to push branch
heads. When you're not using git-submodule, commits are by default
attached to branch heads, so this doesn't cause a problem. If you
disconnect your HEAD, trying to push will silently do nothing, because
it'll push some other branch head that hasn't changed, or maybe no
branch at all. But with git-submodule, the *default* is a
disconnected HEAD, which is too dangerous. I propose to simply have
it fail out in this case.)
If you 'git checkout -b branchname' inside a submodule, then 'git
push' will do the right thing, so I'm not sure what you'd want to be
more automagical than that.
> If you have local changes committed in a submodule that is updated by
> a pull in the main module, "submodule update" will silently overwrite
> them. I was wrong, though, because you can fix that just by making
> "submodule update" error out when a submodule doesn't have its HEAD
> where the main module thinks it should be.
Shouldn't "git merge" get a merge conflict if you've made a checkin
that changed the submodule pointer, then try to pull someone else's
checking that changes the submodules pointer to something else? It
would seem there's no better option than that.
While we're here, it's inconvenient to have to call "git submodule
update" at all when there *isn't* a conflict. It should always be
safe for git checkout or git merge to do that for you, no?
Thanks,
Avery
next prev parent reply other threads:[~2008-03-31 21:37 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-29 22:35 git-submodule getting submodules from the parent repository Avery Pennarun
2008-03-29 23:22 ` Sam Vilain
2008-03-30 13:32 ` Eyvind Bernhardsen
2008-03-30 17:48 ` Sam Vilain
2008-03-30 19:50 ` Eyvind Bernhardsen
2008-03-30 20:19 ` Sam Vilain
2008-03-31 10:05 ` Eyvind Bernhardsen
2008-03-30 23:03 ` Avery Pennarun
2008-03-31 9:29 ` Eyvind Bernhardsen
2008-03-31 21:36 ` Avery Pennarun [this message]
2008-04-01 23:05 ` Sam Vilain
2008-04-01 23:56 ` Avery Pennarun
2008-04-02 0:35 ` Junio C Hamano
2008-04-02 2:03 ` Avery Pennarun
2008-04-02 20:06 ` Sam Vilain
2008-04-02 21:32 ` Junio C Hamano
2008-03-30 23:00 ` Avery Pennarun
2008-04-01 23:10 ` Sam Vilain
2008-03-31 6:22 ` Johannes Sixt
2008-03-31 21:24 ` Avery Pennarun
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=32541b130803311436t7b5041a4pabface15aad8ce63@mail.gmail.com \
--to=apenwarr@gmail.com \
--cc=eyvind-git@orakel.ntnu.no \
--cc=git@vger.kernel.org \
--cc=sam@vilain.net \
/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).