log: diagnose -L used with pathspec as an error
authorJunio C Hamano <gitster@pobox.com>
Wed, 4 Nov 2020 17:54:01 +0000 (09:54 -0800)
committerJunio C Hamano <gitster@pobox.com>
Wed, 4 Nov 2020 21:38:33 +0000 (13:38 -0800)
commit39664cb0aca42f240468ddf84fe75df4172ab63f
tree8d30a57c2447d38bb76662d17a7578cbb103511a
parent898f80736c75878acc02dc55672317fcc0e0a5a6
log: diagnose -L used with pathspec as an error

The -L option is documented to accept no pathspec, but the
command line option parser has allowed the combination without
checking so far.  Ensure that there is no pathspec when the -L
option is in effect to fix this.

Incidentally, this change fixes another bug in the command line
option parser, which has allowed the -L option used together
with the --follow option.  Because the latter requires exactly
one path given, but the former takes no pathspec, they become
mutually incompatible automatically.  Because the -L option
follows renames on its own, there is no reason to give --follow
at the same time.

The new tests say they may fail with "-L and --follow being
incompatible" instead of "-L and pathspec being incompatible".
Currently the expected failure can come only from the latter, but
this is to futureproof them, in case we decide to add code to
explicititly die on -L and --follow used together.

Heled-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/log.c
t/t4211-line-log.sh