【发布时间】:2011-02-03 01:10:08
【问题描述】:
我在 svn 中有一个 post-commit 钩子,当我运行时,它可以在命令行中正常运行
env - ./foo.sh /path/to/svn/repos/ 12345
但是当从 svn 调用脚本时,它似乎不起作用。
我所做的基本上是检查提交的文件,如果修改了特定文件,我会将其 svn 导出到网络共享。从命令行运行良好。
提交后脚本如下:
#!/bin/sh
REPOS="$1"
REV="$2"
CHANGED=`/usr/bin/svnlook changed -r "$REV" "$REPOS"`
SOURCE="svn+ssh://localhost/path/to/svn/repos/somefile.zip"
DEST="/mnt/build/somefile-r$REV.zip"
if [[ "$CHANGED" =~ "trunk/somedir/somefile.zip" ]]
then
`/usr/bin/svn export --non-interactive --trust-server-cert $SOURCE $DEST`
fi
exit 0
有没有办法在脚本运行时将任何错误消息输出到文件,或者特别是 svn 导出行(我认为可能存在问题)?
【问题讨论】:
-
出于好奇,我发现当从 svn 调用该脚本时,它是以签入文件的用户身份运行的。从使用 svn+ssh:// 方案切换到 file:// 而不是修复它
标签: svn post-commit svn-hooks post-commit-hook