I ran into this scenario with Arcanist:
$ arc diff Starting build (pass `--config unit.csharp.xunit.skip-build=true` to disable)... Exception Command failed with error #128! COMMAND git commit --amend --allow-empty -F "C:\Users\....\AppData\Local\Temp\b7lisnvxvxkokks0\402B90B.tmp" STDOUT (empty) STDERR fatal: Unable to create 'C:/Code/.../.git/index.lock': File exists. If no other git process is currently running, this probably means a git process crashed in this repository earlier. Make sure no other git process is running and remove the file manually to continue. (Run with `--trace` for a full exception trace.)
When this happens, Arcanist doesn't save the message anywhere and the message is lost. I then have to retype it in the editor again.
- Have an Arcanist project / repository where you are about to run "arc diff".
- Run while [ 0 -eq 0 ]; do git status; done in another shell (this simulates IDEs which are excessively polling the Git working tree status).
- Observe Arcanist failing to run "git commit --amend"
- Run arc diff again, observe message lost.
Message is there when I attempt arc diff again.
Message is lost.