操作系统CentOS7.6

一、部署SVN服务端

RPM安装subversion 1.8.19

CentOS默认的rpm仓库安装的是1.7版本。这边通过配置RPM仓库来安装1.8版本的SVN

1.配置RPM仓库

先卸载操作系统上旧版的svn

1
2
3
4
5
6
cat /etc/yum.repos.d/wandisco-svn.repo
[WandiscoSVN]
name=Wandisco SVN Repo
baseurl=http://opensource.wandisco.com/centos/7/svn-1.8/RPMS/$basearch/
enabled=1
gpgcheck=0

2.RPM安装

1
2
rpm -qa|grep -i subversion
yum -y install subversion
  • rpm安装超时
1
2
3
4
5
如果出现错误:** [Errno 14] curl#6 - "Couldn't resolve host ..."** 则添加一个域名服务器:
vi /etc/resolv.conf
添加一条:
nameserver 8.8.8.8
yum clean all

二、配置版本库test(svn://方式访问)

1.创建目录结构

1
2
3
4
5
6
7
8
9
mkdir -p /data/svn/{svn_data,svn_log,svn_pass,svn_trash}


[root@localhost svn]# ll
total 0
drwxr-xr-x. 3 apache apache 31 Jan 21 16:59 svn_data # 项目版本库根目录
drwxr-xr-x. 2 apache apache 6 Jan 21 15:45 svn_log # 版本库日志目录
drwxr-xr-x. 3 apache apache 18 Jan 21 15:49 svn_pass # 多个版本库配置文件统一放这里
drwxr-xr-x. 2 apache apache 6 Jan 21 15:45 svn_trash

2.创建版本库test

1
2
# 要在版本库根目录下创建
svnadmin create /data/svn/svn_data/test

3.配置文件

统一配置文件

把以下3个文件拷贝到/data/svn/svn_passwd路径下,目的是多个版本间库共用用户账号与主配置文件:

  • svnserve.conf - 版本库的主配置文件
  • passwd - 添加用户账户、用户密码
  • authz - 添加用户组、项目权限
1
2
cp /data/svn/svn_data/conf/{authz,passwd,svnserve.conf}  /data/svn_passwd/  # 把各个仓库下的authz,passwd文件放到一起,统一授权管理
chmod 700 /data/svn/svn_passwd/{authz,passwd} # 使用此种手工配置的SVN用户密码是明文,用svnmanage web页面来配置的密码是密文

配置svnserve.conf

1
2
3
4
5
6
7
vim /data/svn/svn_data/conf/svnserve.conf
[general]
anon-access=none # 不允许匿名访问
auth-access=write # 允许的可以写
password-db = /data/svn/svn_passwd/passwd # 指定用户-密码的文件
authz-db = /data/svn/svn_passwd/authz # 指定用户权限的文件
realm = test Repo # 仓库名称

配置用户账号passwd

以这种passwdsvn自带的用户账号文件来启动的,svn客户端就是以svn://192.168.100.158/test这种方式来访问服务端。

1
2
3
vim /data/svn/svn_pass/passwd
[users]
1330lyc = 123456

配置权限authz

1
2
3
4
5
6
7
8
[groups]
ops_test = 1330lyc,admin

[/]
@ops_test = rw

[test:/]
@ops_test = rw

4.启动SVN

1
2
3
4
5
svnserve -d -r /data/svn/svn_data/ --config-file /data/svn/svn_pass/svnserve.conf

# -d 后台运行
# -r 版本库根目录路径
# --config-file 指定启动配置文件

5.配置服务启动脚本

  • 在svn服务启动脚本的全局环境中加入以下配置:
1
2
shell > vim /etc/init.d/svnserve
OPTIONS="-r /data/svn/svn_data/ --config-file /data/svn/svn_passwd/svnserve.conf"

6.服务端查看svn仓库项目下的文件

1
2
3
svn list --verbose file:///data/svn_data/sadoc/

--verbose 打印额外的信息

三、SVN客户端(svn://方式访问)

Windows客户端

1
2
3
4
5
6
7
安装:下载小乌龟svn客户端在Windows上安装,安装汉化版的语言包,全部下一步直至安装完成
连接:在d盘里新建一个文件夹:svn客户端---右击:选择:svn-checkout(检出,第一次操作,只有这个)
填上刚配的服务器的地址:svn://192.168.99.207/sadoc/
checkout的地址为:d:svn客户端 (推荐用域名,不用ip)采用默认:full recursive (完全递归)
输入用户名和密码:lyc1330,123456 (这时就会多出个文件夹,并且里面有.svn的隐藏文件) (能出现这一步:证明能连到服务器)
在这文件夹里新建一个文档(.svn文件夹的同级目录)(当成新代码提交) ,会到上级目录(svncheckout生成的目录):右键: ,commit(提交)
查看服务器上是否提交上去:右键(svncheckout生成的目录)--> TortoiseSVN ---> Repo-browser

Linux客户端

1.checkout检出

在第一次使用用checkout检出

1
2
svn checkout svn://192.168.99.207/sadoc /data/oldgirl_svn3 --username=oldgirl --password=123456
svn co svn://192.168.99.207/sadoc /data/oldgirl_svn3 --username=oldgirl --password=123456

2.commit更新文件

先添加,在提交

1
2
3
4
5
svn add *
svn commit -m "oldgirl commit 2"
svn ci -m "oldgirl commit 2"

-m tag描述,可以通过钩子来控制tag

3.update下载文件

1
svn update svn://192.168.99.207/sadoc /data/oldgirl_svn --username=oldgirl --password=123456