It turns out that telling handle_revision_opt() not to molest argv[left++] does not have heavy fallout. Junio C Hamano (3): handle_revision_opt(): do not update argv[left++] with an unknown arg setup_revisions(): swap if/else bodies to make the next step more readable setup_revisions(): allow a rev that begins with a dash revision.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) -- 2.12.0-rc1-212-ga9adfb24fa