]> git.ipfire.org Git - thirdparty/git.git/commit - wt-status.c
add status config and command line options for rename detection
authorBen Peart <Ben.Peart@microsoft.com>
Fri, 11 May 2018 15:38:58 +0000 (15:38 +0000)
committerJunio C Hamano <gitster@pobox.com>
Sun, 13 May 2018 01:57:37 +0000 (10:57 +0900)
commite8b2dc2c2a8415bfd180ecf5cc237a54e69ac2e9
tree9703b9eff442441f54f8673092805fc03cd46d53
parentdc6b1d92ca9c0c538daa244e3910bb8b2a50d959
add status config and command line options for rename detection

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 <newren@gmail.com>
Original-Patch-by: Alejandro Pauly <alpauly@microsoft.com>
Signed-off-by: Ben Peart <Ben.Peart@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/config.txt
Documentation/git-status.txt
builtin/commit.c
diff.c
diff.h
t/t7525-status-rename.sh [new file with mode: 0755]
wt-status.c
wt-status.h