Linux(CentOS)搭建SVN服务器

1.安装命令

yum -y install subversion

查看SVN安装位置

rpm -ql subversion

查看SVN版本

svnserve --version

 

2.创建版本库根目录(此仅为目录,为后面创建版本库提供存放位置)

mkdir /home/svn

 

3.创建SVN版本库(创建项目)

svnadmin create /home/svn/project1
svnadmin create /home/svn/project2

创建成功后,进入project1目录下

cd /home/svn/project1

进入目录,可以看见如下文件信息:

 

创建版本库公共配置文件存放目录,随便打开一个项目版本库复制一份conf目录(即:/home/svn/project1/conf)到 /home/svn 目录下

cp -r /home/svn/project1/conf /home/svn/conf

清空刚才创建的项目版本库conf目录,删除库的所有配置文件

rm -f /home/svn/project1/conf/*
rm -f /home/svn/project2/conf/*

 

 

4.修改配置

进入conf目录

cd /home/svn/conf

conf目录下,一共存放三份重要的配置文件,如下:

authz:负责账号权限的管理,控制账号是否读写权限

passwd:负责账号和密码的用户名单管理

svnserve.conf:svn服务器配置文件

编辑 authz 文件

@group1 = rw 中的"rw"意思是[groups]下定义的用户对指定的版本库有读写权限 

 

编辑 passwd 文件

 

编辑 svnserve.conf 文件(注意:配置的前面不能有空格,一定要顶格写)

#配置匿名用户不可读(none匿名用户不可读写)
anon-access = none
#授权用户可写 auth
-access = write #使用哪个文件作为账号文件
password
-db = ../../conf/passwd #使用哪个文件作为权限文件
authz
-db = ../../conf/authz #认证空间名,版本库所在目录,该文件只为了后面方便复制到每个项目下的conf目录下,每个项目下的svnserv.conf中需要指明当前项目的目录
realm
= /home/svn(后面单个项目中的svnserve.conf就需要设置如:realm = /home/svn/project1)

复制 svnserve.conf 配置文件到刚创建的所有项目版本库的conf目录下

cp -f /home/svn/conf/svnserve.conf /home/svn/project1/conf/svnserve.conf
cp -f /home/svn/conf/svnserve.conf /home/svn/project2/conf/svnserve.conf

修改/home/svn/project1/conf/svnserve.conf

realm = /home/svn/project1

修改/home/svn/project2/conf/svnserve.conf

realm = /home/svn/project2

注意:当SVN服务启动时/home/svn/conf下的svnserve.conf文件并不会被版本库载入,而真正被载入的配置是相对每个project/conf里的svnserve.conf文件,所以只是备份在当前目录下为了以后添加项目时方便复制到新的project/conf里,但是所有项目版本库conf目录下的svnserve.conf文件中“realm”都是不一样的!当然每个project/conf里的svnserve.conf文件都复制好并设置好“realm”后,/home/svn/conf下的svnserve.conf文件也可以被删掉。

 

5.自行配置好防火墙(默认3690端口)

云服务器配置好安全组

CentOS7放开端口

firewall-cmd --permanent --add-port=3690/tcp

firewall-cmd --reload

 

6.启动SVN服务器(注意:如果在一台服务器上同时启动多个版本管理,那么启动路径必须是所有项目仓库的根路径)

svnserve -d -r /home/svn

也可再设置别的端口(默认端口3690)

svnserve --listen-port 3691 -d -r /home/svn

查看端口是否开启

netstat -ntlp

查看进程号

ps -A | grep svn

关闭进程号

kill 进程号

查看SVN启动结果

ps -ef | grep svnserve

 

7.访问SVN服务器

Windows系统

svn://ip地址/project1

Linux系统

svn co svn://ip地址/project1

其他命令

//查看目录列表
svn list --username 账号 [版本库目录]

//查看文件详细信息
svn info --username 账号 [版本库目录]

//查看日志
svn log --username 账号 [版本库目录]

//检出版本库
svn checkout --username 账号 svn://ip地址/[目录] [目标目录]

//更新版本库
svn update [版本库目录]

 

8.配置使用systemctl管理SVN(CentOS7)

创建/etc/systemd/system/svn.service文件

vi /etc/systemd/system/svn.service

并写入内容

[Unit]
Description=Subversion Server
[Service]
Type=forking
ExecStart=/usr/bin/svnserve --daemon --root /home/svn
ExecStop=/usr/bin/killall svnserve
Restart=always
[Install]
WantedBy=default.target

其中,“/home/svn”是SVN仓库的根路径,请根据情况修改。

 

通知systemd有个新服务添加

systemctl daemon-reload

启动和停止SVN服务

systemctl start svn.service
systemctl stop svn.service

配置开机自动启动

systemctl enable svn.service

检查SVN服务运作状态

systemctl status svn.service

查看是否开机启动

systemctl is-enabled svn.service

 

posted @ 2019-02-18 10:44  PengYunjing  阅读(283)  评论(0编辑  收藏  举报