diff --git a/git-gui/lib/diff.tcl b/git-gui/lib/diff.tcl
index bbbf15c875f437f486f652d204bcebf1e5f1a8e4..925b3f56c1c23cc5e0c2b270b9f7e160013c9009 100644 (file)
--- a/git-gui/lib/diff.tcl
+++ b/git-gui/lib/diff.tcl
proc handle_empty_diff {} {
global current_diff_path file_states file_lists
+ global diff_empty_count
set path $current_diff_path
set s $file_states($path)
if {[lindex $s 0] ne {_M}} return
+ # Prevent infinite rescan loops
+ incr diff_empty_count
+ if {$diff_empty_count > 1} return
+
info_popup [mc "No differences detected.
%s has no changes.
global ui_diff diff_active
global is_3way_diff is_conflict_diff current_diff_header
global current_diff_queue
+ global diff_empty_count
$ui_diff conf -state normal
while {[gets $fd line] >= 0} {
if {[$ui_diff index end] eq {2.0}} {
handle_empty_diff
+ } else {
+ set diff_empty_count 0
}
+
set callback [lindex $cont_info 1]
if {$callback ne {}} {
eval $callback