Re: [RFC/PATCH] submodule: add 'exec' option to submodule update
- From
Chris Packham <judge.packham@gmail.com>
- Date
- Jul 1, 2013, 09:21 UTC
- Message-ID
- <51D14A05.7030707@gmail.com>
- In-Reply-To
- <51D04F06.9000400@web.de>
On 01/07/13 03:30, Jens Lehmann wrote:
Show 24 quoted lines
> Am 29.06.2013 11:11, schrieb Chris Packham: >> On 28/06/13 22:42, Fredrik Gustafsson wrote: >>> technically it looks fine to me (except for the lack of tests) but I'm >>> not sure I follow the use case. >>> >>> In your case, you want to run a script to determinate if that certain >>> submodule should use merge or rebase depending on "whatever". And this >>> can't be done with git submodule foreach because you want to know the >>> sha1 to update to. Have I understood you correctly? >> >> Correct. We tend to have submodules that are just normal detached heads >> which we don't usually touch and others that are actively developed >> where we would use submodule.x.update=rebase (I personally do) but some >> developers want to use stgit on those repositories. >> >> Another approach could be to do a 'git pull --no-recurse-submodule' then >> use 'git submodule foreach script-that-does-the-rebase'. The benefit of >> the patch I sent is that it can be setup using the config variables[1] >> and updated the normal way along with the detached HEADs and those using >> plain git branches. > > Wouldn't a "stgit submodule update" (which would do the Right Thing for > submodules initialized with stgit by maybe just using the pull & foreach > logic you described) be a better UI for solving your problem?
Yeah I guess so. I was hoping to stay away from an stgit specific solution but I'm not hearing any other voices looking for such flexibility.
Show 13 quoted lines
>> There may be other use-cases for integration with other tools as well >> (e.g. something that updates a review tool when commits get rebased). >> >> -- >> [1] I'm not crazy about the name of submodule.*.update.command but I >> couldn't think of a better one. > > Hmm, if we go that route, why not do the same we do for aliases? If > the submodule.*.update setting is prefixed with a '!', we just execute > the shell command following. This would give everyone the freedom to > do arbitrary stuff if the current none, checkout, merge & rebase won't > do the trick without having to add another config option. >
Make sense. I'll give it a go.