本文图文讲解苹果新系统macOS Big Sur(实际上包括Monterey以及以后的新系统都适用)无法使用svn的新解决方案,让你可以直接在控制台用svn — version查看svn版本信息,IntelliJ IDEA(另外包括JetBrains旗下的PhpStorm、PyCharm、DataGrip等)开发工具也不用再配svn路径了。
如果在上篇文章说的“/Library/Developer/CommandLineTools/usr/bin/”目录有svn可以不用弄这个,当然如果你想达到不用配置目录就可以使用svn也可以看看。
这次我们直接上subversion官网一探究竟,进来后直接点左边菜单“Binary Packages”,你会发现有句加粗比较显眼的话“The Apache Subversion project does not officially endorse or maintain any binary packages of the Subversion software.”,大概意识就是不提供编译好的安装包,但有志愿者在提供不同平台的安装包,也就是说官方只提供源码,你可以自己下载源码后去构建和安装Subversion。这个我还是不建议你去弄,因为等下各种瞎折腾还是没法通过configure,更不用说make install了,不过还是有各种组织或个人提供构建好的安装包,Windows平台大家都非常熟悉的乌龟TortoiseSVN,Mac平台也有一些,但是打开那些网站你会发现各种乱七八糟,有点心慌慌,那行吧我们用Homebrew来安装。
brew是macOS上的包管理工具,跟RHEL/CentOS上的yum或者Ubuntu上的apt-get一样。brew是用ruby开发的,需要确认ruby是否已安装,默认是已经安装的。后续很多工具我们都可以通过brew来安装。先用ruby -v查看ruby版本信息、用brew -v查看brew版本信息。
如果你执行brew -v报各种错误,那你还是先去把brew环境搭好再来弄吧,好在我已经写好搭brew环境教程了。
先执行brew update更新Homebrew,brew upgrade更新所有包。
用brew -v命令能打印出正常的brew版本信息,然后按官网提示的直接执行:brew options subversion,再执行brew install subversion,其实可以直接执行后面那个就行了。
上面警告还没发布支持macOS 11的版本,可能有些功能会受影响,但执行
svn --version
可以查询到subversion版本信息。
而且JetBrains旗下的开发工具都可以正常使用svn,记得把之前配的svn路径去掉哦。
安装后能正常查看到SVN版本信息,但连接服务器上的项目报“xxx Unable to connect to repository at URL xxx”的可以点上图的“Clear Auth Cache”,这个应该是权限缓存问题造成的。
另外如果安装brew没问题但是执行brew install subversion时却老是报源404问题,可以在安装brew时:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
选3(3、北京外国语大学下载源)或其他源试试看,也可以通过vim ~/.bash_profile直接修改源。
最近有读者通过微信小程序在线客服反馈问题说Mac安装好SVN但开发工具却无法通过svn读取旧项目:
具体如下图:
这个大家可以看一下能不能用开发工具重新checkout项目,如果可以建议重新checkout在新的workspaces然后把旧的代码目录替换过来就行了。这个可能是最新版本的svn不兼容旧的,或者你之前旧项目的svn文件有损坏,大家若还有其他问题可以像这位读者一样通过微信小程序在线客服向我提出问题,我会尽力帮助大家解决问题的。
另外可以通过brew upgrade subversion命令来更新svn版本,更新后在开发工具还是无法正常使用svn,可以通过更新开发工具看看,像我最近更新了macOS Monterey 12.3后所有开发工具都用不了,但更新开发工具后就可以用了。
好了记得关注公众号哦,为了大家的幸福,我都把我/Library/Developer/CommandLineTools/目录下的svn等全都删掉后重新xcode-select –install命令下载,发现果然没有svn,然后重新寻找解决方案的。
展开阅读全文
上一篇: 苹果电脑macOS搭brew环境
下一篇:Android Studio打包构建失败:Cannot fit requested classes in a single dex file (# methods: 67658 > 65536)