centos 配置svn
2014-04-16 17:10
99 查看
一,安装必须的软件包.
yum install subversion (SVN服务器)
二,基本的SVN服务器配置
1,新建一个目录用于存储SVN所有文件
# mkdir /home/svn
这里是版本库的根目录,这里一定要配合第6点启动svn时的根目录设置。
2,新建一个版本仓库
# svnadmin create /home/svn/project
注意:这里红色的路径,project是我们的一个版本仓库。
3,添加用户
要添加SVN用户非常简单,只需在/home/svn/project/conf/passwd文件添加一个形如“username=password"的条目就可以了.为了测试,我添加了如下内容:
[users]
# harry = harryssecret
# sally = sallyssecret
pm = pm_pw
server_group = server_pw
client_group = client_pw
test_group = test_pw
4,修改用户访问策略
/home/svn/project/conf/authz记录用户的访问策略,以下是参考:
[groups]
project_p = pm
project_s = server_group
project_c = client_group
project_t = test_group
[project:/]
@project_p = rw
* =
[project:/server]
@project_p = rw
@project_s = rw
* =
[project:/client]
@project_p = rw
@project_c = rw
* =
[project:/doc]
@project_p = rw
@project_s = rw
@project_c = rw
@project_t = rw
* =
以上信息表示,只有pm有根目录的读写权,server_group能访问server目录,client_group能访问client目录,所有人都可以访问doc目录.
注意:红色的project是版本库的名称,要配合第1点,第6点,如果你设置了只有project库有权限的话,而svn根目录设置错了,那么就会出现没有权限的错误。如果这里写成
[/]
@project_p = rw
@project_c = rw
* =
这种配置,那么在第6点设置svn根目录时应该写成"/home/svn/project",这样我们就可以通过“svn://192.168.60.10/”这种形式访问了。
5,修改svnserve.conf文件,让用户和策略配置升效.
svnserve.conf内容如下:
[general]
anon-access = none
auth-access = write
password-db = /home/svn/project/conf/passwd
authz-db = /home/svn/project/conf/authz
6,启动服务器
# svnserve -d -r /home/svn
注意:红色的是svn的根目录,如果设置成/home/svn/project那么就会出现没有权限的错误。
7,测试服务器
# svn co svn://192.168.60.10/project
Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18d
Password for 'root':
Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18d
Username: server_group
Password for 'server_group':
svn: Authorization failed ( server_group没用根目录的访问权 )
# svn co svn://192.168.60.10/project
Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18d
Password for 'root':
Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18d
Username: pm
Password for 'pm':
A project/test
A project/server
A project/client
Checked out revision 1. ( 测试提取成功 )
[root@localhost password]# killall svnserve //停止
# cd project/server
# vim main.c
# svn add main.c
# svn commit main.c -m "测试一下我的C程序,看什么看,不行啊??"
Adding main.c
Transmitting file data .
Committed revision 2. ( 测试提交成功 )
=================================================================
关于SVN中单版本库和多版本库的问题讲解。
以版本库目录“/home/svn“来讲解,我们在其下建立了project的一个库。那么
1、如果svnserve的启动参数 -r 所指定的目录为直接指定到版本库(称之为单库svnserve方式)
例如:svnserve -d -r /home/svn/project
在这种情况下,一个svnserve只能为一个版本库工作。 authz如果配置成下面这样就会出现权限错误,新手经常遇到这种错误:
---------------------
[groups]
admin=user1
[project:/]
@admin=rw
因为[project:/]表示project库的根目录,而按上面的启动参数,是没有库的概念的。 使用类似这样的URL:svn://192.168.0.1/ 即可访问project
--------------------
正确的应该是
[groups]
admin=user1
[/]
@admin=rw
--------------------
2、如果svnserve的启动参数 -r 所指定的目录为版本库的上级目录(称之为多库svnserve方式)
例如:svnserve -d -r /home/svn
这种情况,一个svnserve可以为多个版本库工作,这是如果想限制指定库的指定目录,就应该指定具体的库,像这样:
---------------------
[groups]
admin=user1
[project:/]
@admin=rw
如果此时你还用[/],则表示所有库的根目录,同理,[/src]表示所有库的根目录下的src目录 使用类似这样的svn://192.168.0.1/project1 即可访问project1 这样的svn://192.168.0.1/project2 即可访问project2
post-commit(利用SVN的钩子post-commit同步测试服务器代码)
1.cp post-commit.tmpl post-commit
chown apache.apache post-commit
chown -R apache.apache /opt/svn_tem_rep(确保web目录能访问,否则post-commit不会正常工作)
2.vi post-commit
#!/bin/sh
REPOS="$1"REV="$2"
/usr/bin/svn update /opt/svn_tem_rep --username yy702 --password yy702! --no-auth-cache
#mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf
3.修改权限
chown 755 post-commit
4.杀掉了svn服务进程后,又进行了启动。svnserve -d -r /usr/local/svn_dir.
出现问题:在第一次执行脚本之前需要checkout,/usr/bin/svn checkout file:///usr/local/svn_dir/ /usr/local/www/【其中
svn_dir
为svn部署目录,
/usr/local/www/
为同步目录】
svn随系统启动
在/etc/init.d目录建立一个脚本文件runSVN.sh
# cd /etc/init.d
# vim runSVN .sh
输入 runSVN .sh内容如下(/kaifa/svn
为svn仓库目录):
打开(vi或gedit) /etc/rc.d/rc.local ,在最后添加一行内容如下:
/root/svn.sh
yum install subversion (SVN服务器)
二,基本的SVN服务器配置
1,新建一个目录用于存储SVN所有文件
# mkdir /home/svn
这里是版本库的根目录,这里一定要配合第6点启动svn时的根目录设置。
2,新建一个版本仓库
# svnadmin create /home/svn/project
注意:这里红色的路径,project是我们的一个版本仓库。
3,添加用户
要添加SVN用户非常简单,只需在/home/svn/project/conf/passwd文件添加一个形如“username=password"的条目就可以了.为了测试,我添加了如下内容:
[users]
# harry = harryssecret
# sally = sallyssecret
pm = pm_pw
server_group = server_pw
client_group = client_pw
test_group = test_pw
4,修改用户访问策略
/home/svn/project/conf/authz记录用户的访问策略,以下是参考:
[groups]
project_p = pm
project_s = server_group
project_c = client_group
project_t = test_group
[project:/]
@project_p = rw
* =
[project:/server]
@project_p = rw
@project_s = rw
* =
[project:/client]
@project_p = rw
@project_c = rw
* =
[project:/doc]
@project_p = rw
@project_s = rw
@project_c = rw
@project_t = rw
* =
以上信息表示,只有pm有根目录的读写权,server_group能访问server目录,client_group能访问client目录,所有人都可以访问doc目录.
注意:红色的project是版本库的名称,要配合第1点,第6点,如果你设置了只有project库有权限的话,而svn根目录设置错了,那么就会出现没有权限的错误。如果这里写成
[/]
@project_p = rw
@project_c = rw
* =
这种配置,那么在第6点设置svn根目录时应该写成"/home/svn/project",这样我们就可以通过“svn://192.168.60.10/”这种形式访问了。
5,修改svnserve.conf文件,让用户和策略配置升效.
svnserve.conf内容如下:
[general]
anon-access = none
auth-access = write
password-db = /home/svn/project/conf/passwd
authz-db = /home/svn/project/conf/authz
6,启动服务器
# svnserve -d -r /home/svn
注意:红色的是svn的根目录,如果设置成/home/svn/project那么就会出现没有权限的错误。
7,测试服务器
# svn co svn://192.168.60.10/project
Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18d
Password for 'root':
Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18d
Username: server_group
Password for 'server_group':
svn: Authorization failed ( server_group没用根目录的访问权 )
# svn co svn://192.168.60.10/project
Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18d
Password for 'root':
Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18d
Username: pm
Password for 'pm':
A project/test
A project/server
A project/client
Checked out revision 1. ( 测试提取成功 )
停止重启SVN
[root@localhost password]# killall svnserve //停止# cd project/server
# vim main.c
# svn add main.c
# svn commit main.c -m "测试一下我的C程序,看什么看,不行啊??"
Adding main.c
Transmitting file data .
Committed revision 2. ( 测试提交成功 )
=================================================================
关于SVN中单版本库和多版本库的问题讲解。
以版本库目录“/home/svn“来讲解,我们在其下建立了project的一个库。那么
1、如果svnserve的启动参数 -r 所指定的目录为直接指定到版本库(称之为单库svnserve方式)
例如:svnserve -d -r /home/svn/project
在这种情况下,一个svnserve只能为一个版本库工作。 authz如果配置成下面这样就会出现权限错误,新手经常遇到这种错误:
---------------------
[groups]
admin=user1
[project:/]
@admin=rw
因为[project:/]表示project库的根目录,而按上面的启动参数,是没有库的概念的。 使用类似这样的URL:svn://192.168.0.1/ 即可访问project
--------------------
正确的应该是
[groups]
admin=user1
[/]
@admin=rw
--------------------
2、如果svnserve的启动参数 -r 所指定的目录为版本库的上级目录(称之为多库svnserve方式)
例如:svnserve -d -r /home/svn
这种情况,一个svnserve可以为多个版本库工作,这是如果想限制指定库的指定目录,就应该指定具体的库,像这样:
---------------------
[groups]
admin=user1
[project:/]
@admin=rw
如果此时你还用[/],则表示所有库的根目录,同理,[/src]表示所有库的根目录下的src目录 使用类似这样的svn://192.168.0.1/project1 即可访问project1 这样的svn://192.168.0.1/project2 即可访问project2
post-commit(利用SVN的钩子post-commit同步测试服务器代码)
1.cp post-commit.tmpl post-commit
chown apache.apache post-commit
chown -R apache.apache /opt/svn_tem_rep(确保web目录能访问,否则post-commit不会正常工作)
2.vi post-commit
#!/bin/sh
REPOS="$1"REV="$2"
/usr/bin/svn update /opt/svn_tem_rep --username yy702 --password yy702! --no-auth-cache
#mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf
3.修改权限
chown 755 post-commit
4.杀掉了svn服务进程后,又进行了启动。svnserve -d -r /usr/local/svn_dir.
出现问题:在第一次执行脚本之前需要checkout,/usr/bin/svn checkout file:///usr/local/svn_dir/ /usr/local/www/【其中
svn_dir
为svn部署目录,
/usr/local/www/
为同步目录】
svn随系统启动
在/etc/init.d目录建立一个脚本文件runSVN.sh
# cd /etc/init.d
# vim runSVN .sh
输入 runSVN .sh内容如下(/kaifa/svn
为svn仓库目录):
svnserve -d --listen-port 3690 -r
/home/svndata
添加可执行权限
chmod 777 runSVN.sh
添加自动运行
打开(vi或gedit) /etc/rc.d/rc.local ,在最后添加一行内容如下:
/root/svn.sh
相关文章推荐
- Linux(centOS6.5)下SVN的安装、配置及开机启动
- centos 版本阿里云上配置svn服务器,eclipse连接的时候提示:由于目标计算机积极拒绝,无法连接
- CentOS SVN 服务端 客户端 应用安装配置
- 阿里云服务器centos下安装配置svn服务器
- Jenkins安装及配置持续集成(Maven+SVN+Tomcat+Centos6.5)
- CentOS SVN安装与配置 (RHEL5.4平台测试通过)
- 在CentOS中安装配置Svn+Ssl+Mysql
- CentOS6.5安装配置SVN
- CentOS下通过yum安装svn及配置
- centos系统安装配置svn服务器
- centos 配置svn服务器
- centos 配置svn http serve
- centOS 6.3 上配置SVN服务器
- Centos 6.5上Apache + PAM + SVN服务安装配置(使用本地系统用户认证)
- centos7.3安装与配置SVN
- CentOS 6.5系统上安装SVN服务器端的方法及目录访问权限配置(转总结)
- CentOS svn 安装与配置方法
- Centos 6.4安装配置apache平台的svn服务器
- Centos 5.3 Nginx+php+mysql配置 独立的 Subversion (SVN)服务器
- CentOS6.3配置SVN之subversion1.7.7