linux svn 多版本库的配置问题 以及钩子报错

我的服务器的环境是已经有一个svn的项目了,我想再添加第二个,网站的目录是web1 、web2

思路是这样的,一个版本库,里面放的是所有的svn的项目,这些项目有用一个svnserve.conf 控制,

1、先关闭已经开启的svn服务 killall svnserve

2、/alidata/www/svndata  是版本库目录 ,已经存在的是phpweb1项目

3、创建第二个 svnadmin create /alidata/www/svndata/phpweb2

4、 将phpweb1 或者phpweb2 下面的 conf 里面的 authz 、passwd、svnserve.conf 复制到 /alidata/www/svndata 下面

5、编辑 svnserve.conf 文件 nano svnserve.conf (菜鸟不会用vim)  里面的这几项分别这么设置

    anon-access = none

    auth-access = write

    password-db = passwd

    authz-db = authz

    realm = first (这个可以任意的写)

 6、编辑 passwd 文件

  格式   zhangsan=123456

     lisi = 123456 (用户名=密码)

7、 编辑 authz 文件

  [groups]

  zu1 = zhangsan

  zu2 = lisi

  [phpweb1:/]

  @zu1 = rw (读写的权限)

  *=             (没权限)

 [phpweb2:/]

  @zu2 = rw (读写的权限)

  *=             (没权限)

8、svnserve -d -r /alidata/www/svndata --config-file=/alidata/www/svndata/svnserve.conf

   --config-file 这个参数的意思是所有的项目都用这个文件控制

9、客户端的连接 svn://ip/phpweb1   ,这个时候应该可以连接上客户端了,

10、同步apach的网站目录 , 每个svn项目的目录下面都有一个hooks文件夹,里面都是一个关于钩子的文件

  新建post-commit文件,

  里面的内容#!/bin/sh      (这句是sell脚本执行需要的)
export LANG=en_US.UTF-8
SVN=/usr/bin/svn               (svn的安装目录)
WEB=/alidata/www/web1/   (网站的目录)
$SVN update $WEB --username zhangsan  --password 123456

钩子文件 需要有被执行的权限 chmod +x post-commit 

这个时候关闭所有的svn服务,重新启动svn的服务,

最坑爹的时候来了,客户端checkout下来之后,提交新的文件的时候,钩子报错,

commit blocked by pre-commit hook (exit code 1) with no output

svn:no repository found in 'svn:ip'

网站查了很多方法,都不行,

解决办法 从新checkouot svn的项目 到网站目录 之后,再在客户端操作就可以了

svn co svn:ip/phpweb1 /alidata/www/web1

绝对原创!!! 

posted @ 2014-12-06 15:54  dcj890828  阅读(300)  评论(0编辑  收藏  举报