Re: [PATCH 1/2] diff: add --word-diff option that generalizes --color-words

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

 



Thomas Rast <trast@xxxxxxxxxxxxxxx> writes:

> This teaches the --color-words engine a more general interface that
> supports two new modes:
>
> * --word-diff=plain, inspired by the 'wdiff' utility (most similar to
>   'wdiff -n <old> <new>'): uses delimiters [-removed-] and {+added+}
>
> * --word-diff=porcelain, which generates an ad-hoc machine readable
>   format:
>   - each diff unit is prefixed by [-+ ] and terminated by newline as
>     in unified diff
>   - newlines in the input are output as a line consisting only of a
>     tilde '~'

Thanks.  This was a fun feature to look at.

I think it is a bug that "git show --word-diff" gives the colored format
output when I have "color.ui" configuration.

Even though I may have "color.ui = auto" in the configuration, I am
telling the command to do a --word-diff, not --color-words, from the
command line, and that should override color.ui settings.

So I think a request for --word-diff that is not --word-diff=color should
never use the --color-words _unless_ there is --color on the command line:

	git show --word-diff
	git show --word-diff=plain
	git show --word-diff=porcelain

All of the above may paint hunk headers and metainfo the usual way when I
have "color.ui" set, but I do not want them to be painting the diff part
like --color-words does.  I am fine if "porcelain" did not to paint the
metainfo, but I see this feature as three different output types of how
word diff is presented, so in that sense, it probably is better to force
scripts to explicitly ask for no-color, i.e.

	git show --no-color --word-diff=porcelain

if they want to read and interpret metainfo.

When the command line asks for color explicitly, then we should see the
good old --color-words:

	git show --color-words
	git show --word-diff=color

I am not sure what the following two should do.  One could argue that
these default to --color-words; or --color should apply only to the
coloring of metainfo but not the diff part:

        git show --color --word-diff
        git show --word-diff --color

I am slightly in favor of doing the same as --color-words, but people may
have different opinions.

The following of course should show the plain word diff but the metainfo
and friends colored:

        git show --word-diff=plain --color
        git show --color --word-diff=plain

It might be just the matter of defaulting --word-diff without "=<type>"
not to "auto" but to "plain".  I haven't looked at the code closely yet.
--
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]