git-gui: Refactor the revert (aka checkout-index) implementation.

We can revert any file which has a valid stage 0 (is not unmerged)
and which is has a working directory status of M or D.  This vastly
simplifies our pattern matching on file status when building up the
list of files to perform a checkout-index against.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
Shawn O. Pearce 2007-01-20 23:20:17 -05:00
Родитель de5f6d5d17
Коммит 7d40edfa06
1 изменённых файлов: 9 добавлений и 18 удалений

Просмотреть файл

@ -1597,20 +1597,14 @@ proc write_checkout_index {fd pathList totalCnt batch msg after} {
{incr i -1} {
set path [lindex $pathList $update_index_cp]
incr update_index_cp
switch -glob -- [lindex $file_states($path) 0] {
AM -
AD {set new A_}
MM -
MD {set new M_}
_M -
_D {set new __}
?? {continue}
U? {continue}
?M -
?D {
puts -nonewline $fd "$path\0"
display_file $path ?_
}
}
puts -nonewline $fd $path
puts -nonewline $fd "\0"
display_file $path $new
}
set ui_status_value [format \
@ -2406,12 +2400,9 @@ proc revert_helper {txt paths} {
set after {}
foreach path $paths {
switch -glob -- [lindex $file_states($path) 0] {
AM -
AD -
MM -
MD -
_M -
_D {
U? {continue}
?M -
?D {
lappend pathList $path
if {$path eq $current_diff} {
set after {reshow_diff;}