博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
svn 创建分支、切换分支 及 合并分支 操作
阅读量:7049 次
发布时间:2019-06-28

本文共 1612 字,大约阅读时间需要 5 分钟。

关联远程仓库:

右键  ---  点击 ' SVN Checkout...'

生成

打开trunk目录,在trunk目录下新建两个文本文件A.java,B.java:

打开A.java输入以下内容:

B.java文件可以随机输入些,本例中主要用于观察后续是否变化。

两个文件编辑完成后使用SVN Commit将更改提交到SVN:

 

下面开始创建分支:

  1、在trunk上点击右键,在TortoiseSVN菜单中选择Branch/Tag;

  2、在To path输入框中输入新建分支的路径,一般是:/branches/分支名,也就是相当于分支保存的路径名;

  3、在下面选择HEAD revision in the repository,为当前SVN中trunk目录下最新的代码建立分支,如果需要为制定的revision建立分支,可以进行选择;

  4、点击OK分支建立完成。

  打开branches目录,发现目录依然为空,没有刚才建立的分支,这是因为分支建立的操作是在服务器端完成的,当需要编辑分支时,在branches目录点击Update,刚才建立的分支就会下载下来。

  建立分支的过程会非常的快,不会因为主干中的文件多而降低速度,原因后续说明。

  

  注:分支创建成功后,远程仓库可以查看到分支目录,本地仓库(branches)中不生成新的目录,需要 Update 下来

使用TortoiseSVN合并分支

  在实际工作中,有可能存在主干、分支并行开发的情况,下面我们模拟一下。

  将刚才新建的分支Update下来,打开分支中的A.java,对其进行编辑如下:

  

  在打开trunk主干中的A.java,对其进行编辑如下:

  

  对以上两个文件的改动基本上模拟了分支、主干并行的情况,两个目录下的同一个文件被分别修改。

  将以上两个文件的改动Commit,下面进行合并操作。

下面开始合并分支到主干:

  1、在trunk上点击右键,在TortoiseSVN菜单中选择Merge;

  2、在弹出的窗口中选择第二项,可以理解为合并两个树;

  

  3、在From和To中都选择要合并的分支目录;

  4、在From的Revision选择创建分支时的那个Revision,具体就是点击Show log,选择最下面那一条;

  5、在To的Revision选择HEAD Revision,也就是最新操作;

   

  6、点击Next,下一个页面使用默认项,点击Merge;

  

  7、合并完成。

  这时候会发现trunk目录下的文件已被修改,这时候的合并操作是在本地完成的,并没有提交到SVN,这与分支建立时有区别,请注意。

  也就是说如果你在本次合并中发现问题,只需要对trunks目录Revert,放弃本次合并即可。

  可以看一下trunk目录合并后的A.java文件,大家与前面对照下,已达到我们想要的合并效果:

  

创建分支时发生了什么

  SVN服务器在创建分支时的拷贝是非常有效率的,瞬间就可以完成,并且只需要很少的空间来存储,所以不需要担心分支建立过多导致项目仓库膨胀的问题。

  可以理解为SVN在服务器中存储的是文件的引用,而非物理上的拷贝。

不要多次合并同一个分支到主干

  合并分支有一个原则,就是不要对一个分支多次合并到主干,虽然你有可能在合并后又对分支进行了修改,之所以这样说是有原因的。

  上面提到在合并分支时,在From的Revision选项中需要选择合并的起始版本,如果是第一次合并只需要选择最早的那个版本即可,但如果合并过一次,你真的能记得你上次合并时最后的Revision是多少吗?

  良好的操作是合并后新建分支。

合并主干到分支

  其实合并是个可逆的过程,合并主干到分支与合并分支到主干正好是相反的操作,大家如果会了一种另一种应该非常简单。

转载地址:http://wadol.baihongyu.com/

你可能感兴趣的文章
读书笔记-大颠狂(非同寻常的大众幻想与群众性癫狂)
查看>>
MySQL 多条数据的一个字段合并
查看>>
jquery AJAX清除IE缓存问题
查看>>
Percona XtraBackup (译一):首页
查看>>
一大早就解决了个服务器***问题
查看>>
配置 WebLogic Maven Plug-In 远程部署weblogic
查看>>
聊一聊Java中的系列化
查看>>
Objective-c 继承,多态,封装
查看>>
Red Hat Linux 6.0安装图解
查看>>
Python列表详解
查看>>
Fresco图片显示
查看>>
从无法开启 OCSP Stapling 说起,OCSP是什么
查看>>
我的友情链接
查看>>
项目中遇到的问题
查看>>
Linux下进程管理工具之(三):glances
查看>>
如何添加AdMob广告到现有的Unity3D ios游戏
查看>>
linux C函数之strdup函数分析
查看>>
速度收藏 | 100+篇大数据、数据分析、数据挖掘电子书免费下载!
查看>>
IBM Streams时间序列数据分析
查看>>
创建和删除目录
查看>>