From: Shawn O. Pearce Date: Sun, 21 Jan 2007 04:20:17 +0000 (-0500) Subject: git-gui: Refactor the revert (aka checkout-index) implementation. X-Git-Tag: gitgui-0.6.0~117 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=7d40edfa06adf7f31f787bb6379c1eb454242c19;p=git.git 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 --- diff --git a/git-gui.sh b/git-gui.sh index c1ee48bf0..7bd2b87fe 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -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;}