svn是一个跨平台的版本控制系统,它管理着随时间改变的各类数据,这些数据都是保存在中央资料档案库中的;svn会备份并记录每一个文件的修改更新变更,这样就能够很方便地将文件恢复到任一时间点的版本。vim
➜ ~ cat /etc/redhat-release CentOS release 5.10 (Final) ➜ ~ uname -m x86_64 ➜ ~ uname -r 2.6.18-371.11.1.el5
首先检查svn是否已安装:bash
➜ ~ rpm -qa subversion subversion-1.6.11-12.el5_10 subversion-1.6.11-12.el5_10
➜ ~ yum -y install subversion
创建svn数据存储根目录(svndata)及用户、密码、权限目录(svnpasswd)app
➜ ~ mkdir -p /application/svndata ➜ ~ mkdir -p /application/svnpasswd
启动svntcp
➜ ~ svnserve -d -r /application/svndata
查看svn是否启动svn
➜ ~ ps -ef|grep svn root 16969 1 0 13:38 ? 00:00:00 svnserve -d -r /application/svndata ➜ ~ netstat -lntup | grep 3690 tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 16969/svnserve ➜ ~ lsof -i :3690 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME svnserve 16969 root 3u IPv4 147101 0t0 TCP *:svn (LISTEN)
以建立项目sadoc为例:操作系统
➜ ~ svnadmin create /application/svndata/sadoc
配置容许用户andy读写访问版本控制
➜ ~ cd /application/svndata/sadoc/conf ➜ conf cp svnserve.conf svnserve.conf.bak ➜ conf vim svnserve.conf
修改以下内容:code
anon-access = none <--是否容许匿名访问 auth-access = write <--访问权限 password-db = /application/svnpasswd/passwd <--此处通常无需修改,保持默认便可;在此为了方便统一管理因而作了相应修改 authz-db = /application/svnpasswd/authz
查看修改的内容:server
➜ conf diff svnserve.conf.bak svnserve.conf
将密码认证文件模板拷贝到svnpasswd目录下it
➜ conf cp authz passwd /application/svnpasswd
修改文件权限:
➜ conf cd /application/svnpasswd ➜ svnpasswd chmod 700 *
编辑配置passwd文件,在[users]下添加相关信息:
andy = andy123
注意:
等号前为svn帐号,等号后为svn密码,密码是明文的,要注意密码权限
更改svnserver.conf后须要重启svn,更改authz或passwd文件后则无需重启svn
编辑配置authz文件,在[groups]下添加相关信息:
[sadoc:/] andy = rw
注意:
权限配置文件中出现的用户名必须已在用户配置文件中定义
对权限配置文件的修改当即生效,没必要重启svn
格式说明:
[groups] # harry_and_sally = harry,sally # harry_sally_and_joe = harry,sally,&joe 一个用户组能够包含一个或多个用户,用户间以逗号分隔。 # [repository:/baz/fuz] # @harry_and_sally = rw # * = r [sadoc:/] andy = rw [<版本库>:/项目/目录] @<用户组名>=<权限> <用户名>=<权限> 其中方框内部能够有多种写法: [/]表示根目录及如下,根目录是svnserve启动时指定的,咱们指定为/application/svndata,[/]就是表示对所有版本库设置权限 [repos:/]表示对版本库repos设置权限 [repos:/sadoc]表示对版本库repos中的sadoc项目设置权限 [repos:/sadoc/andy]表示对版本库repos中的sadoc项目的andy目录设置权限 权限主体能够是用户组、用户或*,用户组在前面加@,*表示所有用户 权限能够是w、r、wr和空,空表示无任何权限 authz中每一个参数都要顶格写,开头不能有空格
重启svn
➜ svnpasswd pkill svnserve ➜ svnpasswd svnserve -d -r /application/svndata