I have a huge list of unit tests for Oddmuse ¹, and now I have to rewrite some of the tests. Why? Because of the new computer.
You cannot believe it? Neither can I! It turns out that *diff3* which I use for AutomaticMerge doesn’t return the same output for the same input. Sometimes it varies. And with the faster CPU, it seems to vary more. >{
Must be an artifact of the algorithm used. It must be a search algorithm that tries to find minimal sets of changes. With more CPU power and RAM the algorithm suddenly changed. Whereas I used to see this about once every two months, I see it now about three times every time I run the unit tests.
The reason I think that’s the solution to the riddle is the following line from the diff manpage:
-d --minimal Try hard to find a smaller set of changes.
That indicates some sort of searching with a cut-off criterium.
JoseEMarchesi on #editech @ freenode pointed me to DiffAlgorithm on WikiWiki for more information.
#Wikis