无法连接到存储库SVN

时间:2019-07-08 13:17:11

标签: linux bash svn svn-hooks pre-commit

我写了一个预提交的钩子,用于检查主干version.txt文件是否与标记中的version.txt相比较。 当我在控制台中运行脚本时,一切都很好,但是当我尝试提交时,就已经有了

  

身份验证领域:http://localhost:80 Subversion存储库   “ www-data”的密码:svn:E070014:无法连接到   网址为“ 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

1 个答案:

答案 0 :(得分:0)

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

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