Commit Briefs

cd25827e24 Neels Hofmeyr

myers_divide: stop traversing snakes after reasonable max effort (neels/max_effort)


8546b0450f Neels Hofmeyr

diff result: ensure sane order of result chunks

Ensure that a adjacent chunks of same type are combined, and that a minus block always precedes an adjacent plus block. The upcoming myers-divide optimization is prone to produce weird ordering of plus and minus chunks.


2c8a57df59 Neels Hofmeyr

add ARRAYLIST_INSERT()


44cf49504c Neels Hofmeyr

patience: error handling from diff_atoms_same()


ac2eeeffef Neels Hofmeyr

myers: error handling from diff_atoms_same()




3e6cba3a54 Stefan Sperling

replace enum diff_rc errors with plain errno values


80b447444e Stefan Sperling

fix build with 'make PROFILE=1' on OpenBSD



d362ea2e85 Stefan Sperling

move 'struct range' and related functions into the diff_ namespace

no functional change



0d27172a82 Neels Hofmeyr

KNF: use max 80 columns


61a7b57805 Neels Hofmeyr

KNF: function declaration return types on separate line


760fe30eb1 Neels Hofmeyr

diff cmdline tool: allow using Patience by -p arg



b47897f387 Neels Hofmeyr

add test012

test010 has a weird failure to find a good diff. This new test, when setting the permitted_state_size = 100, gives a shorter failure that test010, to allow easier debugging.



f71e809832 Neels Hofmeyr

fix diff_algo_myers_divide's finding of midpoints

When forwards and backwards traversals meet, the endpoints of the mid-snake are not the two points in kd_forward and kd_backward, but rather the section that was slid (if any) of the current forward/backward traversal only. For example: o-o-o | | o A | \ o o \ M |\ o o-o-o | | | o o X \ o \ o \ o The backward traversal reached M from the bottom and slid upwards. The forward traversal already reached X, which is not a straight line from M anymore, so picking a mid-snake from M to X would yield a mistake. The correct mid-snake is between M and A. M is where the bottom traversal hit the diagonal that the forwards traversal has already passed, and A is what it reaches when sliding up identical lines.


50198b5f2f Neels Hofmeyr

debug: myers graph dump tweaks

In debug output: fix some indents, fix printing of max state size, in myers graph, limit x axis labels to 2 digits, print colored markers of current myers graph positions, also print myers-divide positions in myers graph.


09c9539493 Neels Hofmeyr

comment tweak



501e780790 Neels Hofmeyr

add test010, test011


a5cbcf9c3c Neels Hofmeyr

Only print (unified) header in unified format.


9dabce8a40 Neels Hofmeyr

Remove unused `arbitrary_info'.