由于提交后,Subversion提交非常慢

时间:2011-09-01 10:26:28

标签: svn post-commit

我面临一个非常奇怪的问题:我使用mailer.py作为post-commit钩子向开发人员发送代码diff。但后来我发现所有代码登记到这个存储库都很慢,即使1个文件签入也要花费大约2分钟。禁用后提交将使代码签入更快。我检查了apache日志和subversion日志,但没有找到任何有价值的东西。谁能对这个问题有所了解?

环境: Redhat EL 5.4 + CollabNet SubversionEdge 2.0

谢谢,

杰弗里

2 个答案:

答案 0 :(得分:2)

也许您可以将差异和邮件程序任务作为与提交后脚本分开的进程生​​成。这样,签入过程可以完成并返回,而冗长的操作继续作为后台任务。

答案 1 :(得分:1)

我刚遇到同样的问题。 mailer.py曾经工作得很好,几乎是即时提交,但在部署了包含错误自动挂载条目的新身份验证模式后,它开始减慢到几分钟。 这一切都归结为对某些图书馆的mailer.py测试,因为通过strace显示它 作为post-commit钩子的一部分,通常会运行mailer.py,我插入一个strace就像:

# EXAMPLE OF DOING STRACE TO DEBUG/TROUBLESHOOT THIS:
/usr/bin/strace /usr/share/doc/subversion-1.6.11/tools/hook-scripts/mailer/mailer.py commit "$REPOS" "$REV" > /tmp/zzSTRACE-MAILER 2>&1
# (The original line is)
# /usr/share/doc/subversion-1.6.11/tools/hook-scripts/mailer/mailer.py commit "$REPOS" "$REV"


这显示脚本在几个位置下查找os.py和os.pyc文件(在我的CentOS 6系统中,它们位于/usr/lib64/python2.6下)。
其中一个搜索位置是/ users是在自动挂载映射中指向无响应的服务器。因此它一直挂起,直到计时 - 然后脚本继续&提交操作完成正常 - 只有那么大的延迟
修复automount输入/修复服务器立即解决了问题 希望这会有所帮助。