zoukankan      html  css  js  c++  java
  • SVN终端演练(个人开发多人开发)

    SVN终端演练(个人开发)

    ### 1. 命令格式
    命令行格式:
    svn <subcommand> [options] [args]  
        svn 子命令 [选项] [参数]
            其中中括号里面的内容可以省略

    ### 2. 必学命令
         svn [子命令] --help
         svn help [子命令]

    ### 3. 实战演练
    1. 项目经理初始化项目,并上传到SVN服务器

        方案1:
            (1) 创建临时项目(上传后,该文件就可以删除了)
            (2) svn import [path] URL --username=用户名 --password=密码 -m "注释"

        方案2:
            (1) svn checkout URL [path] --username=用户名 --password=密码 : 初始化本地仓库
            (2) 创建项目
            (3) 使用 svn add 命令将项目所有文件添加到本地版本控制
            (4) 使用 svn commit 提交本地项目到远程服务器


    2. 程序猿从服务器下载一份完整代码到本地开始开发

        svn checkout URL [path] --username=用户名 --password=密码

    3. 修改文件提交

        (1) 修改文件
        (2) 使用svn commit -m "注释" : 提交本地文件到服务器

    4. 新建文件提交

        (1) 新建文件
        (2) 使用 svn add 命令将项目所有文件添加到本地版本控制
        (3) 使用 svn commit -m "注释" : 提交本地项目到远程服务器

    5. 删除文件提交

    *一定不要手动删除文件*

        (1) svn remove filename 或者 svn delete filename 从本地版本控制以及对应文件删除
        (2) svn commit -m "注释"  : 提交本地操作到服务器, 使服务器也删除对应的文件

    6. 常用命令补充

        1. svn status
            查看当前工作空间内, 所有 有变化的文件 的状态
            如果执行此命令什么都没输出, 代表本地没有东西要提交
        2. svn log
            查看当前版本的操作日志(什么人, 什么时间, 做了什么操作)

    7. 版本控制中,各个文件状态参考

        ' ' 没有修改
        'A' 被添加到本地代码仓库
        'C' 冲突
        'D' 被删除(通过svn命令删除的文件)
        'I' 被忽略
        'M' 被修改
        'R' 被替换
        ‘G’ 被合并
        ‘U’ 已经更新
        ‘E’ 已经存在
        'X' 外部定义创建的版本目录
        '?' 文件没有被添加到本地版本库内
        '!' 文件丢失或者不完整(不是通过svn命令删除的文件)
        '' 受控文件被其他文件阻隔

    8. 注意事项
        * 任何本地的操作, 如果想让服务器也做同样的操作, 就直接通过 commit操作 提交到服务器
        * 任何向服务器提交的操作,都要加注释 添加 -m参数
     
     
     
     
    SVN终端演练(多人开发)
    0. 准备工作

        熊大和熊二,分别通过
            svn checkout URL [path] --username=用户名 --password=密码
        命令初始化本地版本控制库


    1. 添加文件同步

        1. 熊大创建文件并提交到服务器
            svn add fileName
            svn commit -m "新增文件"
        2. 熊二从服务器更新文件
            svn update

    2. 修改文件同步

        1. 熊大修改文件并提交到服务器
            svn commit -m "修改文件"
        2. 熊二从服务器更新文件
            svn update

    3. 删除文件同步

        1. 熊大删除文件并提交到服务器
            svn delete fileName
            svn commit -m "删除文件"
        2. 熊二从服务器更新文件
            svn update

    4. 多人合作开发中的常见问题

        * 问题一 : 超时
            问题描述:
                当本地文件版本小于服务器文件版本时, 如果要提交本地文件,就会报 out of date 超时错误
            产生原因:
                SVN通过版本号管理每一个文件,如果一个文件被修改并提交到服务器,那么服务器上的对应文件版本号会加1, 如果你的版本号小于服务器版本号,就说明,肯定有别人在后来又修改了那个文件
            解决方案:
                针对于超时问题,对应的解决方案,就是先从服务器更新下最新版本, 保证本地版本号与服务器版本号一致,这是文件可以提交的前提

        * 问题二 : 冲突
            问题描述:
                为了解决超时问题,只能更新.而在更新过程中,如果几个人修改了同一文件的同一行代码,此时就会产生冲突
            产生原因:
                版本控制器不会那么智能, 去决定应该使用谁的代码作为最终代码,只能将选择权抛给用户,让用户解决
            解决方案:
                系统提供三种解决方案:
                    (p) postpone, 
                        延迟处理(待会我自己处理), 如果选择这一种, 会自动生成三个文件供用户参考决策. 并将冲突部分代码块合并到一起. 而一旦解决完毕, 需要执行 svn resloved fileName 来告诉版本控制器已经解决, 然后版本控制器就会自动删除三个参考文件
                    (mc) mine-conflict
    使用我的(本地的), 如果代码产生冲突, 则以本地代码为准
                    (tc) theirs-conflict
    使用他人的(服务器), 如果代码产生冲突, 则以服务器代码为准
      
     
  • 相关阅读:
    【第36题】2019年OCP认证12C题库062考试最新考试原题
    004 基本命令 touch cp mv 命令
    003 基本指令 mkdir rm -rf(暴力删除)
    002 文件目录类的指令 cd ls
    001 指定运行级别
    005 抽象工厂模式
    006 使用类加载器加载资源文件
    004 方法反射
    003 属性反射
    003 工厂方法模式
  • 原文地址:https://www.cnblogs.com/HMJ-29/p/4943982.html
Copyright © 2011-2022 走看看