zoukankan      html  css  js  c++  java
  • SVN基础操作

    SVN基础操作

    安装

    #大多数Linux版本自带svn
    svn --version
    #如果没有安装可用yum安装
    yum install subversion
    

    生命周期

    创建版本库

    检出

    更新

    执行变更

    复查变化

    修复错误

    解决冲突

    提交更改

    启动模式

    #创建版本库目录
    mkdir /opt/svn
    #创建版本库
    svnadmin create /opt/svn/ku1
    
    #使用svnserve启动服务
    svnserve -d -r 目录 --listen-port 端口号
    
    #-r两种不同的方式
    #方式一:直接指定到版本库(单库)=================
    svnserve -d -r /opt/svn/ku1
    #对应的authz配置权限应该这么写:
    [groups]
    admin=user1,user2
    [/]
    @admin=rw
    user3=r
    #使用类似URL svn://192.168.168.1/ 即可访问ku1
    
    #方式二:指定版本库的上级目录(多库)
    svnserve -d -r /opt/svn
    #这样一个svnserve可以为多个库工作,authz这样写
    [groups]
    admin=user1,user2,user3
    other=user4,user5
    [ku1:/]
    @admin=rw
    @other=r
    [ku2:/]
    @admin=r
    @other=rw
    #使用类似URL svn://192.168.168.1/ku1 即可访问ku1,svn://192.168.168.1/ku2 即可访问ku2
    
    

    创建版本库

    svnadmin create /opt/svn/ku1
    

    进入conf目录修改配置

    1、服务配置文件svnserve.conf (注意配置删除#号时,空格要删干净,不然报错)

    [general]
    #anon-access: 控制非鉴权用户访问版本库的权限,取值范围为"write"、"read"和"none"。 即"write"为可读可写,"read"为只读,"none"表示无访问权限。 缺省值:read
    anon-access = none 
    #auth-access: 控制鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none"。 即"write"为可读可写,"read"为只读,"none"表示无访问权限。 缺省值:write
    auth-access = write
    #authz-db: 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。 除非指定绝对路径,否则文件位置为相对conf目录的相对路径。 缺省值:authz
    authz-db = /home/svn/authz
    password-db = /home/svn/passwd
    #realm: 指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的 认证域相同,建议使用相同的用户名口令数据文件。 缺省值:一个UUID(Universal Unique IDentifier,全局唯一标示)。
    realm = ku1 
    

    2、用户名口令文件passwd

    用户名口令文件由svnserve.conf的配置项password-db指定,缺省为conf目录中的passwd。

    #<用户名> = <口令>
    [users]
    admin = 123456
    user1 = 456789
    

    3、权限配置文件authz

    权限配置文件由svnserve.conf的配置项authz-db指定,缺省为conf目录中的authz。

    配置格式为<用户组> = <用户列表>,配置详情见启动模式部分

    检出操作

    #检出成功后在当前目录下生成ku1副本目录
    svn checkout svn://192.168.168.1/ku1 --username=admin --password=123456
    #如果不想生成新的目录,直接在当前目录下检出,可用下面命令,注意/和.中间有空格
    svn checkout svn://192.168.168.1/ku1/ . --username=admin --password=123456
    
    

    提交操作

    #将文件fileName加到版本控制,等待提交到版本库。
    svn add fileName
    #查看工作副本中的状态(没到版本控制中为?,加入版本控制了为A)
    svn status
    #提交,-m为注释
    svn commit -m "修改了XXX"
    

    Hooks同步代码到线上目录

    hooks目录里创建一个post-commit , 需要可执行权限 , 否则报255错误

    #!/bin/sh
    export LANG=en_US.utf8
    SVN_PATH=/usr/bin/svn
    WEB_PATH=/var/www/html/project
    $SVN_PATH update $WEB_PATH --username 'admin' --password '123456' --no-auth-cache
    

    注意第一次得先在project目录执行检出checkout操作,否则文件不会同步进去 (大坑)

    import将未版本化文件导入版本库

    #如果需要在已运行的项目上加上svn版本控制,可用import导入版本库
    svn import -m "把project文件导入版本库" /var/www/html/project svn://192.168.168.1/ku1
    
  • 相关阅读:
    ajax 拼接html标签 thinkphp
    使用Log4J进行日志操作
    学习Spark2.0中的Structured Streaming(一)
    互联网日志实时收集和实时计算的简单方案
    Integer.valueOf方法的源码解读
    spark的ML和MLLib两个包区别和联系?
    数组和集合区别
    Java中的集合类
    Spark会把数据都载入到内存么?
    可变参数
  • 原文地址:https://www.cnblogs.com/FromZeroToGod/p/10637803.html
Copyright © 2011-2022 走看看