对于我的windows服务器上的提交后钩子脚本,我想确定进入存储库的最高路径是什么,提交是在哪个路径上开始的。
因此,如果我有一个基于存储库路径product\branch\somebranch的工作副本,且已更改的文件和文件夹的工作副本完成了提交,我如何在提交后脚本中将其追溯到product\branch\somebranch?
优选地,我正在寻找一种不依赖于我的存储库结构的方法,以避免必须显式地编码出提交到主干和分支之间的差异。
发布于 2015-08-07 17:54:42
post-commit挂钩接收两个参数:本地磁盘存储库的完整路径和提交的修订号。
假设您的主机运行在unix机器上,您可以将这些参数与提交后脚本中的'svnlook‘一起使用,以查找存储库中的路径。这将为您提供存储库中更改的完整路径。
#!/bin/sh
REPOS="$1"
REV="$2"
svnlook changed -r$REV "$REPOS"svnlook输出如下所示:
A product/branches/somebranch/Makefile
U product/branches/somebranch/main.c从那里,您可以通过cut多次提取最高路径管道,以剥离修改后的标志并解析路径,例如
svnlook changed -r$REV "$REPOS" | cut -c5- | cut -d/ -f1-3这一部分真的取决于你的repo布局,你可以采取很多方法,但这应该是你的入门。
https://stackoverflow.com/questions/31872007
复制相似问题