Add options to control the search for copies in blame.
On huge repositories, -C -C can be way too slow to be unconditionally enabled, and it can also be useful to control its precision. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
parent
fbc0e7ac14
commit
57cae87b77
@ -642,6 +642,8 @@ set default_config(user.email) {}
|
|||||||
set default_config(gui.matchtrackingbranch) false
|
set default_config(gui.matchtrackingbranch) false
|
||||||
set default_config(gui.pruneduringfetch) false
|
set default_config(gui.pruneduringfetch) false
|
||||||
set default_config(gui.trustmtime) false
|
set default_config(gui.trustmtime) false
|
||||||
|
set default_config(gui.fastcopyblame) false
|
||||||
|
set default_config(gui.copyblamethreshold) 40
|
||||||
set default_config(gui.diffcontext) 5
|
set default_config(gui.diffcontext) 5
|
||||||
set default_config(gui.commitmsgwidth) 75
|
set default_config(gui.commitmsgwidth) 75
|
||||||
set default_config(gui.newbranchtemplate) {}
|
set default_config(gui.newbranchtemplate) {}
|
||||||
|
@ -33,13 +33,6 @@ variable group_colors {
|
|||||||
#ececec
|
#ececec
|
||||||
}
|
}
|
||||||
|
|
||||||
# Switches for original location detection
|
|
||||||
#
|
|
||||||
variable original_options [list -C -C]
|
|
||||||
if {[git-version >= 1.5.3]} {
|
|
||||||
lappend original_options -w ; # ignore indentation changes
|
|
||||||
}
|
|
||||||
|
|
||||||
# Current blame data; cleared/reset on each load
|
# Current blame data; cleared/reset on each load
|
||||||
#
|
#
|
||||||
field commit ; # input commit to blame
|
field commit ; # input commit to blame
|
||||||
@ -511,7 +504,6 @@ method _exec_blame {cur_w cur_d options cur_s} {
|
|||||||
method _read_blame {fd cur_w cur_d} {
|
method _read_blame {fd cur_w cur_d} {
|
||||||
upvar #0 $cur_d line_data
|
upvar #0 $cur_d line_data
|
||||||
variable group_colors
|
variable group_colors
|
||||||
variable original_options
|
|
||||||
|
|
||||||
if {$fd ne $current_fd} {
|
if {$fd ne $current_fd} {
|
||||||
catch {close $fd}
|
catch {close $fd}
|
||||||
@ -684,6 +676,18 @@ method _read_blame {fd cur_w cur_d} {
|
|||||||
if {[eof $fd]} {
|
if {[eof $fd]} {
|
||||||
close $fd
|
close $fd
|
||||||
if {$cur_w eq $w_asim} {
|
if {$cur_w eq $w_asim} {
|
||||||
|
# Switches for original location detection
|
||||||
|
set threshold [get_config gui.copyblamethreshold]
|
||||||
|
set original_options [list "-C$threshold"]
|
||||||
|
|
||||||
|
if {![is_config_true gui.fastcopyblame]} {
|
||||||
|
# thorough copy search; insert before the threshold
|
||||||
|
set original_options [linsert $original_options 0 -C]
|
||||||
|
}
|
||||||
|
if {[git-version >= 1.5.3]} {
|
||||||
|
lappend original_options -w ; # ignore indentation changes
|
||||||
|
}
|
||||||
|
|
||||||
_exec_blame $this $w_amov @amov_data \
|
_exec_blame $this $w_amov @amov_data \
|
||||||
$original_options \
|
$original_options \
|
||||||
[mc "Loading original location annotations..."]
|
[mc "Loading original location annotations..."]
|
||||||
|
@ -123,6 +123,8 @@ proc do_options {} {
|
|||||||
{b gui.trustmtime {mc "Trust File Modification Timestamps"}}
|
{b gui.trustmtime {mc "Trust File Modification Timestamps"}}
|
||||||
{b gui.pruneduringfetch {mc "Prune Tracking Branches During Fetch"}}
|
{b gui.pruneduringfetch {mc "Prune Tracking Branches During Fetch"}}
|
||||||
{b gui.matchtrackingbranch {mc "Match Tracking Branches"}}
|
{b gui.matchtrackingbranch {mc "Match Tracking Branches"}}
|
||||||
|
{b gui.fastcopyblame {mc "Blame Copy Only On Changed Files"}}
|
||||||
|
{i-20..200 gui.copyblamethreshold {mc "Minimum Letters To Blame Copy On"}}
|
||||||
{i-0..99 gui.diffcontext {mc "Number of Diff Context Lines"}}
|
{i-0..99 gui.diffcontext {mc "Number of Diff Context Lines"}}
|
||||||
{i-0..99 gui.commitmsgwidth {mc "Commit Message Text Width"}}
|
{i-0..99 gui.commitmsgwidth {mc "Commit Message Text Width"}}
|
||||||
{t gui.newbranchtemplate {mc "New Branch Name Template"}}
|
{t gui.newbranchtemplate {mc "New Branch Name Template"}}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user