From: Shawn O. Pearce Date: Sat, 18 Nov 2006 08:31:25 +0000 (-0500) Subject: git-gui: Start UI with the index locked. X-Git-Tag: gitgui-0.6.0~195 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=53716a7bc94497cd6d2dfd53b1e4f7669d677b01;p=git.git git-gui: Start UI with the index locked. Because we immediately start a rescan operation, but do so slightly delayed (by 1 ms, to let the UI show before we start forking off git processes), we can't let the user try to activate any of the restricted GUI commands before the 1 ms timer expires and we kick off the rescan. So now we lock the index before we enter the Tk event loop, ensuring that it is impossible for the user to inject a conflicting UI event before our rescan can begin. Signed-off-by: Shawn O. Pearce --- diff --git a/git-gui b/git-gui index c2b4dd706..4850e78ab 100755 --- a/git-gui +++ b/git-gui @@ -211,7 +211,7 @@ proc lock_index {type} { uplevel #0 $w disabled } return 1 - } elseif {$index_lock_type eq {begin-update} && $type eq {update}} { + } elseif {$index_lock_type eq "begin-$type"} { set index_lock_type $type return 1 } @@ -2906,4 +2906,5 @@ if {!$single_commit} { populate_pull_menu .mbar.pull populate_push_menu .mbar.push } +lock_index begin-read after 1 do_rescan