我正在使用git-svn和几个工作项目,我注意到,对于我采取的每一个动作,我都会收到提示输入我的Svn密码。对于某些动作,我会多次被提示(可能是b / c后面有几个动作)。例如,在克隆存储库时,在克隆实际开始之前,我会提示5次。
我直接使用Svn的项目不会这样做。这是预期的吗?我可以做些什么来缓存我的凭据?
谢谢。
我最终不得不一起删除auth目录,并允许Subversion为我重建它。似乎没有其他工作。对于任何不知道的人,auth目录都在〜/ .subversion(Mac / Linux)中。
我在Sierra遇到了类似的问题。 svn
使用存储的凭证工作得很好,但是git svn
不会使用存储的凭证,并且会一直提示重新输入。
我的解决方案是删除钥匙串中存储的密钥,然后在任何其他程序之前使用git svn
。如果git svn
是将密码存储在钥匙串中的程序,则权限已正确设置。一旦git svn
被用来在keychain中创建条目,那么可以使用普通的svn
,并允许访问git svn
创建的密钥,此时他们都会使用存储库而不会出现任何问题,并且不会提示我输入密码每时每刻。
如果任何其他程序在密钥链中设置密码,那么该程序没有问题,但git svn
将不会被授予权限。
您应该要求SVN缓存您的凭据:
# $ svn update --username 'user2' --password 'password'
# [email protected]'s password:
但是,正如SO问题qazxsw poi中所提到的那样,检查一下是什么促使您输入密码。
也许是一个愚蠢的想法,但我发现即使在重置钥匙串条目后,Subversion ignoring “—password” and “—username” options也会重新提示输入密码。所以我更改了该项的访问控制,以便“所有应用程序”都可以访问它。似乎工作?
git-svn
在OSX上,如果您之前使用过svn,看起来svn已经创建了一个密码条目(在OSX密钥环应用程序中),git svn不能使用也不能创建新的密码条目。症状是它每次都询问,并且SourceTree没有使用System git(也没有使用内置git,因为另一个原因)。
我的解决方案是删除此条目,然后使用git svn一次,它将创建一个正确的条目。从那时起,SourceTree也在工作。
for remote in `git branch -r` ; do git checkout $remote; git pull; done