Skip to content

Commit ce83ab2

Browse files
committed
git-gui: Only touch GITGUI_MSG when needed
In 4e55d19 (git-gui: Cleanup end-of-line whitespace in commit messages., 2007-01-25), the logic to decide if GITGUI_MSG should be saved or deleted was updated to not require the commit message buffer to be modified. This fixes a situation where if the user quits and restarts git-gui multiple times the commit message buffer was lost. Unfortunately, the fix was not quite correct. The check for whether the commit message buffer has been modified is useless. If the commit is _not_ amend, then the check is never performed. If the commit is amend, then saving the message does not matter anyway. Amend state is destroyed on exit and the next time git-gui is opened it starts from scratch, but with the older message retained in the buffer. If amend is selected, the current message is over-written by the amend commit's message. The correct fix would be to not touch GITGUI_MSG at all if the commit message buffer is not modified. This way, the file is not deleted even on multiple restarts. It has the added benefit of not writing the file unnecessarily on every exit. Signed-off-by: Pratyush Yadav <[email protected]>
1 parent 38c2ac2 commit ce83ab2

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

git-gui.sh

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2305,11 +2305,10 @@ proc do_quit {{rc {1}}} {
23052305
if {$GITGUI_BCK_exists && ![$ui_comm edit modified]} {
23062306
file rename -force [gitdir GITGUI_BCK] $save
23072307
set GITGUI_BCK_exists 0
2308-
} else {
2308+
} elseif {[$ui_comm edit modified]} {
23092309
set msg [string trim [$ui_comm get 0.0 end]]
23102310
regsub -all -line {[ \r\t]+$} $msg {} msg
2311-
if {(![string match amend* $commit_type]
2312-
|| [$ui_comm edit modified])
2311+
if {![string match amend* $commit_type]
23132312
&& $msg ne {}} {
23142313
catch {
23152314
set fd [open $save w]

0 commit comments

Comments
 (0)