ubuntu下SVN服务器安装配置
• 一、SVN安装
1.安装包
1 | $ sudo apt-get install subversion |
2.添加svn管理用户及subversion组
1 | $ sudo adduser svnuser zhangyang226 |
3.创建项目目录
1 | $ sudo mkdir /home/svn |
4.创建SVN文件仓库
1 | $ sudo svnadmin create /home/svn/robots |
5.访问方式及项目导入:
1 | $ svn co file:///home/svn/robots |
注意:
如果您并不确定主机的名称,您必须使用三个斜杠(///),而如果您指定了主机的名称,则您必须使用两个斜杠(//).
//–
下面的命令用于将项目导入到SVN 文件仓库:
$ svn import -m “New import” /home/svn/robots file:///home/svnuser/src/robots
一定要注明导入信息
//————————–//
6.访问权限设置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 修改 /home/svn/robots目录下:
svnserve.conf 、passwd 、authz三个文件,行最前端不允许有空格
//--
编辑svnserve.conf文件,把如下两行取消注释
password-db = password
authz-db = authz
//补充说明
# [general]
anon-access = read
auth-access = write
password-db = passwd
其中 anon-access 和 auth-access 分别为匿名和有权限用户的权限,默认给匿名用户只读的权限,但如果想拒绝匿
名用户的访问,只需把 read 改成 none 就能达到目的。
//--
编辑/home/svnuser/etc/passwd 如下:
[users]
mirze = 123456
test1 = 123456
test2 = 123456
//--
编辑/home/svnuser/etc/authz如下
[groups]
admin = mirze,test1
test = test2
[/]
@admin=rw
*=r
这里设置了三个用户mirze,test1,test2密码都是123456
其中mirze和test1属于admin组,有读和写的权限,test2属于test组只有读的权限
7.启动SVN服务
1 | svnserve -d -r /home/svn |
• 二、HTTP:// [apache]
1.安装包 [已安装subversion]
1 | $ sudo apt-get install libapache2-svn |
创建版本仓库:
1 | sudo svnadmin create /目录地址 |
1 | 目录地址必须存在,这个就是保存版本仓库的地方,不同的版本仓库创建不同的文件夹即可,比如: |
加入如下内容:
1 | <Location /project> |
location说的是访问地址,比如上述地址,访问的时候就是
1 | http://127.0.0.1/project |
• 三、同步更新 [勾子]
同步程序思路:用户提交程序到SVN,SVN触发hooks,按不同的hooks进行处理,这里用到的是post-commit,利用post-commit到代码检出到SVN服务器的本地硬盘目录,再通过rsync同步到远程的WEB服务器上。
知识点:
1、SVN的hooks
1 | # start-commit 提交前触发事务 |
2、同步命令rsync的具体参数使用
3、具有基个语言的编程能力bash python perl都可以实现
1 | post-commit具体实现细节 |
以上是具体的post-commit程序
注意事项:
1 | 1、一定要定义变量,主要是用过的命令的路径。因为SVN的考虑的安全问题,没有调用系统变量,如果手动执行是没有问题,但SVN自动执行就会无法执行了。 |