SVN简单介绍
branches:分支, 仅限开发, 合并使用. 通常是以项目名字命名子目录.
trunk:主干,一般来说就是开发的主要呆的地方,
tags: 目录一般是只读的,这里存储阶段性的发布版本,只是作为一个里程碑的版本进行存档、
分支的作用:如下图
分支合并主干
1、首先分支要更新到最新版本
2、将主干(trunk)Check out 到本地(merge是合并在开发者本地)
在本机随意一个目录新建一个空目录,比如在d盘新建了一个master的目录,然后右键=>SVN Check out,将trunk的svn地址复制到“URL of repository”那一栏,然后点击“OK”
3、选中创建的master目录,然后右键=> TortoiseSVN => 选择merge,这时会弹出一个Merge type让你选(TortoiseSVN1.9.5这个版本只有两个选项,网上有些博文有三个选项)
Merge a range of revisions:合并一个范围的版本
此类型应用最为广泛,主要是把分支中的修改合并到主干上来。在主干上点击右键选择合并,然后选择合并类型:合并一个范围的版本
合并的源URL填写的是要合并的分支的URL,待合并的版本范围如果为空,则指的是合并分支上所有的版本,即自从分支创建以来到分
支当前最新版本的所有演变。如果只是选择其中一个版本,或者几个版本,那么就表示只是将制定的n个版本的变化合并到主干上。如果
只是选择其中一个版本,那么表示只是选择那个版本的修改,之前或之后的修改将不被采纳。
4、上步选择了Merge a range of revisions 之后,点击“Next”,进入如下界面,这时我们就可以看到如下界面
要合并的路径:分支合并主干时选择分支路径、主干合并分支时选择主干路径
选择版本号:可以选择所有版本进行合并、或者选择指定的某一版本进行合并,比如最新提交的版本(点击 show log 会出先之前版本号)
5、上步选择完成之后,点击“Next”,进入如下界面,这时我们就可以看到如下界面
全部使用默认的选项,然后在点击Merge之前,可以先点击Test merge按钮,测试一下merge之后的效果
如上图所示,这样就完成了分支合并到主干的操作。
=======================================================================================
如果选择的是 Merge two different trees
Merge two different trees:合并两个不同的树
此类型与前两种类型不同,第一种类型可以选择分支合并的版本,主干不能选择版本;第二种类型是主干和分支都不能选择合并的版本;
而这种类型则是无论是主干还是分支都可以选择合并的版本,即可以选择过去的一个主干版本与分支的某个版本进行合并。合并的时候
以选择的分支版本为主,如果选择的主干版本与分支版本有不同的地方,合并时主干部分将被放弃。
起始URL:选择主干目录的URL(应当和当前工作副本的URL一致,这个是所谓的合并点)
结束URL:选择要合并的分支的URL。
起始和结束的版本:一般起始版本应当找到最后一次同步时的版本,如果从没有同步过(第一次合并),则选择创建分支时的版本,结束版本一般是最新版本,如果你不想将某些内容合并进主干的话,也可以选择一个合并点。
上步之后,点击Next,进入下面这个页面,同样,在最终merge之时,点击Test merge
点击Test merge之后,可以看到最终合并之后的效果
主干(trunk)中的代码合并到分支(branch)
这边的操作和分支(branch)合并到主干(类似),需要注意的是,Merge type如果选择“Merge a range of revisions”,那么范围的起始版本应该为拉取分支时的主干版本,
结束版本应该为trunk最新的版本;如果选择“Merge two different trees”,那么From必须是选取拉取分支时的主干的版本,或者分支的第一个版本,To必须是主干最新的版本
最后总结一下:不管选取哪个Merge type,都能完成主干到分支、分支到主干的合并,需要注意的是,在选择“Merge two fifferent trees”时From和To对应的URL所代表的含义