• Johannes Schindelin's avatar
    range-diff: first rudimentary implementation · d9c66f0b
    Johannes Schindelin authored
    At this stage, `git range-diff` can determine corresponding commits
    of two related commit ranges. This makes use of the recently introduced
    implementation of the linear assignment algorithm.
    
    The core of this patch is a straight port of the ideas of tbdiff, the
    apparently dormant project at https://github.com/trast/tbdiff.
    
    The output does not at all match `tbdiff`'s output yet, as this patch
    really concentrates on getting the patch matching part right.
    
    Note: due to differences in the diff algorithm (`tbdiff` uses the Python
    module `difflib`, Git uses its xdiff fork), the cost matrix calculated
    by `range-diff` is different (but very similar) to the one calculated
    by `tbdiff`. Therefore, it is possible that they find different matching
    commits in corner cases (e.g. when a patch was split into two patches of
    roughly equal length).
    Signed-off-by: Johannes Schindelin's avatarJohannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    d9c66f0b
range-diff.c 7.22 KB