2

我的树干有结构:

\trunk
----\data
----\src
----\tool

with \tool在另一个地方的外部,而不是在我的trunk. 所以我不希望用户\tool在 SVN 中提交。他们只能承诺\dataor \src

谁能帮我创建一个钩子脚本来防止用户提交到外部(在这种情况下是\tool文件夹)?

4

1 回答 1

2

我对外部不是很熟悉,但如果你确实想创建一个预提交钩子脚本,它的代码很简单,但调试起来很棘手。

您的预提交挂钩接受两个参数,$ARGV[0] = 存储库路径,$ARGV[1] = 正在提交的事务。

你的钩子脚本会使用 svnlook,比如

svnlook dirs-changed -r $ARGV[0] -t $ARGV[1]

如果 svnlook 返回的工具(或以工具开头的任何东西)已更改,则返回(否定?)退出状态。

您打印到 STDERR 的任何内容都会作为错误消息显示给客户端。

您可以将此脚本放在您的存储库中的钩子下,将其命名为“pre-commit”,使其可执行

请务必检查svnlook 文档,因为我要在这里记忆

于 2010-01-18T04:44:40.793 回答