**环境准备
[root@lb01 ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
[root@lb01 ~]# uname -r
2.6.32-696.el6.x86_64
安装SVN
yum install -y subversion
[root@lb01 ~]# rpm -qa subversion
subversion-1.6.11-15.el6_7.x86_64
配置SVN并启动SVN
建立SVN版本库数据存储根目录svndata和用户,密码权限目录svnpasswd
[root@lb01 ~]# mkdir -p /application/svndata #创建数据存储目录
[root@lb01 ~]# mkdir -p /application/svnpasswd #创建密码和授权目录
[root@lb01 ~]# svnadmin create /application/svndata/sadoc #初始化SVN项目目录
[root@lb01 ~]# tree /application/svndata/ #查看刚刚初始化的创建有哪些东西
/application/svndata/
`-- sadoc
|-- README.txt
|-- conf #配置文件目录
| |-- authz
| |-- passwd
| `-- svnserve.conf
|-- db
| |-- current
| |-- format
| |-- fs-type
| |-- fsfs.conf
| |-- min-unpacked-rev
| |-- rep-cache.db
| |-- revprops
| | `-- 0
| | `-- 0
| |-- revs
| | `-- 0
| | `-- 0
| |-- transactions
| |-- txn-current
| |-- txn-current-lock
| |-- txn-protorevs
| |-- uuid
| `-- write-lock
|-- format
|-- hooks
| |-- post-commit.tmpl
| |-- post-lock.tmpl
| |-- post-revprop-change.tmpl
| |-- post-unlock.tmpl
| |-- pre-commit.tmpl
| |-- pre-lock.tmpl
| |-- pre-revprop-change.tmpl
| |-- pre-unlock.tmpl
| `-- start-commit.tmpl
`-- locks
|-- db-logs.lock
`-- db.lock
[root@lb01 ~]# cd /application/svndata/sadoc/conf/ #进入配置目录
[root@lb01 conf]# cp svnserve.conf svnserve.conf.ori #修改配置文件备份原来的配置文件
[root@lb01 conf]# vim svnserve.conf
12 anon-access = none #修改anon-access参数,参数解释:能不能允许匿名访问,none为不可以。
13 auth-access = write #认证访问,设置为可写
20 password-db = /application/svnpasswd/passwd #密码文件路径
27 authz-db = /application/svnpasswd/authz #授权文件路径 放在统一路径到时候多个项目可以方便以后管理
[root@lb01 conf]# cp authz passwd /application/svnpasswd/ #把配置目录中的authz 和passwd拷贝到刚刚设置的路径
[root@lb01 conf]# svnserver --help #查看帮助
-bash: svnserver: command not found
[root@lb01 conf]# svnserve --help
svnserve: warning: cannot set LC_CTYPE locale
svnserve: warning: environment variable LANG is en
svnserve: warning: please check that your locale name is correct
usage: svnserve [-d | -i | -t | -X] [options]
Valid options:
-d [--daemon] : daemon mode #后台启动
-i [--inetd] : inetd mode
-t [--tunnel] : tunnel mode
-X [--listen-once] : listen-once mode (useful for debugging)
-r [--root] ARG : root of directory to serve #指定根目录
-R [--read-only] : force read only, overriding repository config file
--config-file ARG : read configuration from file ARG
--listen-port ARG : listen port #监听的端口默认3690
[mode: daemon, listen-once]
--listen-host ARG : listen hostname or IP address #监听的主机和IP
[mode: daemon, listen-once]
-T [--threads] : use threads instead of fork [mode: daemon]
--foreground : run in foreground (useful for debugging)
[mode: daemon]
--log-file ARG : svnserve log file #日志文件
--pid-file ARG : write server process ID to file ARG #PID文件
[mode: daemon, listen-once]
--tunnel-user ARG : tunnel username (default is current uid's name)
[mode: tunnel]
-h [--help] : display this help #帮助
--version : show program version information #版本
[root@lb01 conf]# svnserve -d -r /application/svndata/
svnserve: warning: cannot set LC_CTYPE locale
svnserve: warning: environment variable LANG is en
svnserve: warning: please check that your locale name is correct
这是一个 LANG环境变量导致的问题,如果使用中文的字符集不会出现这种情况,也不影响SVN使用,也可以使用下面的source设置一下就不会提示
[root@lb01 conf]# source /etc/sysconfig/i18n #启动前可以使用source处理
[root@lb01 conf]# lsof -i :3690 #查看SVN的端口是否启动成功
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
svnserve 29340 root 3u IPv4 36359 0t0 TCP *:svn (LISTEN)
刚刚svnserve.conf配置文件设置了通过passwd文件认证访问,所以编辑passwd文件添加访问用户和密码
[root@lb01 conf]# cd /application/svnpasswd/
[root@lb01 svnpasswd]# vim passwd
[users]
**# harry = harryssecret
# sally = sallyssecret****
dayu = 123456 #(访问SVN的用户名和密码)
xiaoyu = 123456
stu001 = 123
stu002 = 456
由于SVN的密码文件是明文的,可以通过ldap或者域的方式,集中管理
[root@lb01 svnpasswd]# vim authz #用户权限的授权配置
20
21 [groups] #组
22 ygtq = stu001,stu002
23
24 [sadoc:/] #对应初始化的项目目录,设置哪些用户可读可写。
25 dayu = rw #(r为读,w为写)
26 xiaoyu = r
27 @ygtq = r #用户组只读
SVN服务端配置完成**
客户端在百度云提供了下载地址:
链接: https://pan.baidu.com/s/19e0f_dze56vQqrnZAFmw2w 密码: v97w
安装完客户端之后重启电脑让软件生效
第一次安装有SVN Checkout字样