Re: [PATCHv8 1/9] submodule-config: keep update strategy around
- From
Jonathan Nieder <jrnieder@gmail.com>
- Date
- Feb 5, 2016, 20:33 UTC
- Message-ID
- <20160205203309.GA28749@google.com>
- In-Reply-To
- <CAGZ79kYfxYAZif4P0GRdy5LQVXuHAyr3VtwEtX7Uu0sDyD4yoQ@mail.gmail.com>
Stefan Beller wrote:
> On Thu, Feb 4, 2016 at 4:59 PM, Jonathan Nieder <jrnieder@gmail.com> wrote: >> Stefan Beller wrote:
Show 13 quoted lines
>>> +++ b/submodule-config.h
>>> @@ -14,6 +14,7 @@ struct submodule {
>>> + const char *update;
>>
>> gitmodules(5) tells me the only allowed values are checkout, rebase,
>> merge, and none. I wouldn't know at a glance how to match against
>> those in calling code. Can this be an enum?
>
> "Note that the !command form is intentionally ignored here for
> security reasons."
>
> However you can overwrite the update field in .git/config to be "! [foo]",
> which we also need to support, so let's keep it a string for now?I had forgotten about "!command". I think making it a string makes the field hard to use: how do I determine whether it was checkout, rebase, merge, custom, or none? Are they case-sensitive? Am I supposed to strip whitespace?
One possibility would be to have an enum and a string:
enum submodule_update_type update; const char *update_command;
Thanks, Jonathan