Subject: Re: [PATCH, RFC] checkout: Attempt to checkout submodules

From: Jens Lehmann <[email-masked]>
Date: Mon, 23 Mar 2015 21:01:48 +0100

Am 20.03.2015 um 01:13 schrieb Trevor Saunders:
> On Thu, Mar 19, 2015 at 02:15:19PM -0700, Junio C Hamano wrote:
>> Trevor Saunders <[email-masked]> writes:
>> I have a feeling that an optional feature that allows "git submodule
>> update" to happen automatically from this codepath might be
>> acceptable by the submodule folks, and they might even say it does
>> not even have to be optional but should be enabled by default.
>
> ok, that seems fairly reasonable.  I do kind of wonder though if it
> shouldn't be 'git submodule update --checkout' but that would get us
> kind of back to where we started.  I guess since the default is checkout
> if you set the pref then you can be assumed to have some amount of idea
> what your doing.

Me thinks it should be "git checkout" for those submodules that have
their update setting set to 'checkout' (or not set at all). I'm not
sure yet if it makes sense to attempt a rebase or merge here, but that
can be added later if necessary.

>> But I do not think it would fly well to unconditionally run
>> "checkout -f" here.
>
> agreed

Using -f here is ok when you extend the appropriate verify functions
in unpack-trees.c to check that no modifications will be lost (unless
the original checkout is used with -f). See the commit 76dbdd62
("submodule: teach unpack_trees() to update submodules") in my github
repo at https://github.com/jlehmann/git-submod-enhancements for
the basic concept (There is already a fixup! for that a bit further
down the branch which handles submodule to file conversion, maybe one
or two other changes will be needed when the test suite covers all
relevant cases).