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