diff: parse separate options like -S foo
Change the option parsing logic in revision.c to accept separate forms like `-S foo' in addition to `-Sfoo'. The rest of git already accepted this form, but revision.c still used its own option parsing. Short options affected are -S<string>, -l<num> and -O<orderfile>, for which an empty string wouldn't make sense, hence -<option> <arg> isn't ambiguous. This patch does not handle --stat-name-width and --stat-width, which are special-cases where diff_long_opt do not apply. They are handled in a separate patch to ease review. Original patch by Matthieu Moy, plus refactoring by Jonathan Nieder. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
64fdc08dac
commit
dea007fb4c
@ -208,6 +208,7 @@ log -p --first-parent master
|
||||
log -m -p --first-parent master
|
||||
log -m -p master
|
||||
log -SF master
|
||||
log -S F master
|
||||
log -SF -p master
|
||||
log --decorate --all
|
||||
log --decorate=full --all
|
||||
@ -282,4 +283,8 @@ diff master master^ side
|
||||
diff --dirstat master~1 master~2
|
||||
EOF
|
||||
|
||||
test_expect_success 'log -S requires an argument' '
|
||||
test_must_fail git log -S
|
||||
'
|
||||
|
||||
test_done
|
||||
|
||||
Reference in New Issue
Block a user