Thread (3 messages) flat view 3 messages, 2 authors, 2016-06-15

Re: git diff flags

From: Jeff King <hidden>
Date: 2016-06-15 22:48:46

On Fri, May 07, 2010 at 03:41:56PM -0400, Eli Barzilay wrote:
There's something strange with how `git diff' parses its flags:
Yep.
  git diff --some-bogus-flag
  --> complains as expected
Yep.
  git diff --follow
  --> works but there's no mention of this in the man page, and it
      doesn't look like it's doing anything
--follow is a "diff option" even though it is about revision
traversal. This is an artifact of the implementation, where
rename-following happens at a low level where we have only diff_options.
It should be possible to fix, though (parse the option at the revision
layer, but have it set the diff_options flag).
  git diff -C -M
  --> works as expected too
Yep.
  git diff -CM
  --> doesn't say anything (but it does exit with an error code)
The revision and diff parsers do not use parse_options, and thus don't
understand things like bundling. Even if they did, -C takes an optional
argument. In this case, the argument format is bogus, so it aborts, but
for some reason there is no error message (it is the same with -B, -M,
and -C).
  git diff -CM --I-can-write-anything here!
  --> does the same
Because we barfed at -CM already. It only looks funny because we didn't
bother to print a message.

Patches welcome.

-Peff
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help