You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by jc...@apache.org on 2011/01/22 22:36:02 UTC

svn commit: r1062280 - /subversion/branches/diff-optimizations-bytes/BRANCH-README

Author: jcorvel
Date: Sat Jan 22 21:36:02 2011
New Revision: 1062280

URL: http://svn.apache.org/viewvc?rev=1062280&view=rev
Log:
On the diff-optimizations-bytes branch:

* BRANCH-README
  Move one of the wild ideas to a "Rejected ideas" section, because it's a
  bad idea. Trying to skip a mismatching line to keep forward scanning going
  can lead to missynchronization.

Modified:
    subversion/branches/diff-optimizations-bytes/BRANCH-README

Modified: subversion/branches/diff-optimizations-bytes/BRANCH-README
URL: http://svn.apache.org/viewvc/subversion/branches/diff-optimizations-bytes/BRANCH-README?rev=1062280&r1=1062279&r2=1062280&view=diff
==============================================================================
--- subversion/branches/diff-optimizations-bytes/BRANCH-README (original)
+++ subversion/branches/diff-optimizations-bytes/BRANCH-README Sat Jan 22 21:36:02 2011
@@ -32,9 +32,6 @@ TODO:
   * revv svn_diff.h#svn_diff_fns_t             []
 
 Other wild ideas (may or may not be worth pursuing):
-  * Make prefix scanning able to skip 1 or a couple of non-matching lines, if
-    it is able to find strictly more matching lines after that, to keep the
-    prefix scanning going.
   * Take advantage of the fact that matching lines often come in batches: when
     inserting a new line into the token tree, and the previous line had a
     match, first try to match the new token with the successor of the
@@ -42,6 +39,26 @@ Other wild ideas (may or may not be wort
   * Add some balancing to the token tree in token.c#svn_diff__tree_insert_token
     to make sure it doesn't degenerate. We may want to investigate first
     whether non-balancedness is really a problem in normal use cases.
+    
+Rejected ideas:
+  * Make prefix scanning able to skip 1 or a couple of non-matching lines, if
+    it is able to find strictly more matching lines after that, to keep the
+    prefix scanning going.
+    
+    This is not a good idea, because it can lead to bad cases of
+    missynchronization (see [3]):
+    
+      bxxaxxbxx
+       || ||
+      axxbxx
+
+    instead of (longest common subsequence):
+    
+      bxxaxxbxx
+        //////
+       axxbxx
 
 [1] http://en.wikipedia.org/wiki/Longest_common_subsequence_problem#Reduce_the_problem_set
-[2] http://svn.haxx.se/dev/archive-2011-01/0005.shtml
\ No newline at end of file
+[2] http://svn.haxx.se/dev/archive-2011-01/0005.shtml
+[3] Miller, W., and Myers, E.W. "A File Comparison Program.", Software - 
+    Practice & Experience 15 (1985), pp. 1025-1040.
\ No newline at end of file