svn commit
拉起我的编辑器,让我写一个提交消息。然后,如果消息为空,则询问
Log message unchanged or not specified
(a)bort, (c)ontinue, (e)dit:
我从不使用(或想要使用)继续或编辑选项。而且,由于我通常在后台运行提交,因此必须记住fg
才能回答这个问题很烦人。我经常收到bash: a: command not found
错误。
我希望svn
不要求并且总是中止(就像git
那样)。是否有配置选项?
编辑:我在工作中使用了一个存储库,我与超过1K的其他开发人员分享,而且我不是管理员。所以我需要自动中止才能在不修改服务器或其配置的情况下工作。
答案 0 :(得分:2)
您可以使用pre-commit hook中止空提交消息。它并不太难,我相信Subversion带有一个模板预提交钩子来实现这一点。
使用svnlook log
命令提取提交注释。如果它为空,则可以使用非零退出代码退出,并且提交将不起作用。您还可以将某些内容打印到提交者将看到的STDERR,这样他们就知道为什么他们的提交被拒绝了。像这样:
log_message=$(svnlook -t $TXN log)
if [[ -z $log_message ]]
then
echo "Your commit message was empty. Recommit with a commit message" 1>&2
exit 2
else
exit 0
fi
我有一个更强大的pre-commit hook,可以设置谁有权修改或添加特定文件,正确设置属性,以及提交消息的格式是否正确。你可以看一下。
答案 1 :(得分:2)
没有配置选项。必须通过服务器上的钩子脚本执行对提交强加的任何要求。
如果这仅供您自己使用,您可以编写自己的shell脚本,在调用svn
二进制文件执行提交之前为您执行检查。但是如果您在系统上使用任何其他客户端(如IDE插件),这将会崩溃。