用于复制已提交文件和文件夹的SVN挂钩?

时间:2012-01-06 08:12:49

标签: svn copy hook

我的Windows 2008服务器上运行了SVN存储库。它现在有2个应用程序,我们称之为App1和App2。我想将应用程序的已提交文件复制到服务器上的另一个位置,每个应用程序一个。我想在提交后这样做,所以我认为post-commit钩子是要使用的?

我如何知道哪个应用获得了新文件以及复制命令的外观如何? App1的文件必须转到c:\ app1,例如App2的文件转到c:\ app2。

感谢您的帮助:)。

3 个答案:

答案 0 :(得分:2)

您最好的选择是在服务器上以某个路径检查存储库的已检出工作副本,如您正确提到的那样post-commit,只需在签出的工作副本上执行svn update

答案 1 :(得分:1)

提交后确实是要使用的。

如果我们看一下svnnotify的例子..

#!/bin/sh

REPOS="$1"
REV="$2"

/usr/local/bin/svnnotify                    \
    --repos-path    "$REPOS"                \
    --revision      "$REV"                  \
    --subject-cx                            \
    --with-diff                             \
    --handler       HTML::ColorDiff         \
    --to            <your e-mail address>   \
    --from          <from e-mail address>

看起来$ 1是repo-path而$ 2是rev ..所以你应该能够对$ 1做一个正则表达式来测试它是否在你感兴趣的两个路径之一并相应地采取行动(或者,不是)

来自:Subversion Post-Commit Hooks 101

答案 2 :(得分:0)

#!/bin/bash

dir='/path/to/something/special'
dir='/path/to/other/thing'


if [[ $dir =~ "something" ]]; then
    echo "something dir"
fi

if [[ $dir =~ "other" ]]; then
    echo "other dir"
fi