Re: git diff flags

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]