代码改变世界

svn搭建(linux下)

2017-04-25 17:14  ZengGW  阅读(327)  评论(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.svnbin目录加到环境变量中去:

  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(zgwsvn账户)

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为进程号