git-gui: Allow update_index to also run a script when it completes.
Like rescan we also have cases where we need to perform a script after we have finished updating a number of files in the index. By changing the parameter structure of update_index we can easily pass through any script we need to run afterwards, such as picking up in the middle of a commit, or finishing what is left of a rescan. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
parent
8f52548a9e
commit
04b393824f
31
git-gui
31
git-gui
@ -428,7 +428,10 @@ proc rescan_done {fd buf after} {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if {$pathList ne {}} {
|
if {$pathList ne {}} {
|
||||||
update_index $pathList
|
update_index \
|
||||||
|
"Updating included files" \
|
||||||
|
$pathList \
|
||||||
|
[concat {reshow_diff;} $after]
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1197,7 +1200,7 @@ proc display_all_files {} {
|
|||||||
$ui_other conf -state disabled
|
$ui_other conf -state disabled
|
||||||
}
|
}
|
||||||
|
|
||||||
proc update_index {pathList} {
|
proc update_index {msg pathList after} {
|
||||||
global update_index_cp update_index_rsd ui_status_value
|
global update_index_cp update_index_rsd ui_status_value
|
||||||
|
|
||||||
if {![lock_index update]} return
|
if {![lock_index update]} return
|
||||||
@ -1210,7 +1213,7 @@ proc update_index {pathList} {
|
|||||||
if {$batch > 25} {set batch 25}
|
if {$batch > 25} {set batch 25}
|
||||||
|
|
||||||
set ui_status_value [format \
|
set ui_status_value [format \
|
||||||
"Including files ... %i/%i files (%.2f%%)" \
|
"$msg... %i/%i files (%.2f%%)" \
|
||||||
$update_index_cp \
|
$update_index_cp \
|
||||||
$totalCnt \
|
$totalCnt \
|
||||||
0.0]
|
0.0]
|
||||||
@ -1226,20 +1229,20 @@ proc update_index {pathList} {
|
|||||||
$pathList \
|
$pathList \
|
||||||
$totalCnt \
|
$totalCnt \
|
||||||
$batch \
|
$batch \
|
||||||
|
$msg \
|
||||||
|
$after \
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
proc write_update_index {fd pathList totalCnt batch} {
|
proc write_update_index {fd pathList totalCnt batch msg after} {
|
||||||
global update_index_cp update_index_rsd ui_status_value
|
global update_index_cp update_index_rsd ui_status_value
|
||||||
global file_states ui_fname_value
|
global file_states ui_fname_value
|
||||||
|
|
||||||
if {$update_index_cp >= $totalCnt} {
|
if {$update_index_cp >= $totalCnt} {
|
||||||
close $fd
|
close $fd
|
||||||
unlock_index
|
unlock_index
|
||||||
set ui_status_value {Ready.}
|
if {$update_index_rsd} reshow_diff
|
||||||
if {$update_index_rsd} {
|
uplevel #0 $after
|
||||||
reshow_diff
|
|
||||||
}
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1268,7 +1271,7 @@ proc write_update_index {fd pathList totalCnt batch} {
|
|||||||
}
|
}
|
||||||
|
|
||||||
set ui_status_value [format \
|
set ui_status_value [format \
|
||||||
"Including files ... %i/%i files (%.2f%%)" \
|
"$msg... %i/%i files (%.2f%%)" \
|
||||||
$update_index_cp \
|
$update_index_cp \
|
||||||
$totalCnt \
|
$totalCnt \
|
||||||
[expr {100.0 * $update_index_cp / $totalCnt}]]
|
[expr {100.0 * $update_index_cp / $totalCnt}]]
|
||||||
@ -1766,7 +1769,10 @@ proc do_include_all {} {
|
|||||||
if {$pathList eq {}} {
|
if {$pathList eq {}} {
|
||||||
unlock_index
|
unlock_index
|
||||||
} else {
|
} else {
|
||||||
update_index $pathList
|
update_index \
|
||||||
|
"Including all modified files" \
|
||||||
|
$pathList \
|
||||||
|
{set ui_status_value {Ready to commit.}}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1985,7 +1991,10 @@ proc toggle_or_diff {w x y} {
|
|||||||
$ui_other tag remove in_sel 0.0 end
|
$ui_other tag remove in_sel 0.0 end
|
||||||
|
|
||||||
if {$col == 0} {
|
if {$col == 0} {
|
||||||
update_index [list $path]
|
update_index \
|
||||||
|
"Including [short_path $path]" \
|
||||||
|
[list $path] \
|
||||||
|
{set ui_status_value {Ready.}}
|
||||||
} else {
|
} else {
|
||||||
show_diff $path $w $lno
|
show_diff $path $w $lno
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user