Re: [PATCH] git diff ignore-space options should ignore missing EOL at EOF differences

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

 



2009/2/15 Johannes Schindelin <Johannes.Schindelin@xxxxxx>:
> Hi,
>
> On Sun, 15 Feb 2009, demerphq wrote:
>
>>  t/t4015-diff-whitespace.sh             |   79 ++++++++++++++++++++++++++++++++
>
> Phew, you certainly want to make sure that it works...

Yeah, Exhaustive testing is good. (When it doesn't take hours and
hours to run :-)

>
>> @@ -33,7 +33,14 @@ extern "C" {
>>  #define XDF_IGNORE_WHITESPACE_CHANGE (1 << 3)
>>  #define XDF_IGNORE_WHITESPACE_AT_EOL (1 << 4)
>>  #define XDF_PATIENCE_DIFF (1 << 5)
>> -#define XDF_WHITESPACE_FLAGS (XDF_IGNORE_WHITESPACE |
>> XDF_IGNORE_WHITESPACE_CHANGE | XDF_IGNORE_WHITESPACE_AT_EOL)
>> +#define XDF_IGNORE_WHITESPACE_AT_EOF (1 << 6)
>> +/*
>> + * note this is deliberately a different define from XDF_WHITESPACE_FLAGS as
>> + * there could be a new whitespace related flag which would not be part of
>> + * the XDF_IGNORE_WHITESPACE_AT_EOF_ANY flags.
>> + */
>> +#define XDF_IGNORE_WHITESPACE_AT_EOF_ANY
>> (XDF_IGNORE_WHITESPACE_AT_EOL | XDF_IGNORE_WHITESPACE_CHANGE |
>> XDF_IGNORE_WHITESPACE | XDF_IGNORE_WHITESPACE_AT_EOF)
>> +#define XDF_WHITESPACE_FLAGS (XDF_IGNORE_WHITESPACE |
>> XDF_IGNORE_WHITESPACE_CHANGE | XDF_IGNORE_WHITESPACE_AT_EOL |
>> XDF_IGNORE_WHITESPACE_AT_EOF)
>
> As I told you on IRC, I do not follow that reasoning.  Rather, I would add
> the exceptions to xemit.c, when -- and if(!) -- they are needed.

Yeah I know you said that, and I *think* I followed all your advice
(much appreciated by the way) except for that point as I've been
nailed by inappropriate addition of flags to masks before, and well,
you know, once bitten twice shy, and patchers perogative and all that
eh? :-)

For instance what happens if someone adds XDF_IGNORE_WHITESPACE_AT_SOL
(start of line) or XDF_IGNORE_SPACES_WHERE_TABS_EXPECTED in the
future, and then adds it to XDF_IGNORE_WHITESPACE_FLAGS? And
personally such options seem quite reasonable to me. It just happens
to be coincidence that all of the currently existing flags also impact
this particular behaviour, IMO it wouldnt have been so strange to find
one that didn't.

And thanks again for your handholding on this patch. I hope the
pasting of it inline was correct. I'm not sure where I should have
said that it was a patch against the master branch without it also
appearing in the commit body. Should I haved attached the format-patch
file as well?

Also, on a related note I personally would have reorganized the flags
so that the ones relating to whitespace control are in a different bit
range than the ones that have to do with other things. The precedent
in the file appeared to not follow this approach as the patience flag
was "at the end", so i didnt modify this, and just stuck the new flag
also at the end. I think it would be better to do a lowbit moving up
and highbit moving down approach or something like that as otherwise
when new flags get added over time the different types of flags are
interspersed and it becomes a real mess to maintain and understand. In
fact, I dont really "get" the whitespace flags as currently
implemented. Why does "ignore all whitespace" get its own bit?
Shouldn't it just be a mask of all the other whitespace bits?

cheers,
Yves


-- 
perl -Mre=debug -e "/just|another|perl|hacker/"
--
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]

  Powered by Linux