错误 Git SVN 克隆:使用未初始化的值 $sha1

Posted

技术标签:

【中文标题】错误 Git SVN 克隆:使用未初始化的值 $sha1【英文标题】:Error Git SVN clone: Use of uninitialized value $sha1 【发布时间】:2021-08-24 16:32:06 【问题描述】:

当我尝试使用命令克隆 SVN 存储库时

$ git svn clone https://subversion.random.repository

我收到以下错误消息:

Use of uninitialized value $sha1 in regexp compilation at /Library/Perl/5.30/Git/SVN.pm line 1023.
Tree is not a valid sha1: d3644f530de0da96374737160492a677f42c86b8

虽然我正在尝试下载特定的存储库,但我尝试克隆其他几个 SVN 存储库,都导致上述错误消息。

我正在使用安装了 macOS Big Sur (11.4) 的 MacBook。 Git 和 Subversion 都是通过 Homebrew 安装的,也可以通过 Perl 安装。

但是,$ git svn clone ... 命令调用的脚本/usr/local/opt/git/libexec/git-core/git-svn 是使用安装在 macOS 上的标准 Perl 版本 (5.30.2) 执行的,即该脚本的第一行读取为 #!/usr/bin/perl

[我知道这与previous discussions 形成鲜明对比,建议将#!/usr/bin/perl 替换为#!/usr/local/bin/perl,因此使用Homebrew 的Perl 安装(版本5.34)。但是,对我来说,这会导致另一个错误消息,即error: git-svn died of signal 11]。

如上所述,直到今天一切都很顺利。从上周五到今天,我唯一做的就是更新和升级 Homebrew,而现在,$ git svn 不再工作了。 今天早上我无法更新存储库。除此之外,不幸的是,我严重破坏了我的本地副本,因此我现在不得不再次克隆整个存储库。

如果有人知道这里出了什么问题,或者我可以尝试什么来解决问题,我会非常高兴。

非常感谢。

干杯,

斯文纳德

【问题讨论】:

可能会与git(或git-svn,如果它是一个单独的产品;不记得了)的开发人员一起进行测试。 【参考方案1】:

问题解决了!

我将在安装过程中通过 Homebrew 创建的整个目录 /Library/Perl/5.30/Git 替换为直接从 GitHub 上的原始源下载的挂件。

现在,一切都再次完美正常。我会通知 Homebrew 目前可能有问题。

【讨论】:

以上是关于错误 Git SVN 克隆:使用未初始化的值 $sha1的主要内容,如果未能解决你的问题,请参考以下文章

(不仅需要会使用svn,也要会使用git命令行)

git-svn 使用方式

Git与SVN交叉使用

git - 如何克隆本地 svn 存储库?

如何 git-svn 从 Subversion 存储库克隆最后 n 个修订?

Git学习笔记