On Thu, May 3, 2018 at 11:31 AM, Johannes Schindelin <johannes.schindelin@xxxxxx> wrote: > This is a heavily butchered version of the README written by Thomas > Rast and Thomas Gummerer, lifted from https://github.com/trast/tbdiff. > > Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx> > --- > diff --git a/Documentation/git-branch-diff.txt b/Documentation/git-branch-diff.txt > @@ -0,0 +1,239 @@ > +Algorithm > +--------- > + > +The general idea is this: we generate a cost matrix between the commits > +in both commit ranges, then solve the least-cost assignment. > + > +To avoid false positives (e.g. when a patch has been removed, and an > +unrelated patch has been added between two iterations of the same patch > +series), the cost matrix is extended to allow for that, by adding > +fixed-cost entries for wholesale deletes/adds. > + > +Example: let commits `1--2` be the first iteration of a patch series and s/let/Let/ > +`A--C` the second iteration. Let's assume that `A` is a cherry-pick of > +`2,` and `C` is a cherry-pick of `1` but with a small modification (say, > +a fixed typo). Visualize the commits as a bipartite graph: