cherry-pick: handle "-" after parsing options
authorJeff King <peff@peff.net>
Thu, 10 Oct 2013 16:41:17 +0000 (12:41 -0400)
committerJonathan Nieder <jrnieder@gmail.com>
Thu, 10 Oct 2013 22:33:46 +0000 (15:33 -0700)
commitd644c5502fc576904a07fab35f43540fa9f2e7c2
tree1ff885551bca9cb7c7e6c527fc49a755d20b93e1
parent182d7dc46b23b4a20985c93ea3a6ba3e6f267ff6
cherry-pick: handle "-" after parsing options

Currently, we only try converting argv[1] from "-" into "@{-1}".  This
means we do not notice "-" when used together with an option.  Worse,
when "git cherry-pick" is run with no options, we segfault.  Fix this
by doing the substitution after we have checked that there is
something in argv to cherry-pick and know any remaining options are
meant for the revision-listing machinery.

This still does not handle "-" after the first non-cherry-pick option.
For example,

git cherry-pick foo~2 - bar~5

and

git cherry-pick --no-merges -

will still dump usage.

Reported-by: Stefan Beller <stefanbeller@googlemail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
builtin/revert.c
t/t3501-revert-cherry-pick.sh