zoukankan      html  css  js  c++  java
  • WDCP安装SVN

    1.查看是否安装cvs 
    rpm -qa | grep subversion


    2.安装 
    yum install subversion


    3.测试是否安装成功
    /usr/bin/svnserve --version
    如提示以下内容,说明已安装成功
    --------------------------------------
    svnserve,版本 1.6.11 (r934486)
       编译于 Apr 11 2013,17:28:04


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


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


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


    Cyrus SASL 认证可用。
    --------------------------------------------------------------
    二、配置
    1、新建一个目录:repos 可用于存储SVN所有文件
    mkdir -p /opt/svndata/repos
    注意,这里的目录(项目名称)路径可以更改,格式如下:
    mkdir -p 目录路径(如:mkdir -p /www/svn/project)


    2、新建一个版本仓库(使用svnadmin create 目录仓库路径与上面新建的目录要一致)
    svnadmin create /opt/svndata/repos


    3、修改svn版本库的配置文件
    vi /opt/svndata/repos/conf/svnserve.conf


    按以下格式内容修改,其中realm的值为项目名称,本例中即为repos。
    [general]
    anon-access = none
    auth-access = write
    password-db = /opt/svndata/project/conf/passwd
    authz-db = /opt/svndata/project/conf/authz
    realm = repos
    注意:对用户配置文件的修改立即生效,不必重启svn


    4、添加用户
    vi /opt/svndata/repos/conf/passwd
    要添加SVN用户非常简单,只需在/opt/svn/project/conf/passwd文件添加一个形如“username=password”的条目就可以了。
    为了测试,我添加了如下内容:
    [users]
    # harry = harryssecret
    # sally = sallyssecret
    pm = pm_pw
    server_group = server_pw
    client_group = client_pw
    test_group = test_pw


    5、修改用户访问策略
    vi /opt/svndata/repos/conf/authz
    记录用户的访问策略,以下是参考:
    [groups]
    project_p = pm
    project_s = server_group
    project_c = client_group
    project_t = test_group


    [project:/]
    @project_p = rw
    * =


    [project:/server]
    @project_p = rw
    @project_s = rw
    * =


    [project:/client]
    @project_p = rw
    @project_c = rw
    * =


    [project:/doc]
    @project_p = rw
    @project_s = rw
    @project_c = rw
    @project_t = rw
    * =
    以上信息表示,只有pm有根目录的读写权,server_group能访问server目录,client_group能访问client目录,所有人都可以访问doc目录。
    当然,以上是比较复杂的权限控制,如果只是测试,可以简单些。建立一个用户组,把所有的用户都放到一个用户组,如下:
    [groups]
    admin = pm,server_group,client_group,test_group


    [/]
    @admin = rw
    关于权限的控制,本文不详情叙述,大家可以去咨询度娘。


    5、启动svn服务
    svnserve -d --listen-port 3690 -r /opt/svndata/repos (以root用户在运行)
    假如有多个项目同时在开发的话,可以通过不同端口可以开启多个SVN服务,使用TortoiseSVN操作时记得加上端口号。


    6、测试svn服务器


    进入网站根目录
    cd /www/web/repos/public_html
    svn co svn://127.0.0.1:3690 /www/web/repos/public_html --username pm --password pm_pw


    会出现以下认证的提示
    -----------------------------------------------------------------------
    注意!  你的密码,对于认证域:


       <svn://127.0.0.1:3690> repos


    只能明文保存在磁盘上!  如果可能的话,请考虑配置你的系统,让 Subversion
    可以保存加密后的密码。请参阅文档以获得详细信息。


    你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,
    来避免再次出现此警告。
    -----------------------------------------------------------------------
    保存未加密的密码(yes/no)?


    输入“yes” 回车,因为版本仓库还没有添加任何文件,所以取出版本为0,如下:
    取出版本 0。


    三、配置post-commit,实现自动同步svn版本库文件到web目录


    为了可以在修改完代码提交到SVN服务器后,WEB服务器直接同步.需要配置SVN的钩子,进入hooks目录,
    cd /opt/svndata/repos/hooks
    ls
    可以看到有一个post-commit.tmpl文件,这是一个模板文件,复制一份放在此目录下,命名为post-commit,并将其用户组设为www,并设置为可执行:
    cp post-commit.tmpl post-commit
    chown www:www post-commit
    chmod +x post-commit
    这样就有了访问www目录的权限。
    里面原有的代码全部注释掉.这里可以执行shell命令,每次commit完成后都会调用此文件.
    文件内容参考以下:
    vi post-commit


    #!/bin/sh

    export LANG="zh_CN.UTF-8"

    svn export --username jhy --password jhy svn://117.58.38.253:3700 /www/web/wei/public_html --force
    svn export --username wyg --password wyg svn://117.58.38.253:3700 /www/web/wei/public_html --force


    说明:
    1、#!/bin/sh 说明是执行shell命令 /*设定环境变量,如果没有设定可能会出现update报错*/
    2、export LANG=zh_CN.UTF-8 是为了解决svn post commit 中文乱码。
    如果你是GBK编码可能会提示:Error output could not be translated from the native locale to UTF-8
    这是客户端和服务器编码的问题,默认是utf-8,可尝试设置export LANG=zh_CN.GBK或者export LANG=en_US.UTF-8
    #执行更新操作
    3、svn update –username 你版本库的用户名 –password 用户名的密码 svn://你的IP地址:端口 /web/web/repos/public_html
    4、chown -R www:www $WEB_PATH 更改文件夹属主为适合Web Server的
    里面原有的代码全部注释掉.这里可以执行shell命令,每次commit完成后都会调用此文件。

  • 相关阅读:
    代码模板
    DNSget Ip
    WC约束示使用
    下雨了
    Xml文件保存值不能及时更新
    代码不是艺术,而是达到目的的一种手段
    网站TCP链接暴增
    吐个槽吧
    正则表达式使用小注意
    Sereja and Two Sequences CodeForces
  • 原文地址:https://www.cnblogs.com/feimengv/p/4365900.html
Copyright © 2011-2022 走看看