如何设置触发器以防止使用 mergeinfo 属性提交到 SVN?
-
18-09-2019 - |
题
我想 避免创建 svn mergeinfo 属性 除了树枝根部以外的任何地方。我们有一个主干分支和一些其他分支。
假设我对 svn 触发器一无所知,我需要遵循哪些步骤来设置一个预提交挂钩,以防止将 mergeinfo 属性添加到除分支根之外的任何内容?
主干位于存储库的基础“/ trunk”中,所有分支位于“/branches/foo”中
其他提示
以下应该工作。您的仓库已经拥有了svn:合并信息树干上,所以你永远不希望任何人再添加一个。
顺便说一句,我们的实际挂钩还可以确保每一个承诺是伴随着一个日志消息,也通过回购浏览器可以防止我们一些重要的顶级目录的删除。
@echo off
set logfile=%TEMP%\%2.txt
"c:\program files\subversion\svnlook" log -t %2 %1 > %logfile%
for /f "tokens=1,2*" %%i in (%logfile%) do (
if %%i==UU goto checkmergetracking
)
for /f "tokens=1,2*" %%i in (%logfile%) do (
if %%i==_U goto checkmergetracking
)
del %logfile%
exit 0
:checkmergetracking
"c:\program files\subversion\svnlook" diff -t %2 %1 > %logfile%
find "Added: svn:mergeinfo" %logfile%
if ERRORLEVEL 1 goto nomergeinfo
del %logfile%
echo "Addition of Merge Info Not Allowed" >&2
exit 1
:nomergeinfo
del %logfile%
exit 0
不隶属于 StackOverflow