31

我在几个工作项目中使用 git-svn,我注意到几乎每执行一个操作,都会提示我输入我的 Svn 密码。对于某些操作,我会收到多次提示(大概 b/c 在幕后进行了几个操作)。例如,在克隆存储库时,在克隆实际开始之前会提示我 5 次。

我直接使用 Svn 的项目不这样做。这是预期的吗?我可以做些什么来缓存我的凭据吗?

谢谢。

4

6 回答 6

32

我最终不得不一起删除 auth 目录并允许 Subversion 为我重建它。似乎没有其他任何工作。对于不知道的人,auth 目录位于 ~/.subversion (Mac/Linux) 中。

于 2009-04-17T13:27:36.853 回答
8

我在 Sierra 也遇到了类似的问题。svn使用存储的凭据工作正常,但git svn不会使用存储的凭据,并不断提示重新输入。

我的解决方案是删除钥匙串中存储的密钥,然后git svn在任何其他程序之前使用。如果git svn是程序将密码存储在钥匙串中,则权限设置正确。一旦git svn用于在钥匙串中创建条目,则svn可以正常使用,并允许访问由创建的密钥git svn,此时他们都将使用存储库而没有任何问题,并且不会一直提示我输入密码.

如果任何其他程序在钥匙串中设置密码,则该程序没有问题,但git svn不会被授予权限。

于 2016-09-30T21:07:26.223 回答
3

也许是一个愚蠢的想法,但我发现git-svn即使在重置钥匙串条目后也会重新提示输入密码。所以我更改了该项目的访问控制,以便“所有应用程序”可以访问它。似乎工作?

钥匙串项访问控制

于 2016-10-04T22:41:10.797 回答
2

您应该要求 SVN 缓存您的凭据:

# $ svn update --username 'user2' --password 'password'
# user1@domain.com's password:

但是,正如 SO 问题Subversion 忽略“--password”和“--username”选项中提到的那样,检查到底是什么提示您输入密码。

于 2009-03-03T08:36:40.863 回答
0

我有一个类似的问题。最初,我在一个远程 centos 服务器上,试图抓取所有远程 svn 分支,将它们作为真正的 git 分支推送到一个干净的来源,以便通过以下方式从 svn 硬切换到 git:

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

那里有大约 240 个远程分支。(我不可能为每个拉动输入密码)

我最终做的是将 repo 下载到我的本地机器(mac)并启用钥匙串来处理密码缓存。我将所有 svn 提交都拉到本地,然后将我的 repo 复制回远程机器。

于 2013-12-19T19:03:18.380 回答
0

在 OSX 上,如果您以前使用过 svn,看起来 svn 已经创建了一个密码条目(在 OSX 密钥环应用程序中), git svn 不能使用也不能创建一个新的。症状是它每次都询问,并且 SourceTree 无法与 System git 一起使用(由于另一个原因,它也无法与内置 git 一起使用)。

我的解决方案是删除此条目,然后使用 git svn 一次,它将创建一个正确的条目。从那时起,SourceTree 也在工作。

https://stackoverflow.com/a/55706141/580672

于 2019-04-16T12:06:19.590 回答