• Ben Peart's avatar
    add status config and command line options for rename detection · e8b2dc2c
    Ben Peart authored
    After performing a merge that has conflicts git status will, by default,
    attempt to detect renames which causes many objects to be examined.  In a
    virtualized repo, those objects do not exist locally so the rename logic
    triggers them to be fetched from the server. This results in the status call
    taking hours to complete on very large repos vs seconds with this patch.
    
    Add a new config status.renames setting to enable turning off rename
    detection during status and commit.  This setting will default to the value
    of diff.renames.
    
    Add a new config status.renamelimit setting to to enable bounding the time
    spent finding out inexact renames during status and commit.  This setting
    will default to the value of diff.renamelimit.
    
    Add --no-renames command line option to status that enables overriding the
    config setting from the command line. Add --find-renames[=<n>] command line
    option to status that enables detecting renames and optionally setting the
    similarity index.
    Reviewed-by: Elijah Newren's avatarElijah Newren <newren@gmail.com>
    Original-Patch-by: default avatarAlejandro Pauly <alpauly@microsoft.com>
    Signed-off-by: default avatarBen Peart <Ben.Peart@microsoft.com>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    e8b2dc2c
wt-status.c 65.3 KB