首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SVN中使用预提交钩子限制主干、标签、分支的目录创建?

如何在SVN中使用预提交钩子限制主干、标签、分支的目录创建?
EN

Stack Overflow用户
提问于 2013-02-02 08:43:47
回答 2查看 502关注 0票数 1

当前设置:

我们的SVN实例中大约有7个存储库。每个存储库都有多个应用程序,每个应用程序都应该有一个主干、标记和分支目录!

例如:

代码语言:javascript
复制
 REPOSITORY-1
  --> APP-1
      --> trunk
      --> tags
      --> branches
  --> APP-2
      --> trunk
      --> tags
      --> branches

随着时间的推移,我注意到开发人员偏离了这个过程,创建了各种各样的目录。例如:

代码语言:javascript
复制
 REPOSITORY-1
   --> APP-1
       --> src
       --> READ-ME.txt
   --> APP-2
       --> build
       --> random-file.java
       --> build.xml

有没有办法让钩子带有模式,限制模式拒绝任何试图在应用程序下创建除主干、标记和分支之外的文件或目录的提交?提前感谢您的帮助!

额外信息:我们的SVN服务器在一个RedHat机器上。

EN

回答 2

Stack Overflow用户

发布于 2014-04-07 15:45:11

在pre-commit中添加以下脚本以限制目录创建:

代码语言:javascript
复制
REPOS="$1"
TXN="$2"
DIRCHAR="/"
SVNLOOK=/opt/csvn/bin/svnlook
echo $($SVNLOOK changed -t "$TXN" "$REPOS" | awk '{print $2}') > /tmp/files_$TXN.txt
sed -i 's/ /&\n/g' /tmp/files_$TXN.txt
while read line
do
LASTCHAR=`echo $line | awk '{print substr($0,length,1)}'`
if [ "$LASTCHAR" == "$DIRCHAR" ]; then
    echo -e "Cannot commit directory." 1>&2
    exit 1
fi
done < /tmp/files_$TXN.txt
票数 1
EN

Stack Overflow用户

发布于 2013-02-02 08:54:38

在预提交钩子svnlook dirs-changed REPOS_PATH中执行并检查输出(| grep -v ...)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14657405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档