Subversion 提交后钩子

4 投票
3 回答
1985 浏览
提问于 2025-04-15 16:14

我创建了一个Subversion的提交后钩子(post-commit hook),每次提交代码时都会发送一封邮件。我是在/var/svn/repos/hooks目录下的post-commit文件中调用一个Python脚本。

REPOS="$1"
REV="$2"

~/svnnotify.py $REV

但是问题是,svn commit命令需要更长的时间才能完成,因为它在等这个Python脚本先结束。有没有什么办法解决这个问题呢?

谢谢!

3 个回答

0

你可以先调用一个批处理文件,然后在这个批处理文件里执行一个Python脚本。为了让这个Python脚本在后台运行,你需要在批处理文件的命令末尾加上一个“&”符号。

0

可以把更新放在一个简单的队列里,这个队列会被一个定时脚本定期检查,如果队列里有东西,就发送消息。

这个队列可以是/tmp目录下的一个简单文件,也可以是一个sqlite文件,或者是一个MySQL数据库表。

如果发送邮件的时间明显很长,可能是通知脚本里的代码出了问题。把一封邮件放进本地邮件队列不应该花那么久的时间。

4

试着在调用你脚本的那一行后面加一个“&”符号,这样可以让它在后台运行,并且立刻返回。

撰写回答