目录
参考文献
svn服务器linux离线安装_somdip的博客-CSDN博客
https://www.csdn.net/tags/Mtjakg5sMTU1MTItYmxvZwO0O0OO0O0O.html
安装svn客户端
其实svn安装包既是客户端,又是服务端
如果有可视化界面,可以安装rabbitVCS。(适合自己的电脑和服务器)
如果有网络,且有root权限,可以按下面这样安装。(适合自己的电脑和服务器)
sudo apt-get install subversion
如果是公司的服务器,极有可能是没有网络,没有可视化/图形界面,甚至没有root权限,访问不了/usr/local。
如果你是这种情况,恭喜你,来错了。
重要事情说三遍
我以为可以把安装路径全都改成自定义的路径,但最后一步那边出现问题,不会解决了。下面操作仅作为参考,如果有谁知道后续如何修改,欢迎评论留言。
我以为可以把安装路径全都改成自定义的路径,但最后一步那边出现问题,不会解决了。下面操作仅作为参考,如果有谁知道后续如何修改,欢迎评论留言。
我以为可以把安装路径全都改成自定义的路径,但最后一步那边出现问题,不会解决了。下面操作仅作为参考,如果有谁知道后续如何修改,欢迎评论留言。
下面正式开始下载和安装
下载
百度网盘:
链接: https://pan.baidu.com/s/1z9nzYz8hlFJ0fVZAynuZuA?pwd=1g8y 提取码: 1g8y 复制这段内容后打开百度网盘手机App,操作更方便哦
安装
将下载的文件解压后得到一堆tar文件,将这些tar文件解压后,放到某个目录下,假设为myPath。
解压命令可参考下面
tar -xzvf apr-1.6.5.tar.gz
tar -xzvf expat_2.0.1.orig.tar.gz
tar -xzvf apr-util-1.6.1.tar.gz
tar -xf zlib-1.2.11.tar.xz
tar -xzvf sqlite-autoconf-3260000.tar.gz
tar -xzvf subversion-1.11.0.tar.gz
安装apr
在myPath目录下
1)进入apr安装包目录
cd apr-1.6.5
2)修改文件configure中大概在30392行处的RM='$RM'为RM='$RM -f',否则后续执行./configure时会报cannot remove 'libtoolT':No such file or directory的错。
3) 执行下面命令(安装路径的父目录假设为myPath2)
PS:第一个命令是通过Makefile.in和configure文件生成Makefile文件。第二个命令是进行编译和安装。
./configure --prefix=<myPath2>/apr
make && make install
安装expat
在myPath目录下
1)进入expat安装包目录
cd expat-2.0.1
2) 执行下面命令(安装路径的父目录假设为myPath2)
./configure --prefix=<myPath2>/expat
make && make install
安装apr-util
在myPath目录下
1)进入apr-util安装包目录
cd apr-util-1.6.1
2) 执行下面命令(安装路径的父目录假设为myPath2)
./configure --prefix=<myPath2>/apr-util --with-apr=<myPath2>/apr --with-expat=<myPath2>/expat
make && make install
安装zlib
在myPath目录下
1)进入zlib安装包目录
cd zlib-1.2.11
2) 执行下面命令(安装路径的父目录假设为myPath2)
./configure --prefix=<myPath2>/zlib
make && make install
复制或移动文件夹sqlite-autoconf
在myPath目录下
#可以复制
mkdir -p ./subversion-1.11.0/sqlite-amalgamation
cp -r sqlite-autoconf-3260000/* ./subversion-1.11.0/sqlite-amalgamation
#也可以直接移动
mv sqlite-autoconf-3260000 ./subversion-1.11.0/sqlite-amalgamation
安装subversion
在myPath目录下
1)进入subversion安装包目录
cd subversion-1.11.0
2) 执行下面命令(安装路径的父目录假设为myPath2)
./configure --prefix=<myPath2>/subversion --with-apr=<myPath2>/apr --with-apr-util=<myPath2>/apr-util --with-zlib=<myPath2>/zlib --with-lz4=internal --with-utf8proc=internal
make && make install
TODO:
好了,这里出了些问题。
首先是找不到<myPath2>/expat-2.0.1/lib/libexpat.la,那我就一开始生成的时候路径就带上版本号或者把路径下expat文件夹改成expat-2.0.1呗。
然后是找不到/usr/local/apr/lib/libapr-1.la,不知道怎么改了,前面肯定有哪里路径里还有没有把默认的/usr/local改成<myPath2>的情况。
对于有root权限的人来说倒是不影响,直接各个路径都默认就行。
命令行使用SVN
出了问题没关系,我后来又拿到root权限了,那就不用改路径了。而且我通过yum直接从公司内网下载安装了subversion。
如果你想搭svn服务器,网上教程很多,我这边不讲,我也不会。这边主要讲如何通过命令行连接svn服务器和使用svn。
对svn客户端的使用见我下面这篇文章中svn命令部分
这里放一些有极大需求,但十分难用的命令
添加到changelist并且提交某个changelist
// 将a.txt和b.txt加入到名为needtocommit的changelist下
$ svn cl needtocommit a.txt b.txt
// 提交needtocommit中的文件
$ svn ci --cl needtocommit -m "any message"
这里你可以设置一个changelist叫ignore-oncommit,把不需要提交的文件放到这里,但是好像不能在提交的时候排除该changelist的内容。在win中tortoiseSVN倒是有实现这个功能,不知道它怎么实现的。
提交错误的代码后,希望将服务器版本回滚到之前的状态,但是自己本地不回滚(因为要修改后继续提交)
很难用命令行直接做到,直接revert或者merge会把本地代码覆盖掉。也许可以用暂存代码的方式保存本地修改。
暂时的方法只能是,在其他svn客户端下连接我们的svn服务器,然后用下面方法回滚服务器代码
$ svn merge -r <当前版本号>:<要回滚的版本号> .
$ svn commit -m "回滚到版本xxxx"
然后在我们要提交代码的svn客户端下,进行新的提交。