zoukankan      html  css  js  c++  java
  • SVN服务器搭建

    在Centos7上搭建SVN服务器并实现自动同步至web目录
    
    
    
    1、仓库放在 /var/svn/ 目录下,并且仓库名为 project
    
    2、创建用户组lsgogroup,该组下添加两个成员lsgoweb1、lsgoweb2,密码直接用用户名,两用户可以checkout代码和提交代码
    
    3、利用SVN的钩子实现当仓库的代码更新的时候自动同步至我们的web目录,在这里,我的web目录在 /home/www/ 下
    
    一、搭建svn环境并创建仓库:
    
    1、安装Subversion:
    
    yum install -y subversion
    1
    2、检测是否安装成功(查看svn版本号)
    
    svnserve --version
    1
    3、创建版本库
    
    //先建目录
    mkdir /var/svn
    cd /var/svn
    //创建版本库
    svnadmin create /var/svn/project
    cd project
    //会看到自动生成的版本库文件
    conf  db  format  hooks  locks  README.txt
    
    至此,svn环境搭建成功。
    
    二、创建用户组及用户:
    
    1、 进入版本库中的配置目录conf,此目录有三个文件: svn服务综合配置文件(svnserve.conf)、 用户名口令文件(passwd)、权限配置文件(authz)。
    
    2、修改权限配置文件:vim authz
    
    
     
     
    3、配置用户名命令文件:vim passwd
    
    这里写图片描述
    
    4、配置SVN服务综合配置文件svnserve.conf
    
    //找到以下配置项,将前面的#号去掉,然后做相应的配置
    anon-access = none  //匿名用户访问权限:无
    auth-access = write     //普通用户访问权限:读、写
    password-db = passwd        //密码文件
    authz-db = authz        //权限配置文件
    realm = /var/svn/project    //版本库所在
    
    注意:所有以上的配置项都需要顶格,即前面不能预留空格,否则报错
    
    5、启动svn服务:
    
    svnserve -d -r /var/svn
    1
    如果提示:
    
    svnserve: E000098: Can't bind server socket: Address already in use
    1
    证明现在svn已经被启动了,由于我们修改了配置文件,因此要重启svn服务
    
    //查看svn服务详情
    ps aux | grep svn
    //将svn服务强制停止  其中790为svn服务的ID号,-9是kill的参数
    kill -9 790
    
    或者用
    
    killall svnserve
    1
    再运行 svnserve -d -r /var/svn,进行启动服务
    
    6、测试服务器:
    
    //我们在web目录测试(/home/www)
    cd /home/www
    svn co svn://localhost/project
    
    如果提示:Checked out revision 1. 
    表示checkout成功
    
    我们添加新文件来测试是否提交成功
    
    cd /home/www
    touch index.php
    svn add index.php   //成功的话会显示  A index.php
    svn commit index.php -m "测试提交文件"
    假如最后提示:
    
    Adding         index.php
    Transmitting file data .
    Committed revision 2.
    
    则表示我们svn服务器搭建成功!文件已经能够推送了。
    
    7、本地拉取、推送
    
    在本地首先要安装SVN吧,具体百度。。。
    
    这里写图片描述
    
    填写信息:
    
    这里写图片描述
    
    点击ok,提示输入用户名和密码
    
    就填刚才我们创建的lsgoweb1或lsgoweb2,和对应的密码即可。
    
    三、实现svn更新自动同步到web目录:
    
    1、在web目录中checkout版本库
    
    这一步算是比较关键的一步了,当时我搭建的时候试了无数次,就是缺少了这一步。把刚才checkout的版本库删掉,我们来一次比较正式的checkout:
    
    svn co svn://localhost/project /home/www --username lsgoweb1(SVN账号) --lsgoweb1(SVN密码)
    1
    进入/var/svn/project/hooks下,建立post-commit文件:
    
    cd /var/svn/project/hooks
    vim post-commit
    
    //在该文件里添加如下代码,保存
    #!/bin/sh
    #设定环境变量,如果没有设定可能会出现update报错
    #设定语言,根据系统语言设置,如果是GBK就设置为 LANG=zh_CN.GBK
    export LANG=en_US.utf8
    SVN_PATH=/usr/bin/svn   //这里不用改
    WEB_PATH=/home/www  //web目录,如果你的不同,可以改
    //这里的用户随便一个就好
    $SVN_PATH update $WEB_PATH --username 'lsgoweb1' --password 'lsgoweb1' --no-auth-cache
    
    保存退出。
    
    修改post-commit用户为www目录用户
    
    chown apache:apache post-commit     //我的 /home/www 的用户组和所有者都是apache
    1
    给post-commit 执行权限:
    
    chmod 755 post-commit




    linux下SVN忽略文件/文件夹的方法

    假设想忽略文件temp

    1. cd到temp所在的目录下:

    2. svn propedit svn:ignore .

    注意:请别漏掉最后的点(.表示当前目录),如果报错请看下面

    3. 打开的文件就是忽略列表文件了(默认是空的),每一行是一项,在该文件中输入temp,保存退出

    4. svn st查看状态,temp的?状态已经消除了

     

     

    如果在svn propedit svn:ignore .时报错:svn: None of the environment variables SVN_EDITOR, VISUAL or EDITOR are set, and no 'editor-cmd' run-time configuration option was found

    说明SVN的默认属性编辑器没有设置,设置方法如下:

    vi ~/.bash_profile

    在最后一行追加

    export SVN_EDITOR=vim

    保存退出,然后输入命令source ~/.bash_profile(使配置文件立即生效)

    以上步骤完成后,继续按照上面的方法设置

    一直不知道svn的忽略命令如何使用,经过google的查找,使用方法还是有的,做个记录好了。

    如果想在SVN提交时,忽略某个文件,也就是某个文件不提交,可以使用

    svn propedit svn:ignore命令。

    下面详细介绍一下使用步骤。

    单纯的看svn官方文档和一些网上搜索的资料,有时候真的不如亲自试验的好。

    svn propedit svn:ignore 目录名称。

    注意,在使用这个SVN的属性编辑前,你得确保后面的“目录名称”是SVN版本控制的目录。

    如果要忽略此目录下的文件,可以如下操作。

    比如,想忽略/product目录下的test.php文件。前提是/product目录必须在svn版本控制下,而test.php文件不在svn版本控制。

    svn st先看一下状态,会显示如下:

    ?     /product/test.php

    我们需要将test.php文件加入忽略列表。

    此时先设置SVN默认的编辑器

    export SVN_EDITOR=vim

    然后,使用svn propedit svn:ignore ,用法如下

    svn propedit svn:ignore /product

    此时会出现一个VIM的编辑窗口,表示需要将某个文件加入到忽略列表里

    我们在编辑窗口中,写入

    test.php

    然后保存,并退出VIM编辑器。

    这时候会有一个提示:属性 “svn:ignore” 于 “product” 被设为新值。

    表示文件test.php的svn:ignore属性设置成功。

    然后使用svn st查看,会显示:

    M        product

    我们需要提交,然后这个svn:ignore属性才会起作用

    svn ci -m '忽略test.php文件'

    这时候,无论你如何修改test.php文件,再使用svn st时,也不会出现修改提示符合M了。

      

  • 相关阅读:
    Siteserver平台搭建
    Android快速入门
    Android Studio/IntelliJ IDEA使用手记
    Nook 2 Root
    Spring 小记
    DeepinXP Lite 6.2 精简版220M 安装IIS
    Rom Modified [Galaxy 3 Tested]
    Windows Thin PC体验 & 语言包更改(win 7 included)
    重装系统后恢复wubi安装的Ubuntu(未实测)
    20180822-Java接口
  • 原文地址:https://www.cnblogs.com/qqlong/p/9259608.html
Copyright © 2011-2022 走看看