【发布时间】:2012-01-23 21:22:23
【问题描述】:
我正在编写一个预提交挂钩,我想在交易之前执行一些基于文件内容的规则。因此,当事务开始时,我想 svnlook cat 任何标记为“U”、“UU”或“D”的文件的内容没有未决更改。我可以安全地使用提供的事务标识符(预提交的第二个参数)并去掉破折号和它后面的任何字符并认为是“基本修订版”吗?有没有更好的方法来获取这些信息?
【问题讨论】:
标签: svn pre-commit-hook svnlook
我正在编写一个预提交挂钩,我想在交易之前执行一些基于文件内容的规则。因此,当事务开始时,我想 svnlook cat 任何标记为“U”、“UU”或“D”的文件的内容没有未决更改。我可以安全地使用提供的事务标识符(预提交的第二个参数)并去掉破折号和它后面的任何字符并认为是“基本修订版”吗?有没有更好的方法来获取这些信息?
【问题讨论】:
标签: svn pre-commit-hook svnlook
直接的答案是不。交易号可以是任何东西。但是,svnlook youngest <repos> 将返回您要查找的最新版本。
小心预提交钩子:
有时最好使用持续集成服务器来验证提交,而不是使用 pre-commit 或 post-commit 挂钩。例如,允许开发人员提交文件,但如果开发人员不在正确的组中,则可以向开发负责人发送电子邮件。
开发人员有 90% 的可能性可能在做正确的事情。那个开发负责人可能已经知道这个问题了。而且,如果出现问题,您可以恢复更改。
【讨论】:
svnlook youngest 应该不是问题。
在提交修订之前,基本修订尚未确定。如果另一个更改没有更改相同的节点,则可以在您的提交过程中提交它。只有提交的最后部分是独占的。
【讨论】:
并将最年轻的加 1。 例如:
the_revision=$(svnlook youngest ${REPOS})
((the_revision++))
【讨论】: