我正在使用svn + ssh连接到svn存储库,而svn存储库又使用unix用户名和密码进行身份验证。一切正常。
但是,我还在托管存储库的同一台服务器上签出了一个存储库版本。当我尝试使用与svn + ssh工作正常的相同用户提交对此版本的存储库所做的更改时,我收到“身份验证失败”错误。另一方面,更新工作正常。
可能是什么问题?
答案 0 :(得分:1)
您必须记住,如果您通过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
无错误地工作,因为它依赖于能够作为本地文件访问存储库。