Teach git-gui to check diff's exit code in order to know whether a file actually changed or not. Signed-off-by: Keith Cascio <keith@xxxxxxxxxxx> --- Alexander, I encountered the same problem and I tried a different way to prevent it. Could you please try this alternative patch and see if it works in your setup? If so, it might be a lower-impact solution. Even if it doesn't solve your problem, I think it is still an improvement over what exists and could co-exist with your patch. -- Keith Cascio git-gui/lib/diff.tcl | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) diff --git a/git-gui/lib/diff.tcl b/git-gui/lib/diff.tcl index bbbf15c..94faf95 100644 --- a/git-gui/lib/diff.tcl +++ b/git-gui/lib/diff.tcl @@ -276,6 +276,7 @@ proc start_show_diff {cont_info {add_opts {}}} { } lappend cmd -p + lappend cmd --exit-code lappend cmd --no-color if {$repo_config(gui.diffcontext) >= 1} { lappend cmd "-U$repo_config(gui.diffcontext)" @@ -310,6 +311,7 @@ proc read_diff {fd cont_info} { global ui_diff diff_active global is_3way_diff is_conflict_diff current_diff_header global current_diff_queue + global errorCode $ui_diff conf -state normal while {[gets $fd line] >= 0} { @@ -397,7 +399,9 @@ proc read_diff {fd cont_info} { $ui_diff conf -state disabled if {[eof $fd]} { - close $fd + fconfigure $fd -blocking 1 + catch { close $fd } err + set diff_exit_status $errorCode if {$current_diff_queue ne {}} { advance_diff_queue $cont_info @@ -413,7 +417,7 @@ proc read_diff {fd cont_info} { } ui_ready - if {[$ui_diff index end] eq {2.0}} { + if {$diff_exit_status eq "NONE"} { handle_empty_diff } set callback [lindex $cont_info 1] -- 1.6.1 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html