Centos下搭建svn并且和web服务器同步

来源:互联网 发布:mac迅雷提示信任 编辑:程序博客网 时间:2024/06/05 00:50

1.安装svn

[plain] view plaincopy
  1. yum install -y subversion  


2.验证安装是否成功

[plain] view plaincopy
  1. svnserve --version  //回提示如下:
  2. svnserve,版本 1.6.11 (r934486)
       编译于 Mar  6 2014,10:33:29


    版权所有 (C) 2000-2009 CollabNet。
    Subversion 是开放源代码软件,请参阅 http://subversion.tigris.org/ 站点。
    此产品包含由 CollabNet(http://www.Collab.Net/) 开发的软件。


    下列版本库后端(FS) 模块可用: 


    * fs_base : 模块只能操作BDB版本库。
    * fs_fs : 模块与文本文件(FSFS)版本库一起工作。


    Cyrus SASL 认证可用。 

3.创建svn版本库

[plain] view plaincopy
  1. mkdir svn  
  2. svnadmin create svn/repository    //repository是版本库文件


4.配置svn

创建版本库后,在这个版本库的conf目录下会生成3个配置文件

            (1)svnserve.conf:  svn服务综合配置文件。

            (2)passwd: 用户名口令文件。

            (3)authz: 权限配置文件。


4.1 修改passwd文件

[plain] view plaincopy
  1. [users]  
  2. hello = world   

注:hello为用户名,world为密码

4.2修改authz文件

[plain] view plaincopy
  1. [groups]  
  2. team=shang,li   
  3. [repository:/]  
  4. @team=rw  
注:repository为之前建立的svn版本库名称

4.3修改svnserve.conf

[plain] view plaincopy
  1. [general]  
  2. anon-access = none  //匿名用户的权限,如果是rw就是可读可写权限,这里设置为无
  3. auth-access = write  //认证过的用户的权限
  4. password-db = passwd  //认证用户的文件
  5. authz-db = authz  //认证用户权限的文件

5.启动和停止svn

5.1启动svn

[plain] view plaincopy
  1. svnserve -d -r /root/svn/   //注意,这里启动的不能加库文件


5.2关闭svn


5.启动和停止svn

[plain] view plaicopy
  1. ps -aux |grep svn  
  2. kill -9 进程id  

6.svn和web服务器同步


思路: 
找到SVN Server中的仓库(Repositories)文件夹的位置,在相应的项目文件夹中找到hooks文件夹。在该文件夹中添加一个post-commit文件;当有commit动作发生时(提交到SVN Server时)就会执行这个post-commit文件,在该文件实现数据的复制。


  6.1.创建web目录(已有目录则略过)

    cd /var

    mkdir -p www/html

    chmod 777 www/html

 

2.检出副本到/var/www/html

   svn co file:///svn/repository   /var/www/html

   此时web目录/var/www/html是SVN版本库的一个工作副本


3.增加hooks(钩子)文件

   在/svn/repository/hooks/目录中

# start-commit 提交前触发事务

# pre-commit 提交完成前触发事务

# post-commit 提交完成时触发事务

# pre-revprop-change 版本属性修改前触发事务

# post-revprop-change 版本属性修改后触发事务

我们这里只需要修改post-commit文件:

cp post-commit.tmpl post-commit


编辑该文件

vim /svn/repository/hooks/post-commit

#!/bin/sh

   REPOS="$1"

   REV="$2"

# 加入以下两行

   export LANG=zh_CN.UTF-8  //防止中文乱码

   svn update /var/www/html //一般svn的update命令是需要记住密码的,这样写的话必须现在/var/www/html里面 svn update一下,输入密码之后可以让服务器记住密码,如果嫌麻烦,这条命令可以改为 svn update /var/www/html  username=hello  password=world (这里的hello和world为之前设定的账号和密码)。



保存后需要修改post-commit文件权限为755,否则SVN无法调用执行

chmod 755 post-commit



0 0
原创粉丝点击