The diff
implementation on OpenBSD has a non-standard -d
option with the following documentation:
-d
Try very hard to produce a diff as small as possible. This may consume a lot of processing power and memory when processing large files with many changes.
The GNU diff
implementation has the same option with the shorter documentation
-d
,--minimal
try hard to find a smaller set of changes
From time to time I've used this option just to see if it generates output that is in any shape or form different from the same diff
command without the option, but I've never seen any difference (no pun intended).
Could someone provide or point to an example where this option actually produces a different result from the same command without -d
? Alternatively, if someone could explain the circumstances required for this option to kick in. I'm also uncertain whether "minimal" means "fewer lines of output" or "fewer hunks".
An uneducated guess is that it has to do with very large hunks.
info diff performance
explains it IIRCgdiff -d
in order to check whether the additions to OpenBSD are useful. From my tests, I could not get any differences but it is obvious that the OpenBSD code slows down the performance which looks like a significant impact, since the diff Algorithm from Douglas McIlroy is faster than gdiff as long as you use normal file sizes.