SVN - 通过VIM提交 - 恢复失败的提交消息

时间:2012-06-06 20:35:55

标签: linux svn vim version vi

我通常将VIM用于与编码相关的几乎所有内容。

我已经配置了我的环境,因此当我执行svn commit时,Subversion会打开VIM来编辑提交消息。如果我在没有保存提交消息的情况下关闭VIM(例如::qa!),它将被丢弃,并且提交操作将被中止。

如果我保存并关闭VIM,则提交操作将开始。

如果提交失败,我有一些SVN提交消息似乎保存在/ tmp /中,文件名如svn- ** .tmp。

在VIM中写入提交消息时,提交消息的文件名似乎为svn-commit.1.tmp。我希望能够为我的下一个SVN提交恢复此消息。典型的用例是:

  1. 我试图承诺;在VIM中完成写作信息
  2. 提交失败
  3. 我解决了这个问题(例如:svn update
  4. 现在我想再次使用预先加载到VIM的消息
  5. 再次尝试svn commit

    感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

您始终可以将-F选项与svn commit一起使用,该选项使用文件来创建日志消息。

每当我使用svn时,我首先创建一个日志文件:

vim log_file

然后我使用以下提交:

svn commit -F log_file --username blah

这一直对我有用。

答案 1 :(得分:1)

您可以尝试这样的事情: svn commit -F /tmp/svn-1.tmp 您可以在那里阅读更多内容:http://svnbook.red-bean.com/en/1.0/re06.html

答案 2 :(得分:1)

在vim会话中,只需读取旧日志文件的内容即可。这允许您在必要时调整旧消息,并且不会从根本上改变工作流程。

svn commit 

(打开vim会话)

:r /tmp/svn-**.tmp

另一个解决方案是使用-m标志从命令行执行提交。这通常在相关shell的命令历史记录中进行最后一次(失败)提交。

svn commit -m "Here is my message"

(提交失败,你解决了它)

(向上箭头几次,然后重新运行提交)

相关问题