【问题标题】:Unable to to connect to repository SVN无法连接到存储库 SVN
【发布时间】: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


    【解决方案1】:

    该错误表示svn 客户端未对服务器进行身份验证,并且没有缓存凭据。但主要问题是您在挂钩脚本中运行的命令:

    • 考虑从svn 命令行客户端切换到svnlook
    • 如果由于某种原因您必须在挂钩中使用 svn 命令行客户端,请使用 file:// URL 而不是 HTTP(S) URL。该挂钩在您的存储库和服务器所在的同一台计算机上本地运行,因此直接访问存储库是有意义的。

    【讨论】:

    • 谢谢,切换到 svnlook 有帮助。
    猜你喜欢
    • 1970-01-01
    • 2011-09-30
    • 2018-07-15
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-26
    相关资源
    最近更新 更多