Date: Thu, 15 Jun 2000 13:52:29 -0600 (MDT) From: Kevin Pearson <[EMAIL PROTECTED]> This seemed to be related to the problem that was discovered by Noah Friedman <[EMAIL PROTECTED]> and patched by Paul Eggert <[EMAIL PROTECTED]> back in November of 1996. Paul's patch he in-effect turned off shift_boundaries (which optimizes the diff by merging hunks if possible.) This fixed the problem described by Noah. As I mentioned in that message, that patch was a quick hack. What I hope is a better fix can be found in the latest test version of diffutils, at: ftp://alpha.gnu.org/gnu/diffutils/diffutils-2.7.2.tar.gz It adds a new option inhibit_hunk_merge which turns off hunk merging, which is causing most of the problem. Even this better fix is not ideal, because what we want is a true 3-way diff, that can inspect all three input files simultaneously and minimize the resulting output. But that's a long story. To test diff3, run the the command: diff3 -E -am testcase0 testcase0-1.1 testcase0-1.1.2.2 and diff3 -E -am testcase1 testcase1-1.2 testcase0-1.1.2.1 I think you may be onto a bug here (even with diffutils 2.7.2), but I couldn't reproduce the problem with these test cases. Your patch to diffutils 2.7 made no difference in the output of the first command. For the second command, you didn't supply testcase1-1.2 or testcase0-1.1.2.1 in your message, so I created them with: co -p1.2 testcase1 >testcase1-1.2 co -p1.1.2.1 testcase0 >testcase0-1.1.2.1 After doing this, I found no difference in executing the second command between diffutils 2.7, 2.7 with your fix, and 2.7.2. The second command seemed a bit odd, as I would have expected the last file to be testcase1-1.1.2.1 instead of testcase0-1.1.2.1. So I also tried running "diff3 -E -am testcase1 testcase1-1.2 testcase1-1.1.2.1" but also got the same results with all three versions of diff. So I must be doing something wrong in trying to reproduce the bug. Can you help me out in trying to reproduce it, with diffutils only? Thanks.
