对于我的Windows服务器上的post-commit hookscript,我想确定存储库中启动提交的最高路径是什么。
因此,如果我有一个基于存储库路径product\branch\somebranch
的工作副本,并且从更改的文件和文件夹的工作副本完成提交,我如何在帖子中将其追溯到product\branch\somebranch
-commit脚本?
最好是我正在寻找一种不依赖于我的仓库结构的方法,以避免必须明确地编码提交到主干和分支之间的差异,即
答案 0 :(得分:0)
post-commit hook接收2个参数:本地磁盘存储库的完整路径和已提交的修订号。
假设您的主机在unix机器上运行,您可以在post-commit脚本中使用这些参数和'svnlook'来查找存储库中的路径。这将为您提供存储库中更改的完整路径。
#!/bin/sh
REPOS="$1"
REV="$2"
svnlook changed -r$REV "$REPOS"
svnlook输出是这样的:
A product/branches/somebranch/Makefile
U product/branches/somebranch/main.c
从那里你可以通过切割几次提取最高路径管道来剥离修改过的标志并解析路径,例如。
svnlook changed -r$REV "$REPOS" | cut -c5- | cut -d/ -f1-3
这部分真的取决于你的回购布局,你可以采取很多方法,但这应该可以让你开始。