The '--ignore-space-change' option, and '--ignore-all-space' for
that matter, to the 'diff' and 'blame' commands doesn't seem to
ignore changes in the EOL style. I really expect each of:
--ignore-eol-style
--ignore-space-change
--ignore-all-space
in the given order to include the effect of the previous one. There
are many files which get initially created on Windows with CRLF
line-endings, but without the 'svn:eol-style=native' property set.
Then at some revision this property gets set and it gets very
difficult track/find the origin of past changes, onwards. The
problem gets messier when the EOL style changes to LF and CRLF
number of times before the 'svn:eol-style' gets properly set.
Now, one could think:
svn diff / blame -x --ignore-eol-style ...
should be sufficient. But then often I need to use:
svn diff / blame -x --ignore-space-change ...
to ignore any space changes, e.g. changes to "tabs vs. spaces-only"
to the indentation (and elsewhere), which becomes impossible once
the file has changed the EOL style number of times.
Is the current behavior of the space ignoring options intended, or
it appears omission?
FWIW, I'm on Windows and I workaround the problem by having
installed the 'diff' command from the GnuWin32 [1] packages, which
doesn't seem to care about EOL style differences (treats them as equal):
svn diff / blame --diff-cmd diff -x "--ignore-space-change ..." ...
It would be really nice if the SVN default internal diff
implementation adds the effect of '--ignore-eol-style' to the
'--ignore-space-change' and '--ignore-all-space' options.
[1] http://gnuwin32.sourceforge.net/
--
Stanimir