Re: Bypassing hooks while cherry-picking
- From
Grégoire PARIS <postmaster@greg0ire.fr>
- Date
- Mar 3, 2016, 23:18 UTC
- Message-ID
- <56D8C661.9000303@greg0ire.fr>
- In-Reply-To
- <xmqqk2lj189l.fsf@gitster.mtv.corp.google.com>
Le 03/03/2016 23:55, Junio C Hamano a écrit :
Show 32 quoted lines
> Grégoire PARIS <postmaster@greg0ire.fr> writes: > >> Not sure how cherry-picking is managed, and whether commit is able to >> see that we are doing a cherry-pick, and end it up properly. Anyway, >> with Kevin's patch, we should be able to happily use cherry-pick > [Please do not top post] > > It is somewhat sad to see such a response as that is backwards. > > "cherry-pick --continue" originally was "I am done with the commit I > was asked to deal with, so please replay the next one", and in order > to "be done with" the commit, you would used "git commit" yourself, > with whatever necessary options (e.g. --no-verify, -s, -c) you want > to affect the behaviour of the "git commit". > > It is a later invention that "cherry-pick --continue" additionally > creates a commit when the user, even though she claims to "be done > with", hasn't actually made the commit before going on to replay the > next one. It was accepted as a short-cut as most of the time you do > not give any option to your "git commit" invocation, but probably > was a misguided invention--it made new people somehow think that > they are not allowed to run "git commit" to conclude the conflict > resolution, when in reality that is an acceptable and primary way > to do so and "--continue" is a mere short-hand. > > As "git commit" does have options other than "--no-verify" that > affects the way it behaves, and can gain more such options in the > future, having to keep adding corresponding options to "cherry-pick > --continue --more-options" will not be a good solution in the longer > run. > >
Sorry for top-posting, I'll keep in mind to not do this.
You're describing very precisely how using cherry-pick --continue makes me feel. I checked again right now and even though there is a comment to make me understand that commit would do a great job at solving my problem (hint: and commit the result with 'git commit'), I failed to notice it.
I agree with you, adding every commit option is not a good solution… Maybe a good solution would be to display a special message when using cherry-pick --continue with unrecognized options? Like for instance
> hint: try git commit --no-verify, then git cherry-pick --continue to replay the next commit
What do you think?
-- greg0ire