Subversion 多重签出后提交钩子?

Subversion 多重签出后提交钩子?

标题听起来可能很奇怪,但我正在尝试实现以下目标:

SVN repo 位置:/home/flx/svn/flxdev SVN repo“flxdev”结构:

 + Project1
 ++ files
 + Project2
 + Project3
 + Project4

我正在尝试设置一个提交后挂钩,当我提交时它会自动在另一端签出。

提交后文档明确列出了以下内容:

# POST-COMMIT HOOK
#
# The post-commit hook is invoked after a commit.  Subversion runs
# this hook by invoking a program (script, executable, binary, etc.)
# named 'post-commit' (for which this file is a template) with the
# following ordered arguments:
#
#   [1] REPOS-PATH   (the path to this repository)
#   [2] REV          (the number of the revision just committed)

因此我制作了以下命令来测试:

REPOS="$1"
REV="$2"
echo "Updated project $REPOS to $REV"

但是,当我在 Project1 中编辑文件时,输出“已将项目 /home/flx/svn/flxdev 更新至 1016”

我希望这是:“已将项目 Project1 更新至 1016”

有了这个变量,我可以指定每个项目提交后执行不同的操作。我该如何指定项目参数?

谢谢!

丹尼斯

答案1

使用svnlook

快速而肮脏的方法是尝试类似以下的方法:

REPOS="$1"
REV="$2"
CHANGED_DIRS="`/usr/bin/svnlook -r $REV dirs-changed $REPOS`"

echo "Updated paths $CHANGED_DIRS in revision $REV"

您可能想要尝试运行svnlook help;它将列出您可以使用的各种命令/可以获得的信息。

相关内容