帮助使用 subversion (svn) 挂钩脚本
如何创建一个颠覆服务器挂钩脚本,以防止人们在不首先拥有文件锁的情况下提交更改?
svn服务器是在windows上的。
谢谢。
PS 此问题中的附加信息
How to create a subversion server hook script that prevents people from committing changes if they don't own the lock on the file first?
Svn server is on windows.
Thanks.
P.S. Additional info in this question
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用预提交挂钩。预提交挂钩接收 2 个参数:
您需要使用 svnlook 来确定是否存在未锁定的 svn:needs-lock 文件。
要确定此提交更改的路径:
循环遍历“changed”中的文件(
$PATH
作为循环项)并确定 svn:needs-lock,以及它们当前是否被锁定:写入一个 to stderr 并返回非零以在需要时中止此提交。
Use a pre-commit hook. Pre-commit hook receives 2 arguments:
You need to use
svnlook
to determine if there are svn:needs-lock files that aren't locked.To determine the paths changed by this commit:
Loop through the files (
$PATH
as loop item) in 'changed' and determine svn:needs-lock, and if they're currently locked:Write an to stderr and return non-zero to abort this commit when needed.
您可以使用
<您的存储库目录>/hooks/pre-commit
并使用一些批处理脚本(甚至是一个完整的程序,只要它是可执行的就可以了)。如果返回0,则提交成功;否则就会失败。有关示例,请参阅同一目录中的
post-lock.tmpl
。You can use
<your repos directory>/hooks/pre-commit
and use some batch scripting (or even a full blown program, as long as it's executable it will be fine). If it returns 0 the commit will be successful; otherwise it will fail.See
post-lock.tmpl
in that same directory for an example.