在尝试获取 git 控制下的项目的旧 svn 转储时,我遇到了一个有趣的问题。每当我运行
git svn
时,我都会收到一条错误消息,指出它不是 git 命令,但我可以使用 git help
提取它的文档。我的安装有问题吗,或者我只是在这里遗漏了一些东西?
编辑:我可能还应该提到我在 Windows XP 下运行 msysGit 版本 1.6.1.9.g97c34,我得到的错误是:
$ git svn git:“svn”不是 git 命令。请参阅“git --help”。 您指的是其中之一吗? FSCK 显示
我只是检查了我新安装的 ubuntu 盒子,即使安装了 git-core,它也没有安装。一个简单的:
sudo apt-get install git-svn
或者您的发行版等效版本应该可以修复它。
在 Ubuntu 上:
sudo add-apt-repository ppa:git-core/ppa
apt-get update
sudo apt-get install git-svn
我不确定 git svn 是否曾经与最近的 Git Windows 发行版(1.5.6 后)一起工作过。
许多问题之前已报告过,因此git svn
可能不会包含在当前的msysGit版本中。另一个当前活跃的“Windows 上的 Git”开发
mingw.git 在其 README 中确实声明 svn 不起作用。
Msysgit 的这个线程确实表明 git svn 可能会在某些时候重新集成,但进展仍然缓慢。
git-svn
再次工作。请参阅这个SO问题。
现代(2017)Git,git svn
已包含在内。
不需要
sudo apt-get install git-svn
WSL(适用于 Linux 的 Windows 子系统)shell 会话中实现。
sudo apt install git-svn
整理一下:
❯ git svn
git-svn - bidirectional operations between a single Subversion tree and git
...
$ git svn
Can't locate SVN/Core.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.10.0
/usr/lib/perl5/5.10.0/i486-linux-thread-multi
/usr/lib/perl5/5.10.0
/usr/lib/perl5/site_perl/5.10.0/i486-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.8
/usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.10.0/i486-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.10.0
/usr/lib/perl5/vendor_perl/5.8.8
/usr/lib/perl5/vendor_perl .) at
/usr/libexec/git-core/git-svn line 29.
因为我没有安装 Subversion Perl 绑定。尝试安装它们并再次运行命令。
sudo yum install git-svn
。
port install git +svn
(注意:您可能需要先
port deactivate git
)
sudo yum install git-svn
在@INC中找不到Git/SVN.pm(@INC包含:/usr/local/share/perl5 /usr/local/lib64/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) 在 /usr/local/libexec/git-core/git-svn 第 25 行。
我的解决方案:
sudo yum install subversion-perl
chmod 755 /usr/local/share/perl5/ (and sub dirs, as they were only readable by root)
sudo dnf install -y git-svn