linux下安装svn以及实现同步web服务器~~

来源:互联网 发布:linux文件指针file 编辑:程序博客网 时间:2024/06/06 02:13

1、使用yum安装subservice

yum -y install subversion

当出现此页面时表示已经安装成功~

2、创建以及配置svn版本库

a、首先创建版本库【所有仓库的根目录】

mkdir -p /home/svnroot/svndata/     //-p表示自动创建父文件夹

b、然后创建子仓库【此处可以创建多个子仓库】

svnadmin create /home/svnroot/svndata/doit/

svnadmin create /home/svnroot/svndata/im/

......

c、启动svn服务,在客户端即可checkout~

svnserve -d -r /home/svnroot/svndata/

注意:如果你创建了子仓库,想要所有的仓库都能被使用,就必须要在svnserve 命令后面接父仓库的目录,否则只能操作其中的一个仓库,并且浏览的链接要写成相应的子目录地址,比如:

svn://你的IP/doit

svn://你的IP/im

如果不带子仓库名,会报错

d、配置svnserve.conf

使用vi命令,vi  /home/svnroot/svndata/doit/conf/svnserve.conf

在文件末尾添加如下代码

<span style="white-space:pre"></span>anon-access = none<span style="white-space:pre"></span><span style="white-space:pre"></span>auth-access = write<span style="white-space:pre"></span>password-db = passwd<span style="white-space:pre"></span>authz-db    = authz
       保存退出~

e、编辑authz配置用户权限

同样使用vi命令,vi /home/svnroot/svndata/doit/conf/authz

然后添加如下代码:

[/]
xxx = rw

第一行表示对所有的仓库,第二行表示用户xxx有读写的权限

f、编辑passwd配置用户名密码

打开方法同上,然后添加如下代码

xxx = 123456

                表示xxx用户,密码为123456

3、与web目录同步

a、首先使用checkout命令将web目录导入到子仓库

svn co svn://IP地址/doit  /home/sources/doit

这样就可以在客户端使用checkout导出web代码了

b、使用钩子同步web目录

首先进入子仓库的hooks目录:cd  /home/svnroot/svndata/doit/hooks

然后复制文件:cp post-commit.tmpl post-commit

再编辑:vi post-commit

首先注释掉最后一行代码:

#mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf

然后在文件末尾添加如下代码:

export LANG="zh_CN.UTF-8"
svn update /home/sources/doit --username
你的用户名--password你的密码

第一行表示编码,第二行则是自动更新的代码,update /home/sources/doit此为你的web项目目录

然后保存退出,最后将该文件修改为可执行权限

chmod 777 post-commit

c、重启svnserve服务

首先杀掉svnserve服务:killall svnserve

然后重启服务:svnserve  -d -r /home/svnroot/svndata

到此,结束svn的安装~

0 0
原创粉丝点击