Tay Ray Chuan [off-list ref] writes:
Factor out the comprehensive non-whitespace regex in use by PATTERNS and
IPATTERN and use it as the word-diff regex for the default diff driver.
Why?
I seem to recall that the motivation for keeping the original code as-is
instead of just emulating its behavior with a default regex was that it
is faster. So disabling the default mode should at least have an
advantage?
</devils-advocate>
--
Thomas Rast
trast@{inf,student}.ethz.ch
Hi,
Thomas, first off, thanks for looking through this.
On Thu, Jan 12, 2012 at 4:05 AM, Thomas Rast [off-list ref] wrote:
Tay Ray Chuan [off-list ref] writes:
quoted
Factor out the comprehensive non-whitespace regex in use by PATTERNS and
IPATTERN and use it as the word-diff regex for the default diff driver.
Why?
I seem to recall that the motivation for keeping the original code as-is
instead of just emulating its behavior with a default regex was that it
is faster. So disabling the default mode should at least have an
advantage?
</devils-advocate>
If you're talking about speed, yeah, that's probably true.
But I think it's worthwhile to trade-off performance for a sensible
default. Something like
matrix[a,b,c]
matrix[d,b,c]
gives
matrix[[-a-]{+d+},b,c]
and when we have
ImagineALanguageLikeFoo
ImagineALanguageLikeBar
we get
ImagineALanguageLike[-Foo-]{+Bar+}
(But I cheated. Foo and Bar have no common characters in common; if
they did, the word diff would be messy.)
Both of which seem sensible. From a usability/effectiveness
standpoint, I think it's more useful than what the current word-diff
defaults to - the whole line is taken as a "word", with the pre-image
shown as deleted and the post-image as added; we don't even try to run
LCS on it.
Examples are lifted from:
[1] http://article.gmane.org/gmane.comp.version-control.git/105896
[2] http://article.gmane.org/gmane.comp.version-control.git/105237
--
Cheers,
Ray Chuan