【发布时间】:2019-07-08 13:17:11
【问题描述】:
我写了一个预提交钩子来检查trunk version.txt 文件与标签中的version.txt 相比是否更新了。 当我在控制台中运行脚本时,一切都很好,但是当我尝试提交时,我得到了这个
认证领域:http://localhost:80 Subversion Repository “www-data”的密码:svn:E070014:无法连接到 URL 'http://localhost/svn/myrepo2/tags' 的存储库
如果 --force-interactive 关闭,也会这样
svn: E215004: 身份验证失败,交互式提示是 禁用;查看 --force-interactive 选项
我一步一步检查了所有内容,似乎这就是导致问题的原因:
tag=$(svn list /some/path/tags --force-interactive | sort -n | tail -n 1 )
是否有任何替代 svn ls 来检查最新标签或文件夹标签中的文件?
#!/bin/bash
#get latest tag
tag=$(svn ls /some/path/tags --force-interactive | sort -n | tail -n 1)
#get content of file from the latest tag
fileFromTag=$(svn cat /some/path/tags/$tag/version.txt)
#get content of file from trunk
file=$(svn cat some/path/trunk/version.txt)
#compare current file with file from latest tag
if [ "$fileFromTag" == "$file" ]
then
echo "Update version.txt"
exit 1
fi
这是存储库结构
tags/
1.1.0/
version.txt
1.1.3/
version.txt
1.1.5/
version.txt
1.1.6/
version.txt
1.2.0/
version.txt
rel_1.0/
version.txt
trunk/
version.txt
【问题讨论】:
标签: linux bash svn svn-hooks pre-commit