创建客户端钩子脚本以防止用户在TortoiseSVN中提交到外部

时间:2010-01-18 03:09:14

标签: scripting tortoisesvn hook external svn-externals

我的主干有结构:

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

\tool位于另一个地方的外部,而不在我的trunk中。所以我不希望用户在SVN中提交\tool。他们只能提交\data\src

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

1 个答案:

答案 0 :(得分:2)

我对externals并不是很熟悉,但是如果你想创建一个预提交钩子脚本,那么代码很简单,但很难调试。

你的预提交钩子有两个参数,$ ARGV [0] =存储库路径,$ ARGV [1] =正在提交的事务。

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

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

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

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

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

请务必查看svnlook documentation,因为我正在记忆