博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MacOS下SVN迁移Git踩坑记
阅读量:7066 次
发布时间:2019-06-28

本文共 2985 字,大约阅读时间需要 9 分钟。

1. First Blood

之前在Windows环境下进行svn到git的迁移是很简单的,参考。

可是在macOS环境下(macOS High Sierra 10.13.2),输入:

$ git svn

神奇的事情发生了,报了以下错误:

can't locate SVN/Core.pm in @INC (you may need to install the SVN::Core module) (@INC contains: /usr/local/git/lib/perl5/site_perl/5.18.2/darwin-thread-multi-2level /usr/local/git/lib/perl5/site_perl/5.18.2 /usr/local/git/lib/perl5/site_perl /Library/Perl/5.18/darwin-thread-multi-2level /Library/Perl/5.18 /Network/Library/Perl/5.18/darwin-thread-multi-2level /Network/Library/Perl/5.18 /Library/Perl/Updates/5.18.2 /System/Library/Perl/5.18/darwin-thread-multi-2level /System/Library/Perl/5.18 /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level /System/Library/Perl/Extras/5.18 .) at /usr/local/git/lib/perl5/site_perl/Git/SVN/Utils.pm line 6.BEGIN failed--compilation aborted at /usr/local/git/lib/perl5/site_perl/Git/SVN/Utils.pm line 6.Compilation failed in require at /usr/local/git/lib/perl5/site_perl/Git/SVN.pm line 25.BEGIN failed--compilation aborted at /usr/local/git/lib/perl5/site_perl/Git/SVN.pm line 32.Compilation failed in require at /usr/local/git/libexec/git-core/git-svn line 21.BEGIN failed--compilation aborted at /usr/local/git/libexec/git-core/git-svn line 21.

看错误内容初步分析应该是svn安装问题,macOS是自带svn的,猜测svn损坏需要重新安装,Google之后找到重装方式:

  • 安装 Command Line Tools
$ xcode-select --install

选择安装 等5-6分钟就好了

  • 创建软链接
$ sudo ln -s /Applications/Xcode.app/Contents/Developer/Library/Perl/5.18/darwin-thread-multi-2level/SVN /System/Library/Perl/Extras/5.18/SVN$ sudo ln -s /Applications/Xcode.app/Contents/Developer/Library/Perl/5.18/darwin-thread-multi-2level/auto/SVN/ /System/Library/Perl/Extras/5.18/auto/SVN

2. Double Kill

ln: /System/Library/Perl/Extras/5.18/SVN: Operation not permitted

再次Google之后,了解到,由于El Capitan 系统保护机制,上述操作无效了。But,虽然不能写入 /System, 但是可以写入 /Library。

修改路径:

$ sudo mkdir /Library/Perl/5.18/auto$ sudo ln -s /Applications/Xcode.app/Contents/Developer/Library/Perl/5.18/darwin-thread-multi-2level/SVN /Library/Perl/5.18/darwin-thread-multi-2level$ sudo ln -s /Applications/Xcode.app/Contents/Developer/Library/Perl/5.18/darwin-thread-multi-2level/auto/SVN /Library/Perl/5.18/auto/

3. Triple Kill

再次输入git svn验证,结果还是报错。重新分析,git的常规命令,像更新、提交等都可以正常使用,唯独git svn执行会报错,会不会是git中某个组件有问题,Google之后查到可以单独安装:

$ brew install git svn

结果再再次报错,提示xcode版本过低,要我升级Xcode。之前有段时间没做Xcode为了清理空间把Xcode删掉了,重新下载5.5G,瞬间蛋疼了。

Updating Homebrew...Error: Your Xcode (8.3.2) is too outdated.Please update to Xcode 9.2 (or delete it).Xcode can be updated from the App Store.

一边下载过程中一边继续Google看有没有别的解决方法,终于在踏破铁鞋无觅处之后,找到了最终解决办法。

4. 终极方法

  • 打开用户协议,最后选择agree。
$ sudo xcodebuild -license
  • 安装 Command Line Tools
$ xcode-select --install
  • 使用cpan安装 SVN::Core包

    cpan是下载、安装、更新及管理的Perl工具

$ sudo cpan SVN::Core
  • 添加环境变量
#vim ~/.profile:export PATH=/Library/Developer/CommandLineTools/usr/bin:$PATH
  • 重装git,svn
$ brew reinstall git$ brew reinstall subversion

再次输入git svn验证,问题解决。


参考资料:

[1] Git-scm:
https://git-scm.com
[2]
https://paulschreiber.com/blog/2015/11/09/fixing-git-svn-on-os-x-el-capitan/

转载地址:http://jdall.baihongyu.com/

你可能感兴趣的文章
假装用某米赛尔号的角度看Python面向对象编程
查看>>
RGBA和OPACITY的区别&DISPLAY和VISIBILITY的区别
查看>>
膨胀的template class成员函数
查看>>
Flask之flask-mail邮件发送
查看>>
Immutable
查看>>
要提高团队代码质量,就要这么用Git进行版本控制!
查看>>
vue动态绑定图片和背景图
查看>>
nodejs最酷炫的模块——child_process - 子进程
查看>>
一键下载:将知乎专栏导出成电子书
查看>>
专栏开篇序——那些年我们用过的“轮子”
查看>>
QQ跳转支付宝领红包,一步到位,无需调用浏览器~附源码和演示动图
查看>>
125. 验证回文串
查看>>
Lombok注解笔记
查看>>
深入浅出 Node ( 二 ) 模块机制
查看>>
【跃迁之路】【493天】刻意练习系列252(2018.06.13)
查看>>
TiDB 在威锐达 WindRDS 远程诊断及运维中心的应用
查看>>
安装 VMware workstation
查看>>
敏捷仍然是王者,但持续集成却是难以实现的目标
查看>>
北大AI公开课2019 | 雷鸣:人工智能革命与机遇
查看>>
有赞电商云应用框架设计
查看>>