svn搭建(linux下)
2017-04-25 17:14 ZengGW 阅读(331) 评论(0) 编辑 收藏 举报安装svn:
依赖包: yum install openssl openssl-devel
问题(可以忽略不计):configure: WARNING: we have configured without BDB filesystem support
1.下载安装包(一般我放到/usr/local/src/package/目录下面):
wget http://subversion.tigris.org/downloads/subversion-1.6.1.tar.gz
wget http://subversion.tigris.org/downloads/subversion-deps-1.6.1.tar.gz
2.解压下载好的两个文件(两个解压到一个目录,无需创建两个目录)
tar -zxvf subversion-1.6.1.tar.gz
tar -zxvf subversion-deps-1.6.1.tar.gz
3.进入解压目录:cd subversion-1.6.1/
4.编译安装:./configure --prefix=/usr/local/svn make && make install
5.安装成功后获取一下svn的版本信息:/usr/local/svn/bin/svnserve --version
6.将svn的bin目录加到环境变量中去:
PATH=$PATH:/usr/local/svn/bin
export PATH
7.建立一个svn的根目录,项目不止一个:
mkdir -p /home/zgw/www/(这里随你,可以建成/home/www/)
8.建立仓库:
svnadmin create /home/zgw/www/repos/
9.递归导入工程到版本库:
svn import svntest file:///home/zgw/www/repos -m "Initial repository test"
10.修改svnserve.conf(在仓库目录下面的conf目录下面/home/zgw/www/repos/conf):
[general]
anon-access = none(一开始是read,改成none)
auth-access = write
password-db = passwd(去掉前面注释,去读取passwd文件的账户信息)
authz-db = authz(去掉前面的注释,去读取authz文件的配置信息)
realm = /home/zgw/www/repos(认证空间)
11.目录控制文件authz:
[groups]
admin=zgw(创建一个admin组,并指定某些用户为该组的组员)
[repos:/](制定目录下的权限)
@admin = rw(admin组的用户权限)
* = r(其他人的权限)
12.编辑用户密码passwd文件:
[users]
zgw = 123456(指定用户zgw的密码是123456)
13.启动svn(因为可能有多个项目,所以就启动多版本,如果是单一版本):
多版本:svnserve -d -r /home/zgw/www
单一版本:svnserve -d -r /home/zgw/www/版本控制器名称
14.检出代码:比如项目目录lift(检出svn的代码到项目目录)
cd /home/zgw/www/lift/
svn co svn://127.0.0.1/repos ./ --username zgw(zgw是svn账户)
15.编辑钩子(zgw是svn账户)
cd /home/zgw/www/repos/(svn目录版本目录)
touch post-commit
将一下内容编辑到post-commit中:
#!/bin/bash
export LANG="zh_CN.UTF-8"
/usr/local/svn/bin/svn update /home/zgw/www/lift/ --username zgw --password 123456
(这里注意一下:如果写错svn update /home....会报错:提示找不到svn命令,这时候直接找到svn安装目录下的bin目录下有个svn的二进制文件,直接使用pwd获取路径写到post-commit文件--标红的就是)
修改权限:chmod 777 /home/zgw/www/repos/hooks/post-commit
16.启动svn:
svnserve -d -r /home/data/svn/
其中 -d 表示守护进程, -r 表示在后台执行
/home/data/svn/ 为svn的版本控制目录
17.关闭svn:
这里采取linux杀死进程的方式处理的
ps -ef|grep svnserve
root 4967 1 0 Aug23 ? 00:00:00 svnserve -d -r repository/
这里 kill -9 4967杀死进程, 此4967为进程号