diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/merge.tcl | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/lib/merge.tcl b/lib/merge.tcl index f6a2df3c06..66d1bcd826 100644 --- a/lib/merge.tcl +++ b/lib/merge.tcl @@ -233,10 +233,10 @@ Continue with resetting the current changes?" } if {[ask_popup $op_question] eq {yes}} { - set fd [git_read read-tree --reset -u HEAD] + set fd [git_read --stderr read-tree --reset -u -v HEAD] fconfigure $fd -blocking 0 -translation binary fileevent $fd readable [namespace code [list _reset_wait $fd]] - ui_status {Aborting... please wait...} + $::main_status start {Aborting} {files reset} } else { unlock_index } @@ -245,9 +245,12 @@ Continue with resetting the current changes?" proc _reset_wait {fd} { global ui_comm - read $fd + $::main_status update_meter [read $fd] + + fconfigure $fd -blocking 1 if {[eof $fd]} { - close $fd + set fail [catch {close $fd} err] + $::main_status stop unlock_index $ui_comm delete 0.0 end @@ -259,7 +262,12 @@ proc _reset_wait {fd} { catch {file delete [gitdir MERGE_MSG]} catch {file delete [gitdir GITGUI_MSG]} + if {$fail} { + warn_popup "Abort failed.\n\n$err" + } rescan {ui_status {Abort completed. Ready.}} + } else { + fconfigure $fd -blocking 0 } } |