Skip to content
  • Johannes Schindelin's avatar
    rebase -i: rearrange fixup/squash lines using the rebase--helper · c44a4c65
    Johannes Schindelin authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    This operation has quadratic complexity, which is especially painful
    on Windows, where shell scripts are *already* slow (mainly due to the
    overhead of the POSIX emulation layer).
    
    Let's reimplement this with linear complexity (using a hash map to
    match the commits' subject lines) for the common case; Sadly, the
    fixup/squash feature's design neglected performance considerations,
    allowing arbitrary prefixes (read: `fixup! hell` will match the
    commit subject `hello world`), which means that we are stuck with
    quadratic performance in the worst case.
    
    The reimplemented logic also happens to fix a bug where commented-out
    lines (representing empty patches) were dropped by the previous code.
    
    While at it, clarify how the fixup/squash feature works in `git rebase
    -i`'s man page.
    
    Signed-off-by: default avatarJohannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    c44a4c65