Browse Source

git-gui: Always start a rescan on an empty diff.

If we got an empty diff its probably because the modification time of
the file was changed but the file content hasn't been changed.  Typically
this happens because an outside program modified the file and git-gui
was told to not run 'update-index --refresh', as the user generally
trusts file modification timestamps.  But we can also get an empty diff
when a program undos a file change and still updates the modification
timestamp upon saving, but has undone the file back to the same as what
is in the index or in PARENT.

So even if gui.trustmtime is false we should still run a rescan on
an empty diff.  This change also lets us cleanup the dialog message
that we show when this case occurs, as its no longer got anything to
do with Trust File Modification Timestamps.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
maint
Shawn O. Pearce 18 years ago
parent
commit
124355d32c
  1. 14
      git-gui.sh

14
git-gui.sh

@ -582,11 +582,11 @@ proc handle_empty_diff {} {
[short_path $path] has no changes. [short_path $path] has no changes.


The modification date of this file was updated The modification date of this file was updated
by another application and you currently have by another application, but the content within
the Trust File Modification Timestamps option the file was not changed.
enabled, so Git did not automatically detect
that there are no content differences in this A rescan will be automatically started to find
file." other files which may have the same state."


clear_diff clear_diff
display_file $path __ display_file $path __
@ -683,7 +683,6 @@ proc show_diff {path w {lno {}}} {


proc read_diff {fd} { proc read_diff {fd} {
global ui_diff ui_status_value is_3way_diff diff_active global ui_diff ui_status_value is_3way_diff diff_active
global repo_config


$ui_diff conf -state normal $ui_diff conf -state normal
while {[gets $fd line] >= 0} { while {[gets $fd line] >= 0} {
@ -763,8 +762,7 @@ proc read_diff {fd} {
unlock_index unlock_index
set ui_status_value {Ready.} set ui_status_value {Ready.}


if {$repo_config(gui.trustmtime) eq {true} if {[$ui_diff index end] eq {2.0}} {
&& [$ui_diff index end] eq {2.0}} {
handle_empty_diff handle_empty_diff
} }
} }

Loading…
Cancel
Save