git-commit-vandalism/lib
Shawn O. Pearce 4578c5cb69 git-gui: Automatically backup the user's commit buffer
A few users have been seeing crashes in Tk when using the undo key
binding to undo the last few keystroke events in the commit buffer.
Unfortunately that means the user loses their commit message and
must start over from scratch when the user restarts the process.

git-gui now saves the user's commit message buffer every couple of
seconds to a temporary file under .git (specifically .git/GITGUI_BCK).
At exit time we rename this file to .git/GITGUI_MSG if there is a
message, the file exists, and it is currently synchronized with the
Tk buffer.  Otherwise we do our usual routine of saving the Tk buffer
to .git/GITGUI_MSG and delete .git/GITGUI_BCK, if it exists.

During startup we favor .git/GITGUI_BCK over .git/GITGUI_MSG.  This
way a crash doesn't take out the user's message buffer but instead
will cause the user to lose only a few keystrokes.  Most people do
not type more than 200 WPM, and with 30 possible saves per minute
we are unlikely to lose more than 7 words.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-07-21 04:57:57 -04:00
..
blame.tcl git-gui: Don't show blame tooltips that we have no data for 2007-07-19 01:45:42 -04:00
branch_checkout.tcl git-gui: Allow double-click in checkout dialog to start checkout 2007-07-08 22:34:53 -04:00
branch_create.tcl git-gui: Refactor branch switch to support detached head 2007-07-08 22:34:46 -04:00
branch_delete.tcl git-gui: Refactor branch switch to support detached head 2007-07-08 22:34:46 -04:00
branch_rename.tcl git-gui: Refactor branch switch to support detached head 2007-07-08 22:34:46 -04:00
branch.tcl git-gui: Always use absolute path to all git executables 2007-07-09 01:17:09 -04:00
browser.tcl git-gui: Allow users to browse any branch, not just the current one 2007-07-18 01:39:27 -04:00
checkout_op.tcl git-gui: Always use absolute path to all git executables 2007-07-09 01:17:09 -04:00
choose_rev.tcl git-gui: Increase the default height of the revision picker 2007-07-18 02:27:39 -04:00
class.tcl git-gui: Teach class system to support [$this cmd] syntax 2007-07-08 21:12:45 -04:00
commit.tcl git-gui: Automatically backup the user's commit buffer 2007-07-21 04:57:57 -04:00
console.tcl Merge branch 'maint' 2007-07-09 21:19:13 -04:00
database.tcl git-gui: Delay the GC hint until after we are running 2007-07-17 23:20:56 -04:00
diff.tcl git-gui: Always disable the Tcl EOF character when reading 2007-07-17 01:50:10 -04:00
encoding.tcl git-gui: Translate standard encoding names to Tcl ones 2007-07-19 01:27:17 -04:00
error.tcl git-gui: Don't crash in ask_popup if we haven't mapped main window yet 2007-07-17 22:45:53 -04:00
index.tcl git-gui: Always use absolute path to all git executables 2007-07-09 01:17:09 -04:00
merge.tcl git-gui: Completely remove support for creating octopus merges 2007-07-19 02:24:25 -04:00
option.tcl git-gui: Always use absolute path to all git executables 2007-07-09 01:17:09 -04:00
remote_branch_delete.tcl git-gui: Always use absolute path to all git executables 2007-07-09 01:17:09 -04:00
remote.tcl git-gui: Always use absolute path to all git executables 2007-07-09 01:17:09 -04:00
shortcut.tcl git-gui: Include a space in Cygwin shortcut command lines 2007-07-09 21:19:22 -04:00
status_bar.tcl git-gui: Show a progress meter for checking out files 2007-07-08 22:48:19 -04:00
transport.tcl git-gui: Refactor branch switch to support detached head 2007-07-08 22:34:46 -04:00