我正在使用 svn+ssh 连接到 svn 存储库,该存储库又使用 unix 用户名和密码进行身份验证。一切正常。
但是,我在托管存储库的同一台服务器上也有一个已检出版本的存储库。当我尝试使用在 svn+ssh 上运行良好的同一用户提交对此版本的存储库所做的更改时,我收到“身份验证失败”错误。另一方面,更新工作正常。
可能是什么问题?
您必须记住,如果您通过svn://
它进行访问,则依赖于内部 svn 身份验证令牌来访问服务,而不是您的 ssh 凭据。
如果我创建一个 svn 存储库:
svnadmin create `pwd`/SVN
svnserve -d --root `pwd`/SVN
从另一个窗口:
svn co svn://127.0.0.1
cd 127.0.0.1
touch foo; svn add foo; svn commit -m'[foo]' foo
产生错误:
svn: Commit failed (details follow):
svn: Authorization failed
然而:
svn co svn+ssh://127.0.0.1/home/pshanahan/SVN FRED
cd FRED
touch foo; svn add foo; svn commit -m'[foo]' foo
works without error as it relies on being able to access the repository as a local file.