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
@ -100,13 +100,11 @@ test_expect_success 'oneline' '
|
||||
|
||||
test_expect_success 'diff-filter=A' '
|
||||
|
||||
actual=$(git log --pretty="format:%s" --diff-filter=A HEAD) &&
|
||||
expect=$(echo fifth ; echo fourth ; echo third ; echo initial) &&
|
||||
test "$actual" = "$expect" || {
|
||||
echo Oops
|
||||
echo "Actual: $actual"
|
||||
false
|
||||
}
|
||||
git log --pretty="format:%s" --diff-filter=A HEAD > actual &&
|
||||
git log --pretty="format:%s" --diff-filter A HEAD > actual-separate &&
|
||||
printf "fifth\nfourth\nthird\ninitial" > expect &&
|
||||
test_cmp expect actual &&
|
||||
test_cmp expect actual-separate
|
||||
|
||||
'
|
||||
|
||||
|
Reference in New Issue
Block a user