M1使用还是很爽的,特别是定制16g内存后,基本上无以前的卡顿问题了。

但是兼容确实是一个长久的问题

不用折腾的办法

想直接homebrew使用svn,最好能恢复原来的文件,把/usr/local/目录下的homebrew迁移到/opt目录下,这种一劳永逸。

不得不折腾的办法

但是我的丢了,问了朋友也没有,于是开始了折腾记。
直接brew install svn后

在IDEA使用svn,疯狂

Some errors occurred while accessing svn working copy database

而且还不能自动保存账号密码

于是找到了
https://www.v2ex.com/t/729784

后来用着不爽,还是折腾一下

我自己安装的brew 里已经有了apr 和apr-util

wget http://mirrors.ustc.edu.cn/gentoo/distfiles/subversion-1.14.1.tar.bz2
tar xf subversion-1.14.1.tar.bz2
cd subversion-1.14.1

./configure --prefix=/opt/homebrew/Cellar/subversion/1.14.1 --with-apr=/opt/homebrew/opt/apr --with-apr-util=/opt/homebrew/opt/apr-util --with-utf8proc=/opt/homebrew/opt/utf8proc

于是有了第一个错误

configure: error: Subversion requires LZ4 >= r129, or use --with-lz4=internal

修改加上 with-lz4

./configure --prefix=/opt/homebrew/Cellar/subversion/1.14.1 --with-apr=/opt/homebrew/opt/apr --with-apr-util=/opt/homebrew/opt/apr-util --with-utf8proc=/opt/homebrew/opt/utf8proc --with-lz4=internal

于是继续出错

subversion/libsvn_delta/text_delta.c:29:10: fatal error: 'apr_md5.h' file not found

于是自己下载编译

wget http://archive.apache.org/dist/apr/apr-util-1.6.1.tar.bz2 
tar xf apr-util-1.6.1.tar.bz2
cd apr-util-1.6.1
./configure --prefix=/usr/local/opt/apr-util-svn --with-apr=/opt/homebrew/opt/apr
make && make install

然后继续之前的,把apr-util目录换掉

./configure --prefix=/opt/homebrew/Cellar/subversion/1.14.1 --with-apr=/opt/homebrew/opt/apr --with-apr-util=/usr/local/opt/apr-util-svn --with-utf8proc=/opt/homebrew/opt/utf8proc --with-lz4=internal

编译成功了,一阵惊喜,使用命令看一看可以用了

svn --version

按楼上说的安装之后,发现还是报错
于是翻到了这个
https://blog.csdn.net/hell_oword/article/details/113182301
查日志的方法找到确实是sqllite的报错

配置后的错误处理 Some errors occurred while accessing svn working copy database
我遇到的问题发生在本地代码更新时,idea 疯狂报错,本地代码的更新会被回退掉
按照以下思路排查:先看下idea的报错日志,如图依次点击
在这里插入图片描述
如果报错和 sqlite 有关,是由于 idea的jar包错误导致,sqlite-jdbc-3.21.0.1 不知持当前系统,需要更换lib目录下的jar包 Contents/lib/sqlite-jdbc-3.21.0.1 > Contents/lib/sqlite-jdbc-3.32.3.3.jar
太慢了,直接用maven下载
下载地址
https://repo1.maven.org/maven2/org/xerial/sqlite-jdbc/3.32.3.3/sqlite-jdbc-3.32.3.3.jar
官方已作出说明
https://youtrack.jetbrains.com/issue/IDEA-257549

maven的太慢
换成aliyun的https://maven.aliyun.com/mvn/search
直接搜索下载
替换jar包后,果然没问题了

发现新问题

自己安装的svn不支持http和https协议的svn地址

svn: E170000: Unrecognized URL scheme for https://ip:port/xxx/trunk/

于是又一顿折腾
了解到1.8之后,使用serf支持
于是,继续折腾
基本上出现的问题
https://blog.csdn.net/yangyouchang/article/details/104675366
大致上如上

scons: Reading SConscript files ...
  File "/home/shenyong/serf-1.3.9/SConstruct", line 186
    print 'Warning: Used unknown variables:', ', '.join(unknown.keys())
                                           ^
SyntaxError: invalid syntax


于是就安装serf,
我用的是scons安装

brew install scons

然后安装手动编译安装serf吧

wget https://ftp.tsukuba.wide.ad.jp/software/apache/serf/serf-1.3.9.tar.bz2
tar xf serf-1.3.9.tar.bz2
cd serf-1.3.9
scons PREFIX=/usr/local/opt/serf APR=/opt/homebrew/opt/apr APU=/usr/local/opt/apr-util-svn OPENSSL=/opt/homebrew/opt/openssl

此处说明:一定要指定apr,apu,openssl的路径,因为scons安装不会自动找brew库,另外PREFIX指定到/usr/local需要文件夹权限,我放到了/usr/local/opt下
如果没有openssl就brew install openssl咯

上面用python3编译肯定会报错,要编译通过牵涉到对SConstruct文件的修改

#一个是 169行,需要增加.decode('utf-8'),修改如下
env.File('serf.h').get_contents().decode('utf-8'),

#一个是大概185行附近的,把if和打印注释掉
#if unknown:
#  print 'Warning: Used unknown variables:', ', '.join(unknown.keys())

修改完善后

scons PREFIX=/usr/local/opt/serf APR=/opt/homebrew/opt/apr APU=/usr/local/opt/apr-util-svn OPENSSL=/opt/homebrew/opt/openssl
scons install

此处就安装好了serf了

这样就可以愉快的安装svn了

./configure --prefix=/opt/homebrew/Cellar/subversion/1.14.1 --with-apr=/opt/homebrew/opt/apr --with-apr-util=/usr/local/opt/apr-util-svn --with-utf8proc=/opt/homebrew/opt/utf8proc --with-lz4=internal --with-serf=/usr/local/opt/serf
make clean 
make && make install

暂时写到这里,如果还有问题,再补充