Re: [PATCH 07/14] update submodules: introduce is_interesting_submodule
- From
Stefan Beller <sbeller@google.com>
- Date
- Feb 15, 2017, 18:46 UTC
- Message-ID
- <CAGZ79kbN4e4btgVzzW7yKyUuaf7htmYFutp7ALhtygsKpFsTyQ@mail.gmail.com>
- In-Reply-To
- <20170215170441.GB29448@google.com>
On Wed, Feb 15, 2017 at 9:04 AM, Brandon Williams <bmwill@google.com> wrote:
Show 39 quoted lines
> On 02/14, Stefan Beller wrote:
>> In later patches we introduce the --recurse-submodule flag for commands
>> that modify the working directory, e.g. git-checkout.
>>
>> It is potentially expensive to check if a submodule needs an update,
>> because a common theme to interact with submodules is to spawn a child
>> process for each interaction.
>>
>> So let's introduce a function that pre checks if a submodule needs
>> to be checked for an update.
>>
>> Signed-off-by: Stefan Beller <sbeller@google.com>
>> ---
>> submodule.c | 26 ++++++++++++++++++++++++++
>> submodule.h | 8 ++++++++
>> 2 files changed, 34 insertions(+)
>>
>> diff --git a/submodule.c b/submodule.c
>> index c0060c29f2..4c33374ae8 100644
>> --- a/submodule.c
>> +++ b/submodule.c
>> @@ -551,6 +551,32 @@ void set_config_update_recurse_submodules(int value)
>> config_update_recurse_submodules = value;
>> }
>>
>> +int submodules_interesting_for_update(void)
>> +{
>> + /*
>> + * Update can't be "none", "merge" or "rebase",
>> + * treat any value as OFF, except an explicit ON.
>> + */
>> + return config_update_recurse_submodules == RECURSE_SUBMODULES_ON;
>> +}
>> +
>> +int is_interesting_submodule(const struct cache_entry *ce)
>
> Is there perhaps a more descriptive function name we could use instead
> of "is_interesting"? The problem is that its difficult to know why its
> interesting or for what purpose it is interesting.I should finish the background story patch first. By 'is_interesting' I mean * it is active/initialized/"The user expressed interested in the submodule by setting submodule.<name>.URL * its submodule.<name>.update strategy is != NONE.
The second point is interesting, as that entertains the thought that we'll pay attention to the submodule.<name>.update strategy at all and we may want to also implement rebase/merge eventually.
So I think we'd want to tighten that down to "checkout" only for now.
Thanks, Stefan