git-gui: Force an update-index --refresh on unchanged files.
Its possible for external programs to update file modification dates of many files within a repository. I've seen this on Windows with a popular virus scanner, sadly enough. If the user has Trust File Modification Timestamp enabled and the virus scanner touches a large number of files it can be annoying trying to clear them out of the 'Changed But Not Updated' file list by clicking on them one at a time to load the diff. So now we force a rescan as soon as one such file is found, and for just that rescan we disable the Trust File Modification Timestamp option thereby allowing Git to update the modification dates in the index. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
parent
8ce0316484
commit
46aaf90b49
14
git-gui.sh
14
git-gui.sh
@ -335,7 +335,7 @@ proc PARENT {} {
|
||||
return $empty_tree
|
||||
}
|
||||
|
||||
proc rescan {after} {
|
||||
proc rescan {after {honor_trustmtime 1}} {
|
||||
global HEAD PARENT MERGE_HEAD commit_type
|
||||
global ui_index ui_workdir ui_status_value ui_comm
|
||||
global rescan_active file_states
|
||||
@ -366,7 +366,7 @@ proc rescan {after} {
|
||||
$ui_comm edit modified false
|
||||
}
|
||||
|
||||
if {$repo_config(gui.trustmtime) eq {true}} {
|
||||
if {$honor_trustmtime && $repo_config(gui.trustmtime) eq {true}} {
|
||||
rescan_stage2 {} $after
|
||||
} else {
|
||||
set rescan_active 1
|
||||
@ -586,17 +586,11 @@ by another application and you currently have
|
||||
the Trust File Modification Timestamps option
|
||||
enabled, so Git did not automatically detect
|
||||
that there are no content differences in this
|
||||
file.
|
||||
|
||||
This file will now be removed from the modified
|
||||
files list, to prevent possible confusion.
|
||||
"
|
||||
if {[catch {exec git update-index -- $path} err]} {
|
||||
error_popup "Failed to refresh index:\n\n$err"
|
||||
}
|
||||
file."
|
||||
|
||||
clear_diff
|
||||
display_file $path __
|
||||
rescan {set ui_status_value {Ready.}} 0
|
||||
}
|
||||
|
||||
proc show_diff {path w {lno {}}} {
|
||||
|
Loading…
Reference in New Issue
Block a user