Re: [PATCH 2/2] diff --word-diff: use non-whitespace regex by default

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: [PATCH 2/2] diff --word-diff: use non-whitespace regex by default

From: Thomas Rast <hidden>
Date: 2016-06-15 22:52:46

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

Re: [PATCH 2/2] diff --word-diff: use non-whitespace regex by default

From: Tay Ray Chuan <hidden>
Date: 2016-06-15 22:52:46

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help