无法连接到存储库SVN



我编写了一个预先签名的挂钩,该挂钩检查Trunk version.txt文件是否与标签中的version.txt进行了更新。当我在控制台中运行脚本时,一切都很好,但是当我尝试提交时,我已经有了这个

身份验证领域:http://localhost:80 subversion存储库 " 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

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

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

最新更新