svn简要介绍及服务搭建

简介

svn是一个跨平台的版本控制系统,它管理着随时间改变的各类数据,这些数据都是保存在中央资料档案库中的;svn会备份并记录每一个文件的修改更新变更,这样就能够很方便地将文件恢复到任一时间点的版本。vim

安装配置Svn服务

准备操做系统并查看系统环境

➜  ~  cat /etc/redhat-release 
CentOS release 5.10 (Final)
➜  ~  uname -m
x86_64
➜  ~  uname -r
2.6.18-371.11.1.el5

安装svn

首先检查svn是否已安装:bash

➜  ~  rpm -qa subversion
subversion-1.6.11-12.el5_10
subversion-1.6.11-12.el5_10

若未安装则执行如下命令:

➜  ~  yum -y install subversion

配置并启动svn

创建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)

svn相关操做

创建项目版本库

以建立项目sadoc为例:操作系统

➜  ~  svnadmin create /application/svndata/sadoc

调整svn配置文件及权限文件

配置容许用户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

注意:

  1. 等号前为svn帐号,等号后为svn密码,密码是明文的,要注意密码权限

  2. 更改svnserver.conf后须要重启svn,更改authz或passwd文件后则无需重启svn

编辑配置authz文件,在[groups]下添加相关信息:

[sadoc:/]
andy = rw

注意:

  1. 权限配置文件中出现的用户名必须已在用户配置文件中定义

  2. 对权限配置文件的修改当即生效,没必要重启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
相关文章
相关标签/搜索