Git svn 不使用 svn 凭据

Posted

技术标签:

【中文标题】Git svn 不使用 svn 凭据【英文标题】:Git svn does not use the svn credentials 【发布时间】:2017-07-21 19:51:09 【问题描述】:

我尝试从我们的 svn 存储库中克隆一个路径。存储库受密码保护。

我在我的 Windows 10 系统上找到了一些颠覆目录并为它们创建了符号链接。所以只有一个目录。

我打开了 git-bash 并启动了命令

svn checkout --username myuser --password mypassword svn://myserver/myrepository/myproject/trunk

SVN 在 auth/svn.simple 目录中创建了一个包含我的凭据的文件。文件以

开头
K 8
passtype
V 8
wincrypt
K 8
password
...

以下命令现在成功了:

svn update trunk

现在我想使用 git-svn:

git svn clone svn://myserver/myrepository/myproject --username myuser

但我得到的只是以下响应:

Initialized empty Git repository in D:/mylocalprojectpath/.git/
W: Item is not readable: Item is not readable at /mingw64/share/perl5/site_perl/Git/SVN.pm line 153.
**Error from SVN, (220001): Item is not readable: Item is not readable**

我发现的所有关于此错误的信息都表明这是一个身份验证问题。所以在我看来,git svn 不使用 svn 的存储凭据。

我做错了什么?一些建议?

【问题讨论】:

这是一次性迁移,之后您只想使用 Git,还是想从 Git 克隆提交回 SVN 存储库? 嗨,我想使用 Git 克隆中的 SVN 存储库。 【参考方案1】:

git-svn 不使用 SVN 的原因是它使用存储在 C:\Users\XXXX.subversion 的凭据,它是由 git-svn 创建的,而不是 SVN。 在我的情况下,来自 SVN 的错误,(220001):项目不可读:项目不可读也会发生。

解决方案是将凭证从 SVN 移动到 git-svn:

    使用 SVN 从服务器签出。记得保存身份验证。这可以为 SVN 创建凭据。文件存储在 C:\Users\XXXXX\AppData\Roaming\Subversion。 删除用户目录 C:\Users\XXXXX 下的 .subversion 文件夹(如果存在)。然后将 C:\Users\XXXXX\AppData\Roaming\Subversion 文件夹复制到 C:\Users\XXXXX。 然后将其重命名为 .subversion。由于名称以“.”开头,您可能需要在 cmd 控制台中使用“rename”命令对其进行重命名。 终于可以使用git-svn clone了。

【讨论】:

@Gerard 我想我回答了这个问题。问题是关于 git-svn clone 失败。我也遇到了这个问题。它是由 git-svn 凭据问题引起的。解决方案是将原始 SVN 凭据应用于 git-svn 凭据。

以上是关于Git svn 不使用 svn 凭据的主要内容,如果未能解决你的问题,请参考以下文章

Linux开发者的CI/CD配置jenkins凭据从github拉取代码

SVN - 用户目录权限

有没有办法创建一个无法访问日志的 SVN 用户?

将 SVN 与 kwallet 集成

如何在Xcode 9.x中使用SVN源代码控制?

如何更改默认 SVN 用户名和密码以提交更改?