Chinaunix首页 | 论坛 | 博客
  • 博客访问: 665755
  • 博文数量: 134
  • 博客积分: 3158
  • 博客等级: 中校
  • 技术积分: 1617
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-30 22:36
文章分类

全部博文(134)

文章存档

2012年(2)

2011年(28)

2010年(68)

2009年(35)

2008年(1)

我的朋友

分类: 项目管理

2011-03-22 11:06:51

svn branch、tag & merge

关键字: svn

svn中建立branch或者tag的方法比较简单,totoiseSVN中的操作是:

1.选择Branch/tag..

2.在出来的界面中的To URL中填上URL,一般是svn://IP/Project/branches/branch-1, 这样就建立了一个branch-1branch. 建立tag是一样的操作,只不过URL一般是svn://IP/Project/tags/tag-1

3.后面的Create copy from是用于选择从你当前的working base中的哪个版本中建立branch/tag,可以根据自己的选择来订制,一般选择Head Revision

subclipse中几乎是一样的操作。

 

Merge分为很多种:

1.多个branch之间merge

2.branch mergetrunk

3.trunk mergebranch

2种用的比较多,比如在otfs接口中netamount的需求提出后就得建立一个netamountbranchtrunk继续在非netamount的情况下继续开发,netamount单独开发,当netamount功能测试通过后,将netamount branch mergetrunk下,然后将trunk release

3种情况用的也不少,如上的例子,当用户进行netamount测试时,如果用户不想只测试netamount的功能,则需要将trunk中的修改mergenetamount branch,然后从netamount branch中发布一个版本供用户测试。

 

branch merge to trunktortoiseSVN操作如下:

1.选择TortoiseSVN->Merge

2.选择Reintegrate a branch

3.选择From URL,URL填好之后可以点击Show Log,可以看看这个branch是否是你要merge的内容,下面的Working copy中也可以Show Log,可以确认一下你的工作目录是否是trunk。确认后点击Next

4.Merge Options里面有些选项,根据需要来选择,Test Merge按钮会告诉你这次Merge会做哪些操作,最好先Test Merge一下!如果是预期的Merge操作,点击Merge则可以将branch Merge到本地工作目录下

5.有冲突的文件需要解决好冲突,解决之后点击svn commit则完成了merge

 

从多个revisionmerge到本地工作目录在tortoiseSVN的操作如下:

1.选择TortoiseSVN->Merge

2.选择Merge a range of revisions

3.URL to merge from填上merge的来源,merge 来源一般和你的working copy是不同的branch或者working copytrunk merge frombranch

4.Revision range to merge填上需要mergerevision,格式是1,3,5或者 1-10

5.后续操作同Reintegrate a branch

 

subclipse进行Merge操作同tortoiseSVN的操作方式有所区别,原理基本同Merge a range of revisions

点击Team->Merge后,只有一个界面,这个界面提供了两种Merge操作方式:

1.Merge某个版本范围内的修改到本地工作目录上

2.Merge feature branchtrunk (也需要先merge到本地)

1种的操作方法是:

1.from url中填上branchurl

2.from revision中选择建立这个branchrevision,不是最新的那个版本号!

3.to url框中勾上"Use 'From:' URL"这个check box, To Revision中选择需要需要Merge到的revision号,一般勾head revision

4.Dry run让你预览一下merge效果,Unified DiffMerge的两边进行Diff并将Diff结果保存到文件中。(在我机器中Dry run没有窗口出来,diff结果的文件除非只有很小的变化,不然看得头大)

5.点击Mergemerge到本地,这时候与版本库进行一下同步应该和上一步的dry run有同样的效果,如果merge过来的东西不是你预期的更改可以选择revert,但是新增的文件需要手工删除!如果是预期的merge效果,那commit,记得在comments中写上merge来的branchfrom revisionto revision(不要写head,写数字)

 

总的来看subclipsemerge操作并不方便,不如tortoiseSVN

 

 

这个链接给出的版本控制知识不错:

http://developer.51cto.com/art/201005/201715.htm

阅读(1148) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~