]> git.ipfire.org Git - thirdparty/git.git/commit
Merge branch 'os/catch-rename'
authorJohannes Sixt <j6t@kdbg.org>
Sun, 7 Jul 2024 12:00:23 +0000 (14:00 +0200)
committerJohannes Sixt <j6t@kdbg.org>
Sun, 7 Jul 2024 12:14:59 +0000 (14:14 +0200)
commit2864e855932540c3ec6c9bf41ee3fe027d85f642
tree740e00df6e2332955c05232295a7ef9e7e513971
parentc1db9880936d752d8c2f56ab1aae01dd247de5d9
parentf402c7941f19fa518e44b24bf31f3b6c3542c115
Merge branch 'os/catch-rename'

The problem can be reproduced on Linux with this sequence:

1. Run git gui from a terminal.
2. Edit the commit message and wait for at least 2 seconds.
3. Terminate the instance from the terminal, for example with Ctrl-C,
   to simulate crash. This leaves the file .git/GITGUI_BCK behind.
4. Start two instances of git gui &.

At this point the first instance can be closed (it renames
.git/GITGUI_BCK to .git/GITGUI_MSG), but the seconds brings an error
message about the absent file and cannot be closed thereafter and must
be killed from the command line.

The renaming that happens by the first instance is the correct action
and need not be repeated by the second instance. It is the correct
action to ignore the failed renaming.

On the other hand, the second instance could just edit the commit
message again, wait 2 seconds to write GITGUI_BCK, and then can be
closed without failing. At this point, since the user has edited the
message, it is again correct to preserve the edited version in
GITGUI_MSG.

* os/catch-rename:
  git-gui: fix inability to quit after closing another instance