web服务器 技术随笔

linux SVN服务器创建版本库 , svn 启动 , svn 重新启动,svn 关闭

一、安装与建库

1、安装 svn 服务(CentOS/RedHat):

yum install subversion

2、新建一个目录统一存放所有版本库:

mkdir -p /opt/svn/svndata/

3、为项目 project_1 创建一个版本仓库:

svnadmin create /opt/svn/svndata/chengxudaren

执行后,/opt/svn/svndata/chengxudaren/ 下会生成 conf、db、hooks 等目录,项目的所有配置都在 conf/ 中。

二、配置权限

(1)svnserve.conf 主配置文件:

vi /opt/svn/svndata/chengxudaren/conf/svnserve.conf
anon-access = read        # 匿名可读
auth-access = write       # 验证用户可读写
password-db = passwd       # 用户名密码文件
authz-db   = authz        # 权限配置文件

注意:每一行前方绝对不能有空格,否则会报 Option expected 错误!

(2)passwd 用户名密码文件:

vi /opt/svn/svndata/chengxudaren/conf/passwd
[users]
manager1 = 123456
manager2 = 123123
manager3 = 888888

每一行都是“用户名=密码”的格式。

(3)authz 用户权限文件:

vi /opt/svn/svndata/chengxudaren/conf/authz
[groups]
managers = manager1,manager2   # 定义群组
[/]
@managers = rw                 # 群组有读写权限
manager3  = r                  # manager3 只读
* =                             # 其余用户无任何权限

配置中出现 Invalid authz configuration 的解决:常见原因是 [/] 写成了 [/] 之后又在前面加了多余缩进/换行,保证 [/] 单独成行、前面无空格即可。

三、启动 / 重启 / 关闭

启动前先看是否已运行:

ps -ef | grep svnserve     # 查看是否已有 svnserve 进程
killall svnserve            # 若已启动,先关闭所有进程
svnserve -d -r /opt/svn/svndata/   # 以守护模式启动

指令说明:-d 以守护进程方式运行,默认监听 3690 端口;-r 指定 svn 服务根目录,这样客户端可用相对路径访问,而不必写完整路径。可用 --listen-port 3688 指定其它端口、--listen-host 指定监听地址。需要多个版本库时,可启动不同端口:

svnserve -d --listen-port 3688 -r /static/

检查端口是否监听:

netstat -ntlp | grep 3690
# tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 15087/svnserve

四、检出(checkout)到网站根目录

svn checkout svn://182.92.186.23/chengxu /path/to/webroot
# 简写
svn co svn://182.92.186.23/chengxu /path/to/webroot

分支检出示例(红色为版本库路径,蓝色为本地检出目录):

svn co svn://115.28.46.188/fsc/branch/branch_fsc_area /alidata/www/testshop.ftosc.com

执行后按提示输入 passwd 中配置的用户名与密码即可。首次检出会提示是否明文保存密码,输入 yes/no 即可。

相关阅读:svn 错误代码详解svn 操作命令大全

标签
centossvn