我需要一个更智能的提交后脚本。
如果提交消息类似于“添加修订版-v.10.3产品”,则需要执行ssh命令。
是否可以使用post-commit来实现这一点?
发布于 2011-08-31 03:00:42
不是的!不是的!不是的!
您应该做的最后一件事是在post commit上执行ssh!
我不确定你的意图是什么,我认为它们是可敬的。但是,请记住,Subversion在post-commit钩子完成执行之前不会将控制权返回给客户端。如果您的ssh命令只用了10秒就执行完了,那么在用户可以执行任何操作之前,他们就会看到svn commit挂起了10秒。
在这十秒钟内,用户会对你、公司和颠覆产生强烈的仇恨。他们将成为他们以前的自己的苦涩的外壳,这将是你的错!你想让这种负罪感笼罩在你头上吗?我可不这么认为。
最好的解决方案是使用像Jenkins这样的持续构建服务器,并让它执行您的SSH命令。它可以获取命令的结果,如果失败,就将结果通过电子邮件发送给开发人员和他们的团队。Jenkins非常容易设置和使用,并且通过Jenkins (即,正确的方式)来完成这一点应该不会超过几个小时(最多)。
因此,用户提交不会挂在那里,但他们仍然会获得他们需要的信息。而且,由于你将它绑定到Jenkins,你可能会发现Jenkins的各种插件,它们可以做你认为不可能的各种奇妙的事情。你会成为英雄,被尊崇为神。这不是比沸腾的仇恨更好吗?
是你的选择。
(顺便说一句,您可以通过执行svn propget --rev-prop -r $REV svn:log来获取提交消息)
发布于 2012-04-14 03:05:19
仅供参考,我刚刚设置的是在提交后执行的php脚本。如果您熟悉PHP,这将为您提供大量控制,并使您可以运行ssh命令。我在这里概述了它:https://stackoverflow.com/a/10146169/654235
https://stackoverflow.com/questions/7246012
复制相似问题