Subversion with MacVim configured as the editor
Question
I'm using Subversion to checkin a file on OSX. I have my EDITOR
variable configured to MacVim
My .profile
includes:
export EDITOR=/Applications/MacVim/mvim
When I checkin with the -m
option (svn ci somefile
), MacVim gets launched but then Subversion immediately displays:
Log message unchanged or not specified
(a)bort, (c)ontinue, (e)dit:
It displays this before I get a chance to save my log message in MacVim.
Is there a way to get SVN to use MacVim as the log message editor?
Solution
You need to run mvim with the -f
flag so that it stays in the foreground. By default, it forks and returns control to the terminal which makes subversion think it is done.
OTHER TIPS
Apple Terminal:
export EDITOR='mvim -f -c "au VimLeave * !open -a Terminal"'
or for iTerm or iTerm2:
export EDITOR='mvim -f -c "au VimLeave * !open -a iTerm"'
From "Faq - macvim - GitHub: How can I use MacVim to edit Git commit messages?". I've confirmed that it works with Subversion, as well.
See open --help
:
-W, --wait-apps Blocks until the used applications are closed (even if they were already running).
export EDITOR="open --wait -a /Applications/MacVim/mvim"
If the above doesn't work, you may need to put it into shell script and make $EDITOR to point that script. [EDIT: doesn't work, see the comment below.]
I'm using textmate as my svn editor and I had the same problem you had. But my solution is to set textmate to wait until the file is closed.
I added this in my .bash_profile
export SVN_EDITOR="mate -w"
-w is for wait