proc show_diff {path {w {}} {lno {}}} {
global file_states file_lists
- global PARENT diff_3way diff_active
+ global PARENT diff_3way diff_active repo_config
global ui_diff ui_fname_value ui_fstatus_value ui_status_value
if {$diff_active || ![lock_index read]} return
set ui_fstatus_value [mapdesc $m $path]
set ui_status_value "Loading diff of [escape_path $path]..."
- set cmd [list | git diff-index -p $PARENT -- $path]
+ set cmd [list | git diff-index]
+ lappend cmd --no-color
+ lappend cmd -p
+
switch $m {
MM {
- set cmd [list | git diff-index -p -c $PARENT $path]
+ lappend cmd -c
}
_O {
if {[catch {
}
}
+ lappend cmd $PARENT
+ lappend cmd --
+ lappend cmd $path
+
if {[catch {set fd [open $cmd r]} err]} {
set diff_active 0
unlock_index
close $fd
unlock_index
if {$update_index_rsd} {
- show_diff $ui_fname_value
+ reshow_diff
} else {
set ui_status_value {Ready.}
}