zoukankan      html  css  js  c++  java
  • svn 操作命令

    平常都要用到的几个命令,在此标记一下。。
    svnadmin create --fs-type fsfs /home/svn/repos/wince6
    svn -m "create" mkdir file:///home/svn/repos/wince6/bsp-0901
    echo "hello" >1.txt
    svn import /home/jeff/1.txt file:///home/svn/repos/wince6/bsp-0901/1.txt -m "add 1.txt"
    svn del file:///home/svn/repos/wince6/bsp-0901/1.txt -m "del 1.txt"

    以下内容系转载:
    Subversion独立服务和与apache整合服务。
    一 、Svn独立服务安装
    操作系统: Redhat Linux AS3  AS 4   ContOS AS 4
    安装包获取:

    下载[url]http://subversion.tigris.org/downloads/subversion- 1.4.0.tar.gz[/url]和[url]http://subversion.tigris.org/downloads /subversion-deps-1.4.0.tar.gz[/url]。
    编译:
    以root用户登录。
    将subversion-1.4.0.tar.gz和subversion-deps-1.4.0.tar.gz传到服务器。
    tar xfvz subversion-1.4.0.tar.gz
    tar xfvz subversion-deps-1.4.0.tar.gz
    subversion-deps包有四个目录zlib apr apr-util neon这四个目录都是依赖包,编译subversion所必须的代码
    cd subversion-1.4.0
    ./configure –prefix=/opt/svn –without-berkeley-db –with-zlib
    (注:以svnserve方式运行,不加apache编译参数。以fsfs格式存储版本库,不编译berkeley-db)
    make clean
    make
    make install
    vi /etc/profile,在/etc/profile最后加入:
    PATH=$PATH:/opt/svn/bin
    export PATH
    测试:
    svnserve –version
    如果显示如下,安装成功:
    svnserve, version 1.4.0 (r21228)
    compiled Oct 12 2006, 10:18:56
    Copyright (C) 2000-2006 CollabNet.
    Subversion is open source software, see [url]http://subversion.tigris.org/[/url]
    This product includes software developed by CollabNet ([url]http://www.Collab.Net/[/url]).
    The following repository back-end (FS) modules are available:
    * fs_fs : Module for working with a plain file (FSFS) repository.
    2. svn配置
    建立版本库目录,可建多个:
    mkdir -p /opt/svndata/repos1
    mkdir -p /opt/svndata/repos2
    建立版本库:
    svnadmin create /opt/svndata/repos1
    svnadmin create /opt/svndata/repos2
    修改版本库配置文件:
    版本库1:
    vi /opt/svndata/repos1/conf/svnserve.conf
    内容修改为:
    [general]
    anon-access = none
    auth-access = write
    password-db = /opt/svn/conf/pwd.conf
    authz-db = /opt/svn/conf/authz.conf
    realm = repos1
    版本库2:
    vi /opt/svndata/repos2/conf/svnserve.conf
    内容修改为:
    [general]
    anon-access = none
    auth-access = write
    password-db = /opt/svn/conf/pwd.conf
    authz-db = /opt/svn/conf/authz.conf
    realm = repos2
    即除realm = repos2外,其他与版本库1配置文件完全相同。如果有更多的版本库,依此类推。
    配置允许访问的用户:
    vi /opt/svn/conf/pwd.conf
    为了简化配置,2个版本库共用1个用户配置文件。如有必要,也可以分开。
    注意:对用户配置文件的修改立即生效,不必重启svn。
    文件格式如下:
    [users]
    <用户1> = <密码1>
    <用户2> = <密码2>
    其中,[users]是必须的。下面列出要访问svn的用户,每个用户一行。示例:
    [users]
    alan = password
    king = hello
    配置用户访问权限:
    vi /opt/svn/conf/authz.conf
    为了简化配置,3个版本库共用1个权限配置文件/opt/svn/conf/pwd.conf。如有必要,也可以分开。文件中定义用户组和版本库目录权限。
    注意:
    * 权限配置文件中出现的用户名必须已在用户配置文件中定义。
    * 对权限配置文件的修改立即生效,不必重启svn。
    用户组格式:
    [groups]
    <用户组名> = <用户1>,<用户2>
    其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。
    版本库目录格式:
    [<版本库>:/项目/目录]
    @<用户组名> = <权限>
    <用户名> = <权限>
    其中,方框号内部分可以有多种写法:
    /,表示根目录及以下。根目录是svnserve启动时指定的,我们指定为/opt/svndata。这样,/就是表示对全部版本库设置权限。
    repos1:/,表示对版本库1设置权限
    repos2:/abc, ,表示对版本库2中的abc项目设置权限
    repos2:/abc/aaa, ,表示对版本库2中的abc项目的aaa目录设置权限
    权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。
    示例:
    [groups]
    admin = alan
    [/]
    @admin = rw
    [repos1:/abc/aaa]
    king = rw
    [repos2:/pass]
    king =
    删除无用文件:
    rm /opt/svndata/repos1/conf/authz
    rm /opt/svndata/repos1/conf/passwd
    rm /opt/svndata/repos2/conf/authz
    rm /opt/svndata/repos2/conf/passwd
    3. 启动svn
    建立启动svn的用户:
    useradd svn
    passwd svn
    根据提示为用户svn设置密码
    允许用户svn访问版本库:
    chown -R svn:svn /opt/svndata
    chown -R svn:svn /opt/data
    启动svn:
    su - svn -c “svnserve -d –listen-port 9999 -r /opt/svndata”
    其中:
    su - svn表示以用户svn的身份启动svn
    -d表示以daemon方式(后台运行)运行
    –listen-port 9999表示使用9999端口,可以换成你需要的端口。但注意,使用1024以下的端口需要root权限
    -r /opt/svndata指定根目录是/opt/svndata
    检查:
    ps -ef|grep svnserve
    如果显示如下,即为启动成功:
    svn    6941   1 0 15:07 ?    00:00:00 svnserve -d –listen-port 9999 -r /opt/svndata
     
    二、svn服务与apache 整合
    Subversion存储方式,一是Berkeley DB伯克利存储方式,二是fsfs存储方式。
    两种版本库数据存储对照表
    特性
    Berkeley DB
    FSFS
    对操作中断的敏感
    很敏感;系统崩溃或者权限问题会导致数据库“塞住”,需要定期进行恢复。
    不敏感
    可只读加载
    不能
    可以
    存储平台无关
    不能
    可以
    可从网络文件系统访问
    不能
    可以
    版本库大小
    稍大
    稍小
    扩展性:修订版本树数量
    无限制
    某些本地文件系统在处理单一目录包含上千个条目时会出现问题。
    扩展性:文件较多的目录
    较慢
    较慢
    检出最新代码的速度
    较快
    可以
    大量提交的速度
    较慢,但时间被分配在整个提交操作中
    较快,但最后较长的延时可能会导致客户端操作超时
    组访问权处理
    对于用户的 umask 设置十分敏感,最好只由一个用户访问。
    对 umask 设置不敏感
    功能成熟时间
    2001 年
    2004 年
     
    1、安装APR-1.2.7和APR-util-1.2.7

        下载地址:[url]http://apr.apache.org/ [/url]  

        tar zxvf  apr-1.2.7.tar.gz

       ./configure

        make

        make install

        tar zxvf apr-util-1.2.7.tar.gz

        ./configure --with-apr=/usr/local/apr/

         make

         make install

    2、编译安装APACHE。

        tar zxvf httpd-2.2.3.tar.gz
        cd httpd-2.2.3
       ./configure --prefix=/opt/apache --enable-dav --enable-so --enable-maintainer-mode --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config

         make
         make install

    3、安装subversion-1.4.0

         tar zxvf subversion-1.4.0.tar.gz

     ./configure --with-apxs=/opt/apache/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr
    问题:有关共享库错误
    方法:  echo "/usr/local/apr-util/lib" >> /etc/ld.so.c
                ldconfig      echo $?


    make
        make install
       设置环境变量(可做可不做)
    vi /etc/profile,在/etc/profile最后加入:
    PATH=$PATH:/opt/svn/bin
    export PATH

    4、查看subversion两个动态库有没有安装成功

         vi /opt/apache/conf/httpd.conf

        看到下面两个模块说明安装成功

         LoadModule dav_svn_module     modules/mod_dav_svn.so
         LoadModule authz_svn_module   modules/mod_authz_svn.so

    5、配置SVN

        vi /opt/apache/conf/httpd.conf

         配置:

        <Location /svn>
           DAV svn
            SVNParentPath /data/svn/repos //svn父目录
            AuthType Basic //连接类型设置
            AuthName "Subversion repository" //连接框提示
            AuthUserFile /data/svn/passwd //用户配置文件
            AuthzSVNAccessFile /data/svn/auth
            Require valid-user //passwd所有的用户都可以访问
      </Location>
     
    6、建立SVN存储仓库

         #mkdir -p /opt/svndata/repos

        #svnadmin create –fs-type fsfs /opt/svndata/repos
     
    备份以前的SVN库
     
    #svnadmin dump /opt/svndata/repos > /root/repos20080328
     
    把备份出来的数据恢复到本地
     
    #svnadmin load /opt/svndata/repos/ < /root/repos20080328

    7、建立本地访问控制文件
    #/opt/apache/bin/htpasswd [-c] /opt/passwd north
    //第一次设置用户时使用-c表示新建一个用户文件。#/opt/apache/bin/htpasswd passwd 用户名(加入新的用户)


    8、建立本地项目控制文件

        touch /opt/svndata/auth

        文件内容为:

    [groups]
    [repos1:/]
    #wxy = rw
    north = rw
    tom = rw


    [repos2:/]
    repos2 = rw


    9、安装客户端,访问服务器

       [url]http://192.168.0.180:/svn/jishu[/url]
       注意:SVN是APACHE配置的时候加上去的。

    10、到此安装基本结束

         修改一下/data/svn/repos属性,否则会导致文件上传失败。

         chmod -R apache.apache repos
     
    三、日常维护命令和参数
     
    启动svn服务
    svnserve -d --listen-port 20000 -r /opt/svndata
     
     
    创建版本库
    svnadmin create fs-type fsfs /opt/svndata/mark
     
     
    查看版本库的信息
    svn list  file:///opt/svndata/mark
    svn list --verbose file:///opt/svndata/mark
     
    导入库的目录结构
    svn import /tmp/mark/ file:///opt/svndata/mark/ --message "init" (文件夹mark下有bo)
     
     
    删除版本库mark下文件夹bo
    svn delete svn://192.168.0.180:20000/opt/svndata/mark/bo -m "delete "
     
     
    //导出
    $svnlook youngest oldrepo
    $svnadmin dump oldrepo >; dumpfile
     
    //还原
    $svnadmin load newrepo < dumpfile
     
    停止subversion服务
    ps –aux | grep svnserve
    kill -9 ID号
    本文出自 “bo” 博客,请务必保留此出处http://future.blog.51cto.com/26959/95178

  • 相关阅读:
    环境是如何建立的 启动文件有什么
    环境中存储的是什么
    串行 并行 异步 同步
    TPC-H is a Decision Support Benchmark
    进程通信类型 管道是Linux支持的最初Unix IPC形式之一 命名管道 匿名管道
    删除环境变量
    14.3.2.2 autocommit, Commit, and Rollback 自动提交 提交和回滚
    14.3.2.2 autocommit, Commit, and Rollback 自动提交 提交和回滚
    14.3.2.1 Transaction Isolation Levels 事务隔离级别
    14.3.2.1 Transaction Isolation Levels 事务隔离级别
  • 原文地址:https://www.cnblogs.com/chenqianpeng/p/2688360.html
Copyright © 2011-2022 走看看