From: Tim Harper <timcharper@gmail.com>
To: "Avery Pennarun" <apenwarr@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: Making submodules easier to work with (auto-update on checkout or merge, stash & restore submodules)
Date: Wed, 30 Apr 2008 15:37:16 -0600 [thread overview]
Message-ID: <EFEF26F9-D5D6-4BAC-9A8F-6D96E45AFAF7@gmail.com> (raw)
In-Reply-To: <32541b130804301331o70310831raf71db7cbb51d507@mail.gmail.com>
On Apr 30, 2008, at 2:31 PM, Avery Pennarun wrote:
> On 4/30/08, Tim Harper <timcharper@gmail.com> wrote:
>>> The problem, of course, is that you can easily have valuable, but
>>> not-tracked, files in there. Deleting the submodule is therefore no
>>> option.
>>
>> Submodules are not deleted. They are moved out of the working copy
>> into a
>> folder in .git. Therefore, upon changing back to the branch with the
>> submodule, they are restored, without nay a hair on their head lost.
>
> <drool>
>
> Yes! I'm a little sad that I didn't think of that, because it sounds
> like *exactly* what I want.
>
Glad to hear I'm not the only one who feels that way :)
> What about the following case:
> - submodule matches the super module checkin
?
>
> - make changes to submodule but to *not* commit them
Changes will never be lost, because the submodule is either stashed
away, working copy and all, or a "checkout" command is issued to
change the HEAD pointer. The latter is like changing branches with
uncommitted code - the changes will either be carried, and possibly
conflict.
>
> - switch supermodule branches, which should checkout a different
> submodule
Submodule is automatically changed for you, so changing branches makes
sure you always have the "whole project". Recursion isn't handled at
the time being, so it only works for 1 level deep.
>
> - submodule checkout causes a conflict with uncommitted files
Oooh - this could be a problem currently, especially if you're not on
a branch. If you have to resolve conflicts the way to resolve them is
to commit, and you can't switch to a branch to commit unless you
resolve your issues. In which case, you'll probably want to resolve,
commit, then create a new branch with your current HEAD, then merge it
into a branch. I'll visit that as issues arise. This is bleeding
edge experimentation here :)
>
>
> What will/should happen here? It seems like either the supermodule's
> submodule pointer won't be set properly (ie. git-submodule-update will
> fail, but the supermodule won't be marked as conflicted, thus
> git-commit in the supermodule will commit the wrong submodule
> revision) or else submodule files might have to be lost or something.
This is a good point: I don't believe that submodules have anyway to
mark the submodule revision as "conflicted". In order for this
concept to be handled in its full glory, that will most certainly need
to be handled.
>
>
> Also, someone earlier asked for a link to your work. I'd like to see
> it too, as I don't know what a "textmate git bundle" is. I gather
> textmate is a MacOS X program, but I don't know what that has to do
> with git-submodule :)
>
TextMate is an editor for MacOSX.
Here's a link to the bundle. It's written in ruby.:
http://github.com/timcharper/git-tmbundle/
What does it have to do with submodules? It's essentially a "GUI" for
git. It provides automation for a lot of common tasks also. My team
has a need for submodules, but unfortunately in their current state I
couldn't recommend it to them, so I "smoothed over" the rough edges by
automating a lot of the awkwardness. So far, it's been working well
for us.
> Thanks,
>
> Avery
Thank you!
Tim
next prev parent reply other threads:[~2008-04-30 21:38 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-30 4:08 Making submodules easier to work with (auto-update on checkout or merge, stash & restore submodules) Tim Harper
2008-04-30 4:47 ` Tim Harper
2008-04-30 6:14 ` Andreas Ericsson
2008-04-30 10:31 ` Johannes Schindelin
2008-04-30 16:47 ` Avery Pennarun
2008-04-30 17:21 ` Ping Yin
2008-04-30 19:55 ` Roman Shaposhnik
2008-04-30 20:26 ` Avery Pennarun
2008-04-30 20:19 ` Tim Harper
2008-04-30 20:31 ` Avery Pennarun
2008-04-30 21:37 ` Tim Harper [this message]
2008-04-30 21:48 ` Avery Pennarun
2008-04-30 22:23 ` Roman Shaposhnik
2008-04-30 22:28 ` Avery Pennarun
2008-05-01 18:38 ` Making submodules easier to work with Finn Arne Gangstad
2008-05-01 19:55 ` Avery Pennarun
2008-05-06 23:47 ` Roman Shaposhnik
2008-05-07 16:14 ` Avery Pennarun
2008-05-08 1:13 ` Ping Yin
2008-05-01 23:29 ` Steven Grimm
2008-05-06 23:17 ` Roman Shaposhnik
2008-05-01 4:56 ` Making submodules easier to work with (auto-update on checkout or merge, stash & restore submodules) Ping Yin
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=EFEF26F9-D5D6-4BAC-9A8F-6D96E45AFAF7@gmail.com \
--to=timcharper@gmail.com \
--cc=apenwarr@gmail.com \
--cc=git@vger.kernel.org \
/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).