zoukankan      html  css  js  c++  java
  • svn在linux上的安装

    什么是svn
    SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。
    1. 性能提高。SVN不管文件是文本还是二进制类型,在内部都是以二进制差异比较算法来表示文件的更新部分。这表示所有的文件在文件库中都是以差异的形式储存。而且在网络上传输的,都是较小的文件差异部分。这也使创建分支、打标签、合并等操作可以非常快地完成.
    2. 对目录的组织的管理更加方便。SVN不光对文件做版本跟踪,也会对目录做版本跟踪。因此可以根据项目的需要,对目录结构随时进行修改,可以把现有的目录移动到新的地方。
    3. 保证提交操作的完整性。SVN对提交操作的处理方式类似数据库的事务处理,要么全部成功,要么全部无效,保证了原子性。











    svn配置

    mount /dev/cdrom /media/cdrom   挂载光驱

    1.安装svn服务器端

    yum install subversion      从镜像下载安装svn服务器端

    cd /usr/local/              //进入目录,准备创建svn目录

    mkdir svn                   //创建一个svn目录

    chmod -R 777 svn            //修改目录权限为777

    svnadmin create /usr/local/svn/linux //创建一个svn版本仓库sunny(sunny可以随便起名字)

    cd svn/linux/conf               //进入sunny版本仓库下的配置文件目录







    下面要修改这个目录下的三个配置文件

    (1)vi svnserve.conf    //配置版本库信息和用户文件和用户密码文件的路径、版本库路径

    anon-access = none      //改成none   12
    auth-access = write                  13
    password-db = passwd                 18
    realm = linux           //改成自己的版本库   30
    保存






    (2)vi authz     //文件,创建svn组和组用户的权限

    [group]
    linux = pcy,trp //创建一个sunny的组,并指定两个用户gep和wce

    [/]             //制定根目录下的权限
    @linux = rw     //sunny组用户权限为读写
    * = r           //其他用户只有读权限
    保存退出






    (3) vi passwd   //创建或修改用户密码
    [users]
    pcy = 123456    //用户名为gep的用户的密码为123456
    trp = 123456    //。。。
    保存退出


    启动svn:
    svnserve -d -r /usr/local/svn/     //这里采用多版本库的方式启动  如果是单版本库 可以svnserve -d -r /usr/local/svn/sunny
    添加一行

    然后要设置自启动


    vi /etc/rc.d/rc.local    打开自启动文件添加

    /usr/bin/svnserve -d -r /usr/local/svn/


    到此为止可以从服务端检出文件了.

    svn命令:

    netstat -tnl |grep :3690   查看svn是否启动

    ps aux |grep 'svn'  查找所有svn启动的进程

    kill -9 2505    杀死2505这个查找到的svn进程



    做检出  就要先在根目录下建立一个文件夹  放置要检出的文件

    检出命令:
    svn checkout svn://linux的ip/版本库名称 /要检出的目录路径 
    例子:svn checkout svn://192.168.1.107/svn(建立的目录) /aaa(要检出的文件目录)

    如果是新建的文件夹  就要先把文件添加  
    svn add 新建的那文件

    第二部就是要提交  
    svn commit -m "注释" xxx.php  //提交文件
    [root@localhost aaa]# svn commit -m "aaaaaaaaaaaa" a.php
    新增           a.php
    传输文件数据.
    提交后的修订版为 1。

    第三
    两个用户同时编辑后 第三个有要编辑  
    那么就要svn up 取出最新版本的编辑文件

    常用命令:

    svn up    //更新文件

    svn commit -m "注释" xxx.php  //提交文件

    svn add 文件名               //新建文件并添加到svn

    svn add *.php               //(添加当前目录下所有的php文件)

    svn delete test.php         //删除test.php

    svn log test.php            //查看test文件的log信息

    svn cleanup                 //清理当前目录



    ####################################设置svn自动更新,不需要在手动去做了#####################

    自动更新

    在vi /usr/local/svn/sunny/hooks/post-commit中加入

    #!/bin/sh

    #设置一些变量

    SVN=/usr/bin/svn

    WEB=/你要更新的目录

    export LANG=en_US.UTF-8

    $SVN update $WEB --username svn用户名 --password 密码


    其中SVN=右边改成 svn 命令位置 一般默认为/usr/bin/svn

    WEB=右边改成你实际的web目录

    赋予可执行权限

    chmod 777 /usr/local/svn/sunny/hooks/post-commit

    安装完毕


    =========================================================================
    其他操作

    svn up更新

    svn switch --relocate svn://192.168.1.253  svn://172.19.10.250      //重新定位SVN版本库地址

    // SVN版本库起动方式,现在SVN下面有 sunny、test 两个版本库

    1:单版本库起动    svnserve -d -r /usr/local/svn/sunny

    2:多版本库起动    svnserve -d -r /usr/local/svn

    区别在于起动svn时候的命令中的启动参数-r指定的目录。

    限制不同的用户对不同的版本库操作权限,修改版本库中的conf目录下的 authz文件

    以配置 sunny 版本库为例
    vi authz
    [groups]
    teacher = sunny,sunny1
    [sunny:/]             //指定版本库跟目录下的权限
    @teacher = rw     //teacher组用户权限为读写
    * = r           //其他用户只有读权限
    保存退出

    vi passwd 设置组中用户的账号和密码
    [users]
    sunny  = 123456
    sunny1 = 123456

  • 相关阅读:
    Network (poj1144)
    C. Hongcow Builds A Nation
    ZYB loves Xor I(hud5269)
    D. Chloe and pleasant prizes
    Game(hdu5218)
    约瑟夫环的递推方法
    Misaki's Kiss again(hdu5175)
    Exploration(hdu5222)
    B. Arpa's weak amphitheater and Mehrdad's valuable Hoses
    C. Arpa's loud Owf and Mehrdad's evil plan
  • 原文地址:https://www.cnblogs.com/palace/p/9600270.html
Copyright © 2011-2022 走看看