Git-Svn是否存储Svn密码?

31

我正在使用git-svn管理几个工作项目,发现无论我执行什么操作,都会提示我输入Svn密码。对于某些操作,我会被提示多次(可能是因为幕后有多个动作在进行)。例如,当克隆一个存储库时,在克隆实际开始之前,我会被提示5次。

直接使用Svn的项目不会出现这种情况。这是否是预期的行为?是否有任何方法可以缓存我的凭据?

谢谢。

6个回答

32

最终我不得不删除auth目录,并允许Subversion为我重建它。似乎没有其他方法可行。对于那些不知道的人,auth目录位于~/.subversion(Mac/Linux)中。


谢谢!在我的情况下,在Windows上,这个方法可行,因为在我的密码文件中,passtype=wincrypt(并且有一个加密的密码),我将其从TortoiseSVN配置迁移过来。删除它后,它像你说的那样工作了,但现在它以明文形式保存密码(passtype=simple)。可能它与wincrypt或其他任何东西不兼容... - Dan
仍需移除钥匙串中存储的密码,请参考 https://dev59.com/qHRB5IYBdhLWcg3wgHWr#39800112。 - William Leung

8
在Sierra系统中,我遇到了类似的问题。使用存储凭据时,svn 可以正常工作,但git svn 无法使用存储的凭据,并且一直提示重新输入密码。
对我来说,解决方案是删除钥匙串中存储的密钥,然后在任何其他程序之前使用 git svn。如果git svn 是用于在钥匙串中存储密码的程序,则权限已正确设置。一旦git svn被用于在钥匙串中创建条目,那么就可以使用普通的svn,并允许访问由git svn创建的密钥,在这一点上,它们都可以无问题地使用仓库,而不需要我一直输入密码。
如果其他任何程序在钥匙串中设置密码,则该程序没有问题,但是git svn将不获得权限。

2
谢谢你,Paul!这让我疯狂了。删除与 git-svn 显示的提示相对应的钥匙串项目(Authentication realm: <http://subversion.xxx.com:80> Enter your user name & password for zzz SVN),然后使用 git-svn 进行设置就像你描述的那样: - Nuthatch
非常感谢!就是这个答案。https://dev59.com/DWQn5IYBdhLWcg3wxZni#55706141 - Philippp

3
也许是个愚蠢的想法,但我发现即使重置了钥匙串条目,git-svn 仍然会重新提示输入密码。因此,我更改了该项的访问控制,使得“所有应用程序”都可以访问它。看起来可以工作?

Keychain item Access Control


2

3
据我所知,所有的迹象都表明Svn可以正常识别密码。只有在我使用git-svn时才会提示我输入密码。我可以一整天进行Svn操作而不需要输入密码。 - Rob Wilkerson

0

我有类似的问题。最初我在远程 CentOS 服务器上尝试获取所有远程 SVN 分支,将它们推送到干净的源作为真正的 Git 分支,以进行从 SVN 到 Git 的硬切换:

for remote in `git branch -r` ; do git checkout $remote; git pull; done

在大约240个远程分支的情况下(我不可能为每个拉取输入我的密码),我最终做的是将repo通过scp传输到我的本地机器(一台Mac),并启用keychain来处理密码缓存。我将所有svn提交都拉到了本地,然后将我的repo复制回远程机器。


0
在OSX上,如果您之前使用过svn,那么似乎svn已经创建了一个密码条目(在OSX钥匙链应用程序中),而git svn无法使用也无法创建新的密码条目。症状是每次都会询问密码,并且SourceTree无法使用系统git(也无法使用内置git,因为另一个原因)。
我的解决方案是删除此条目,然后使用git svn一次,它将创建一个正确的条目。从那时起,SourceTree也可以正常工作。

https://dev59.com/DWQn5IYBdhLWcg3wxZni#55706141


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接