From: Stefan Beller Date: Fri, 05 Feb 2016 20:36:55 GMT Subject: Re: [PATCHv8 1/9] submodule-config: keep update strategy around Message-ID: In-Reply-To: <20160205203309.GA28749@google.com> On Fri, Feb 5, 2016 at 12:33 PM, Jonathan Nieder wrote: > 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; ok, that makes sense. > > Thanks, > Jonathan