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

最新文章

  1. iOS调试通过UILocalNotification或RemoteNotification启动的app
  2. Python数据可视化编程实战——导入数据
  3. Spring AOP使用整理:各种通知类型的介绍
  4. What Makes a Good Programmer Good?
  5. eclipse中的maven配置
  6. (转)设置 UILabel 和 UITextField 的 Padding 或 Insets (理解UIEdgeInsets)
  7. Halcon算子--区域特征
  8. C++ 排列最优解算法思想
  9. for/range/break/continue
  10. Oracle根据【日期】组,其他条件根据PIVOT行转列。使每个日期条件关联的其他数据只有一行。
  11. CentOS挂Windows的NFS备忘
  12. Linux - 快速进入目录的方法
  13. Python调用WIN10语音交互+识别+控制+自定义对话
  14. vue关于html页面id设置问题
  15. js事件总结
  16. S 导客户主数据 及更新销售团队、组织、品牌
  17. python全局替换文件内容脚本第1版
  18. .netcore2.0 发布CentOS7
  19. vue路由总结
  20. collection 模块 双端队列

热门文章

  1. CF1137E Train Car Selection(单调栈维护凸函数)
  2. iOS 部分API理解
  3. SpringMVC配置讲解(一)
  4. Servlet中转发和重定向的路径问题以及表单提交路径问题
  5. ionic3 打开相机与相册,并实现图片上传
  6. NAIPC 2019 A - Piece of Cake(凸包计算)
  7. Servlet&JSP复习笔记 04
  8. mysql之左连接、右连接、内连接、全连接、等值连接、交叉连接等
  9. Java类的三大特征
  10. Zblog主题模板自适应手机响应式ZblogPHP简洁博客主题