From: Jonathan Nieder Date: Fri, 05 Feb 2016 20:33:09 GMT Subject: Re: [PATCHv8 1/9] submodule-config: keep update strategy around Message-ID: <20160205203309.GA28749@google.com> In-Reply-To: Stefan Beller wrote: > On Thu, Feb 4, 2016 at 4:59 PM, Jonathan Nieder wrote: >> Stefan Beller wrote: >>> +++ 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