title: What's the difference between `git diff --patience` and `git diff --histogram`?
body: <p><a href="https://stackoverflow.com/questions/19949526/examples-of-different-results-produced-by-the-standard-myers-minimal-patienc">This earlier question</a> asked for the differences between 4 different Git diff strategies, but the only difference that was explained was the difference between <code>myers</code> and <code>patience</code>, which is pretty well explained <a href="http://alfedenzo.livejournal.com/170301.html" rel="noreferrer">elsewhere</a>.</p>
  
  <p>How does the <code>histogram</code> strategy work? What differentiates it from <code>patience</code>? The <a href="https://www.kernel.org/pub/software/scm/git/docs/git-diff.html" rel="noreferrer">git-diff man page</a> only says that it "extends the patience algorithm to "support low-occurrence common elements"." Other pages mention that it's faster, and that it comes from JGit, but they don't explain <em>where or how its algorithm or results will differ from <code>patience</code></em>.</p>
  
  <p><strong>Where can I find a description of the <code>histogram</code> algorithm relative to the <code>patience</code> algorithm</strong>, with the same level of detail as <a href="http://bramcohen.livejournal.com/73318.html" rel="noreferrer">Bram Cohen's original description of the <code>patience</code> algorithm</a>?</p>
  
  <p>(If it's just a matter of implementation performance with no case that will produce different results, why wasn't it just implemented as a new backend for <code>patience</code>?)</p>