我的主干有结构:
\trunk
----\data
----\src
----\tool
\tool
位于另一个地方的外部,而不在我的trunk
中。所以我不希望用户在SVN中提交\tool
。他们只能提交\data
或\src
。
有人可以帮我创建一个钩子脚本来防止用户提交到外部(在这种情况下是\tool
文件夹)吗?
答案 0 :(得分:2)
我对externals并不是很熟悉,但是如果你想创建一个预提交钩子脚本,那么代码很简单,但很难调试。
你的预提交钩子有两个参数,$ ARGV [0] =存储库路径,$ ARGV [1] =正在提交的事务。
你的钩子脚本会使用svnlook,比如
svnlook dirs-changed -r $ARGV[0] -t $ARGV[1]
如果svnlook返回工具(或以工具开头的任何内容)发生更改,则返回(否定?)退出状态。
您打印到STDERR的任何内容都会显示给客户端,作为错误消息。
您可以将此脚本放在存储库的钩子下,将其命名为“pre-commit”,使其可执行
请务必查看svnlook documentation,因为我正在记忆