I believe that the diff algorithms available are the same one's in GNU diff. From https://www.gnu.org/software/diffutils/manual/html_node/diff-Performance.html: """ The way that GNU diff determines which lines have changed always comes up with a near-minimal set of differences. Usually it is good enough for practical purposes. If the diff output is large, you might want diff to use a modified algorithm that sometimes produces a smaller set of differences. The --minimal (-d) option does this; however, it can also cause diff to run more slowly than usual, so it is not the default behavior. """ Since it has been that way decades before git even existed, I suspect (but do not know) that, yes, analysis has been performed, and it makes sense to keep the current default. Then again, in the decades sense, the entire stack from hardware to compilers has improved, and maybe it does deserve a revisit. You could check whatever email archives is used for diffutils and see if there has been any discussion on it recently (say, last 5 years?). As you pointed out, you can set it yourself and see what happens over time. Cheers, mrc