Windows上SVN客户端官网:https://tortoisesvn.net/
Linux上SVN官网: http://subversion.apache.org
[root@localhost ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/subversion/subversion-1.9.12.tar.gz
[root@localhost ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.7.0.tar.gz
[root@localhost ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
[root@localhost ~]# wget https://www.sqlite.org/2019/sqlite-amalgamation-3300100.zip
#[root@localhost ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.41.tar.gz
#[root@localhost ~]# wget https://www.apache.org/dist/serf/serf-1.3.9.tar.bz2
#[root@localhost ~]# wget http://www.zlib.net/fossils/zlib-1.2.11.tar.gz
#[root@localhost ~]# wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
[root@localhost ~]# mkdir /usr/local/apr
[root@localhost ~]# tar -zxvf apr-1.7.0.tar.gz
[root@localhost ~]# cd apr-1.7.0
[root@localhost apr-1.7.0]# ./configure --prefix=/usr/local/apr
出现 这个提示: cannot remove `libtoolT’: No such file or directory
解决方案: 编辑 configure文件,查找 $RM "$cfgfile" 这个地方,用#注释掉,然后重新编译安装就可以了。
[root@localhost apr-1.7.0]# make;make install
[root@localhost apr-1.7.0]# cd
[root@localhost ~]# mkdir /usr/local/apr-util
[root@localhost ~]# tar -zxvf apr-util-1.6.1.tar.gz
[root@localhost ~]# cd apr-util-1.6.1
[root@localhost apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@localhost apr-util-1.6.1]# make;make install
出现 这个提示:
xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory
#include
^
解决方案:yum install -y expat-devel*
[root@localhost apr-util-1.6.1]# cd
[root@localhost ~]# mkdir /usr/local/svn
[root@localhost ~]# tar -zxvf subversion-1.9.12.tar.gz
[root@localhost ~]# cd subversion-1.9.12
[root@localhost subversion-1.9.12]# ./configure --prefix=/usr/local/svn --with-apr-util=/usr/local/apr-util --with-apr=/usr/local/apr
出现如下提示:
Please either install a newer sqlite on this system
or
get the sqlite 3.7.15.1 amalgamation from:
http://www.sqlite.org/sqlite-amalgamation-3071501.zip
unpack the archive using unzip and rename the resulting
directory to:
/root/subversion-1.9.12/sqlite-amalgamation
configure: error: Subversion requires SQLite
解决方案
[root@localhost ~]# unzip sqlite-amalgamation-3300100.zip
[root@localhost ~]# cd subversion-1.9.12
[root@localhost subversion-1.9.12]# mkdir sqlite-amalgamation
[root@localhost subversion-1.9.12]# cp ../sqlite-amalgamation-3300100/* ./sqlite-amalgamation/
[root@localhost subversion-1.9.12]# make;make install
创建保存版本库的目录
[root@localhost subversion-1.9.12]# mkdir /usr/local/SvnRepository
创建svn版本库
svnadmin create 路径
版本库没有指定一定需要创建在某个目录下
[root@localhost subversion-1.9.12]# /usr/local/svn/bin/svnadmin create /usr/local/SvnRepository/testrpo
#在/usr/local/SvnRepository/目录下创建testrpo版本库
创建版本库时可以配置的参数:
--fs-type #用来指定版本库数据保存类型,该参数的类型有fsfs和dbd,推荐使用fsfs数据类型。
例如:在/usr/local/SvnRepository/目录下创建testrpo1版本库并指定版本库保存数据的类型为fsfs。
[root@localhost subversion-1.9.12]# /usr/local/svn/bin/svnadmin create --fs-type fsfs /usr/local/SvnRepository/testrpo1
[root@localhost subversion-1.9.12]# ls -lrt /usr/local/SvnRepository/
total 0
drwxr-xr-x. 6 root root 86 Dec 16 21:08 testrpo
drwxr-xr-x. 6 root root 86 Dec 16 21:12 testrpo1
[root@localhost subversion-1.9.12]#
删除版本库
rm -rvf 版本库路径
直接使用Linux的删除命令将版本库删除即可
例:删除/usr/local/SvnRepository/目录下的testrpo2版本库
[root@localhost SvnRepository]# rm -rvf testrpo2
版本库配置及权限分组
版本库的配置:
版本库的配置文件位于创建的版本库的目录下的conf目录下
[root@localhost subversion-1.9.12]# ls -lrt /usr/local/SvnRepository/testrpo/conf/
total 20
-rw-r--r--. 1 root root 4371 Dec 16 21:08 svnserve.conf
-rw-r--r--. 1 root root 309 Dec 16 21:08 passwd
-rw-r--r--. 1 root root 885 Dec 16 21:08 hooks-env.tmpl
-rw-r--r--. 1 root root 1080 Dec 16 21:08 authz
该目录下文件保存的信息分别为:
authz:配置用户组合用户组的权限
passwd:配置用户名和用户密码
svnserve.conf:配置默认权限、权限配置文件及密码配置文件
svnserve.conf配置文件
使用编辑器打开svnserve.conf文件
[root@localhost conf]# vi svnserve.conf
将注释掉的重要配置信息解注释,更改未通过验证的用户权限为none,其他配置为默认
更改完成保存退出。
passwd配置文件:
使用编辑器打开passwd文件
[root@localhost conf]# vi passwd
authz****配置文件:
使用编辑器打开authz文件
[root@localhost conf]# vi authz
用户组(group)配置,该配置的格式为组名等于用户名列表,每个用户需要用逗号隔开,每一行表示一个用户组。
配置组的权限时需要在组的前面加上@符号
例:
用户组配置:
配置用户组pm,组员为zxr
配置用户组dev,组员为zxr0,zxr1,zxr2
配置用户组rookie,组员为zxr3
pm = zxr
dev = zxr0,zxr1,zxr2
rookie = zxr3
指定根目录配置用户组权限:
pm组具有读写权限(rw),dev组只有读权限(r),rookie组只有读权限(r),
此处的读(r)表示:在客户端可以跟新服务器上的代码到本地
此处的写(w)表示:在客户端可以提交代码到服务器
[/]
@pm = rw
@dev = r
@rookie = r
指定版本库配置权限:
配置testrpo版本库权限为pm组可读写(rw),用户zxr1可读写(rw),用户zxr2只能读(r),用户zxr3无权限
[testrpo:/]
@pm = rw
zxr1 = rw
zxr2 = r
zxr3 =
指定版本库下的某个目录或文件权限配置:
配置testrpo版本库下的test01目录的权限为所有人可读写(rw)
[testrpo:/test01]
* = rw
*表示所有用户
版本库的访问
svn是属于集中式的版本库解决方案,访问拓扑图:
SVN是跨平台的,可以在任何系统上访问SVN服务器上的内容。
指定启动运行创建的版本库testrpo
[root@localhost bin]# svnserve --listen-port 443 -d -r /usr/local/SvnRepository/testrpo
[root@localhost bin]# netstat -antlup|grep 443
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 94004/./svnserve
在Linux上svn服务器上保存的是二进制文件,所以在svn服务器的版本库中看不到提交到svn服务器上的文件,只有通过Linux上的客户端才能看到svn版本库中的文件。
在/usr/local/目录下创建svn工作副本文件svnwork
[root@localhost local]# mkdir /usr/local/svnwork
进入创建的工作副本svnwork
[root@localhost local]# cd svnwork/
检出svn版本库
[root@localhost svnwork]# /usr/local/svn/bin/svn checkout svn://192.168.249.128:443
Checked out revision 0.
[root@localhost svnwork]# ls -la
total 0
drwxr-xr-x. 3 root root 18 Dec 16 21:30 .
drwxr-xr-x. 19 root root 243 Dec 16 21:06 ..
drwxr-xr-x. 4 root root 96 Dec 16 21:30 .svn
提交文件
[root@localhost svnwork]# echo test >test.txt
[root@localhost svnwork]# /usr/local/svn/bin/svn add test.txt
A test.txt
向svn服务器提交test.txt文件
提交命令; svn commit -m "注释" 需要提交的文件
[root@localhost svnwork]# svn commit -m "commit create file testl.txt" test.txt
-m "commit create file cl.txt"表示注释
更新版本库(必须先进入到检出的目录下执行该更新命令,否则会报错没有找到工作副本)
[root@localhost svnwork]# svn update
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞4
添加新评论0 条评论