-bytes branch reports bogus conflict that trunk doesn't

2011-01-02 Thread Daniel Shahaf
Johan,

I saw your sync merge, so I ran 'svn up' with intent to rebuild.  When
I ran that 'up' with the branch build, I got a conflict, which didn't
appear when I ran it with a trunk build.  (See attached transcript.)

Furthermore, the conflict resolution (a) marked all the head of the file
as conflict (which is wrong; line 49 did change, but the first
20-something lines are identical), and (b) deleted everything after
line 232.

I realize that (a) is an outstanding issue (discussed in another thread
this weekend), but I don't recall that (b) is a known issue.

Daniel

% pwd
/home/daniel/src/svn/bytes
% .svn
/home/daniel/src/svn/bytes
% $svnversion
1054012M
% $svn st -q
M   subversion/libsvn_diff/diff_memory.c
M   subversion/libsvn_diff/diff3.c
% $svn di
Index: subversion/libsvn_diff/diff_memory.c
===
--- subversion/libsvn_diff/diff_memory.c(revision 1054012)
+++ subversion/libsvn_diff/diff_memory.c(working copy)
@@ -104,6 +104,7 @@
 {
   /* Do nothing: everything is already there and initialized to 0 */
   return SVN_NO_ERROR;
+  /* ### */
 }
 
 
Index: subversion/libsvn_diff/diff3.c
===
--- subversion/libsvn_diff/diff3.c  (revision 1054012)
+++ subversion/libsvn_diff/diff3.c  (working copy)
@@ -243,18 +243,25 @@
 }
 
 
+static int hit = 1;
+
 svn_error_t *
 svn_diff_diff3(svn_diff_t **diff,
void *diff_baton,
const svn_diff_fns_t *vtable,
apr_pool_t *pool)
 {
+  svn_diff_datasource_e datasource[] = {svn_diff_datasource_original,
+svn_diff_datasource_modified,
+svn_diff_datasource_latest};
   svn_diff__tree_t *tree;
   svn_diff__position_t *position_list[3];
   svn_diff__lcs_t *lcs_om;
   svn_diff__lcs_t *lcs_ol;
+  apr_off_t prefix_lines;
   apr_pool_t *subpool;
   apr_pool_t *treepool;
+  hit++;
 
   *diff = NULL;
 
@@ -263,28 +270,33 @@
 
   svn_diff__tree_create(tree, treepool);
 
+  SVN_ERR(vtable-datasources_open(diff_baton, prefix_lines, datasource, 3));
+#if 0
+  SVN_DBG((prefix_lines = % APR_OFF_T_FMT \n, prefix_lines));
+#endif
+
   SVN_ERR(svn_diff__get_tokens(position_list[0],
tree,
diff_baton, vtable,
svn_diff_datasource_original,
-   FALSE,
-   0,
+   TRUE,
+   prefix_lines,
subpool));
 
   SVN_ERR(svn_diff__get_tokens(position_list[1],
tree,
diff_baton, vtable,
svn_diff_datasource_modified,
-   FALSE,
-   0,
+   TRUE,
+   prefix_lines,
subpool));
 
   SVN_ERR(svn_diff__get_tokens(position_list[2],
tree,
diff_baton, vtable,
svn_diff_datasource_latest,
-   FALSE,
-   0,
+   TRUE,
+   prefix_lines,
subpool));
 
   /* Get rid of the tokens, we don't need them to calc the diff */
% $svn up --accept postpone -q
% $svn st -q
C   subversion/libsvn_diff/diff_memory.c
M   subversion/libsvn_diff/diff3.c
% $svn di su*/*ff/*memory.c
Index: subversion/libsvn_diff/diff_memory.c
===
--- subversion/libsvn_diff/diff_memory.c(revision 1054447)
+++ subversion/libsvn_diff/diff_memory.c(working copy)
@@ -1,3 +1,4 @@
+ .mine
 /*
  * diff_memory.c :  routines for doing diffs on in-memory data
  *
@@ -34,7 +35,45 @@
 #include svn_utf.h
 #include diff.h
 #include svn_private_config.h
+===
+/*
+ * diff_memory.c :  routines for doing diffs on in-memory data
+ *
+ * 
+ *Licensed to the Apache Software Foundation (ASF) under one
+ *or more contributor license agreements.  See the NOTICE file
+ *distributed with this work for additional information
+ *regarding copyright ownership.  The ASF licenses this file
+ *to you under the Apache License, Version 2.0 (the
+ *License); you may not use this file except in compliance
+ *with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *Unless required by applicable law or agreed to in writing,
+ *software distributed under the License is distributed on an
+ *AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *KIND, either 

Re: -bytes branch reports bogus conflict that trunk doesn't

2011-01-02 Thread Johan Corveleyn
On Sun, Jan 2, 2011 at 7:36 PM, Daniel Shahaf danie...@apache.org wrote:
 Johan,

 I saw your sync merge, so I ran 'svn up' with intent to rebuild.  When
 I ran that 'up' with the branch build, I got a conflict, which didn't
 appear when I ran it with a trunk build.  (See attached transcript.)

Did you do that with a build of HEAD of diff-optimizations-bytes (i.e.
only changes to diff2 behavior)? Or with a build where the patch for
diff3 was applied?

Johan

 Furthermore, the conflict resolution (a) marked all the head of the file
 as conflict (which is wrong; line 49 did change, but the first
 20-something lines are identical), and (b) deleted everything after
 line 232.

 I realize that (a) is an outstanding issue (discussed in another thread
 this weekend), but I don't recall that (b) is a known issue.

 Daniel




Re: -bytes branch reports bogus conflict that trunk doesn't

2011-01-02 Thread Daniel Shahaf
Johan Corveleyn wrote on Sun, Jan 02, 2011 at 20:13:59 +0100:
 On Sun, Jan 2, 2011 at 7:36 PM, Daniel Shahaf danie...@apache.org wrote:
  Johan,
 
  I saw your sync merge, so I ran 'svn up' with intent to rebuild.  When
  I ran that 'up' with the branch build, I got a conflict, which didn't
  appear when I ran it with a trunk build.  (See attached transcript.)
 
 Did you do that with a build of HEAD of diff-optimizations-bytes (i.e.
 only changes to diff2 behavior)? Or with a build where the patch for
 diff3 was applied?
 

The latter, I believe.

 Johan
 
  Furthermore, the conflict resolution (a) marked all the head of the file
  as conflict (which is wrong; line 49 did change, but the first
  20-something lines are identical), and (b) deleted everything after
  line 232.
 
  I realize that (a) is an outstanding issue (discussed in another thread
  this weekend), but I don't recall that (b) is a known issue.
 
  Daniel
 
 


Re: -bytes branch reports bogus conflict that trunk doesn't

2011-01-02 Thread Johan Corveleyn
On Sun, Jan 2, 2011 at 8:19 PM, Daniel Shahaf danie...@apache.org wrote:
 Johan Corveleyn wrote on Sun, Jan 02, 2011 at 20:13:59 +0100:
 On Sun, Jan 2, 2011 at 7:36 PM, Daniel Shahaf danie...@apache.org wrote:
  Johan,
 
  I saw your sync merge, so I ran 'svn up' with intent to rebuild.  When
  I ran that 'up' with the branch build, I got a conflict, which didn't
  appear when I ran it with a trunk build.  (See attached transcript.)

 Did you do that with a build of HEAD of diff-optimizations-bytes (i.e.
 only changes to diff2 behavior)? Or with a build where the patch for
 diff3 was applied?


 The latter, I believe.

Phew, that's a relief :-).

I'm pretty confident of the diff2 changes that are currently
committed, but the diff3 patch posted yesterday is definitely broken.

Interesting info, none the less, to see how it's broken, so thanks.
I'll see if this helps me understand where it's going wrong ...

 Johan

  Furthermore, the conflict resolution (a) marked all the head of the file
  as conflict (which is wrong; line 49 did change, but the first
  20-something lines are identical), and (b) deleted everything after
  line 232.
 
  I realize that (a) is an outstanding issue (discussed in another thread
  this weekend), but I don't recall that (b) is a known issue.
 
  Daniel
 
 



Re: -bytes branch reports bogus conflict that trunk doesn't

2011-01-02 Thread Daniel Shahaf
Johan Corveleyn wrote on Sun, Jan 02, 2011 at 20:45:02 +0100:
 On Sun, Jan 2, 2011 at 8:19 PM, Daniel Shahaf danie...@apache.org wrote:
  Johan Corveleyn wrote on Sun, Jan 02, 2011 at 20:13:59 +0100:
  On Sun, Jan 2, 2011 at 7:36 PM, Daniel Shahaf danie...@apache.org wrote:
   Johan,
  
   I saw your sync merge, so I ran 'svn up' with intent to rebuild.  When
   I ran that 'up' with the branch build, I got a conflict, which didn't
   appear when I ran it with a trunk build.  (See attached transcript.)
 
  Did you do that with a build of HEAD of diff-optimizations-bytes (i.e.
  only changes to diff2 behavior)? Or with a build where the patch for
  diff3 was applied?
 
 
  The latter, I believe.
 
 Phew, that's a relief :-).
 
 I'm pretty confident of the diff2 changes that are currently
 committed, but the diff3 patch posted yesterday is definitely broken.
 

I didn't use the patch you posted.  I believe I used the patch
reproduced within the transcript.

 Interesting info, none the less, to see how it's broken, so thanks.
 I'll see if this helps me understand where it's going wrong ...
 

Happy digging :-)

Daniel

  Johan
 
   Furthermore, the conflict resolution (a) marked all the head of the file
   as conflict (which is wrong; line 49 did change, but the first
   20-something lines are identical), and (b) deleted everything after
   line 232.
  
   I realize that (a) is an outstanding issue (discussed in another thread
   this weekend), but I don't recall that (b) is a known issue.
  
   Daniel