无法连接到存储库 SVN

Unable to to connect to repository SVN

我编写了一个预提交挂钩,用于检查 t运行k version.txt 文件与标记中的 version.txt 相比是否更新。 当我 运行 控制台中的脚本一切正常时,但是当我尝试提交时,我得到了这个

Authentication realm: http://localhost:80 Subversion Repository Password for 'www-data': svn: E070014: Unable to connect to a repository at URL 'http://localhost/svn/myrepo2/tags'

如果 --force-interactive 关闭,还有这个

svn: E215004: Authentication failed and interactive prompting is disabled; see the --force-interactive option

我一步步检查了所有内容,似乎那一行导致了问题:

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 command-line 客户端切换到 svnlook
  • 如果出于某种原因您必须在挂钩中使用 svn command-line 客户端,请使用 file:// URL 而不是 HTTP(S) URL。挂钩 运行 在本地与您的存储库和服务器位于同一台计算机上,因此直接访问存储库是有意义的。