zoukankan      html  css  js  c++  java
  • SVN版本控制说明与相关指令

    SVN版本控制说明

    目的

    多个版本中并行开发,提高开发效率;

    保证各个版本和各个环境(开发、测试、主干)的独立,避免相互影响;

    通过分支与主干的合并,这样主干永远是最新、最高版本,并且都在后面的测试中,保证了质量;

    用分支进行bug修改,而主干上进行新功能的开发。分支上的bug修改完合并到主干上;

    SVN目录结构

    Trunk(开发库) :

    主干目录,负责新功能的开发;

    此目录下的文件为基准文件,放置稳定代码的主要环境;

    开发人员日常开发的工作区,由开发者所控制;

    Branches(受控库) :

    测试版本代码存放的地方,需要开发组长提交测试申请修改;

    用于开发的分支目录,修正当前发布版本的bug,与此同时主干上的开发正常进行,两边互不干扰;

    当一个branch完成了,并且认为它足够稳定的时候,它必须合并回trunk;

    Tags(产品库) :

    存放基线库、发布版,是测试通过版本存放的地方;

    基线,就是给版本建立一个映像(或着叫快照),并不占用服务器物理磁盘;

    这个文件夹下的内容通常只有配置管理员可以修改,其他人只读;

    分支

    分支是给源项目创建副本,让每个工作组在各自的副本上进行开发,最后再将各个工作组的副本合并到源项目中。在此,各个副本被称作分支(branches),源项目被称为主干(trunk);

    分支不是复制版本内容,而是做一个内部的引用,对服务器也没有空间上的开销;

    分支定义规则

    project name + 日期时间 + 版本号,比如:project_20150202_v1.0.3,在创建每一个分支时,必须增加标注。

    mac 终端创建svn分支

    svn 文件夹结构

    svn://proj/

    +trunk/ (freeze)

    +branches/

    +tags/

    创建分支

    svn cp -m "create branch" http://svn_server/xxx_repository/trunk http://svn_server/xxx_repository/branches/br_(分支名称)

    获得分支cd 到branches目录然后
    svn co http://svn_server/xxx_repository/branches/br_(分支名称)

    checkout 出来后如果本地没有就update下 ,或者可能svn慢了,可以关掉重新开启,然后更新下。

    合并主干上的最新代码到分支上

    cd 到分支名称的文件夹下面

    svn merge http://svn_server/xxx_repository/trunk

    分支合并到主干

    cd trunk (主线)

    svn merge --reintegrate http://svn_server/xxx_repository/branches/br_(分支名称)
    分支合并到主干中完成后应当删该分支,因为在SVN中该分支已经不能进行刷新也不能合并到主干。

    合并版本并将合并后的结果应用到现有的分支上

    svn -r 148:149 merge http://svn_server/xxx_repository/trunk

    建立tags

    产品开发已经基本完成,并且通过很严格的测试,这时候我们就想发布给客户使用,发布我们的1.0版本
    svn copy http://svn_server/xxx_repository/trunk http://svn_server/xxx_repository/tags/release-1.0 -m "1.0 released"

    备注:如果不知道svn url 是多少 可以利用svn info 中查看。感觉还是终端操作比较好用。其他的checkout的时候经常会卡住。如果出现checkout卡在一个文件的情况下可以用终端co 试试

    查看svn 有几个分支svn ls 分支地址 --verbose
    参考文章:https://blog.csdn.net/maxracer/article/details/5338954

  • 相关阅读:
    centos6.5+mono+nginx跑asp.net
    YYHS-手机信号
    NOIP2017提高组初赛
    BZOJ-4915-简单的数字题
    BZOJ-5055-膜法师(离散化+树状数组)
    YYHS-Super Big Stupid Cross(二分+扫描线+平衡树)
    BZOJ-1008-[HNOI2008]越狱(快速幂)
    BZOJ-1192-[HNOI2006]鬼谷子的钱袋
    POJ-2417-Discrete Logging(BSGS)
    BZOJ-1010-[HNOI2008]玩具装箱toy(斜率优化)
  • 原文地址:https://www.cnblogs.com/Lanht/p/11660242.html
Copyright © 2011-2022 走看看