我在几个工作项目中使用 git-svn,我注意到几乎每执行一个操作,都会提示我输入我的 Svn 密码。对于某些操作,我会收到多次提示(大概 b/c 在幕后进行了几个操作)。例如,在克隆存储库时,在克隆实际开始之前会提示我 5 次。
我直接使用 Svn 的项目不这样做。这是预期的吗?我可以做些什么来缓存我的凭据吗?
谢谢。
我最终不得不一起删除 auth 目录并允许 Subversion 为我重建它。似乎没有其他任何工作。对于不知道的人,auth 目录位于 ~/.subversion (Mac/Linux) 中。
我在 Sierra 也遇到了类似的问题。svn
使用存储的凭据工作正常,但git svn
不会使用存储的凭据,并不断提示重新输入。
我的解决方案是删除钥匙串中存储的密钥,然后git svn
在任何其他程序之前使用。如果git svn
是程序将密码存储在钥匙串中,则权限设置正确。一旦git svn
用于在钥匙串中创建条目,则svn
可以正常使用,并允许访问由创建的密钥git svn
,此时他们都将使用存储库而没有任何问题,并且不会一直提示我输入密码.
如果任何其他程序在钥匙串中设置密码,则该程序没有问题,但git svn
不会被授予权限。
您应该要求 SVN 缓存您的凭据:
# $ svn update --username 'user2' --password 'password'
# user1@domain.com's password:
但是,正如 SO 问题Subversion 忽略“--password”和“--username”选项中提到的那样,检查到底是什么提示您输入密码。
我有一个类似的问题。最初,我在一个远程 centos 服务器上,试图抓取所有远程 svn 分支,将它们作为真正的 git 分支推送到一个干净的来源,以便通过以下方式从 svn 硬切换到 git:
for remote in `git branch -r` ; do git checkout $remote; git pull; done
那里有大约 240 个远程分支。(我不可能为每个拉动输入密码)
我最终做的是将 repo 下载到我的本地机器(mac)并启用钥匙串来处理密码缓存。我将所有 svn 提交都拉到本地,然后将我的 repo 复制回远程机器。
在 OSX 上,如果您以前使用过 svn,看起来 svn 已经创建了一个密码条目(在 OSX 密钥环应用程序中), git svn 不能使用也不能创建一个新的。症状是它每次都询问,并且 SourceTree 无法与 System git 一起使用(由于另一个原因,它也无法与内置 git 一起使用)。
我的解决方案是删除此条目,然后使用 git svn 一次,它将创建一个正确的条目。从那时起,SourceTree 也在工作。