SVN SVN合并(Merge)与拉取分支(Branch/tag)操作简介

SVN合并(Merge)与拉取分支(Branch/tag)操作简介

合并(Merge)

例子:把对feature_branch\project_name_v3.3.7_branch的修改合并到develop

 

步骤1

如图,右键目标文件夹,即需要“合并到”的文件目录,选择TortoiseSVN->Merge…

SVN SVN合并(Merge)与拉取分支(Branch/tag)操作简介

 

弹出如下窗口

SVN SVN合并(Merge)与拉取分支(Branch/tag)操作简介


 

步骤1

如上图,默认选择“Merge a range of revisions”,点击Next,打开如下窗口

SVN SVN合并(Merge)与拉取分支(Branch/tag)操作简介


如上,

“URL to merge from”:点击输入框右侧 … 按钮,选择包含所做修改的文件夹(例中为 project_name_v3.3.7_branch)

“Revision range to merge”:选择需要合并的修改版。

all revision 所有还没有合并的版本

specific range: 指定范围的修改版(推荐),可以单个svn版本,比如108,也可以是多版本,比如101-108或者逗号分隔101,105,108,这样会把101,105,108的修改都合并到develop,如下图,可以通过打开Show log对话框,根据提交日志来选取不同的版本

 

SVN SVN合并(Merge)与拉取分支(Branch/tag)操作简介


 

说明:这里需要注意的是specific range,仅将指定版本的修改合并到目标文件夹。比如对project_name_v3.3.7_branch做了多次修改,修改了file1,生成svn修订版105,修改了file2的内容,生成svn修订版108,那如果specific range只选择108,那么对105中对file1的修改将不会被合并到develop

 

步骤3

步骤2中,点击next按钮,打开如下窗口

SVN SVN合并(Merge)与拉取分支(Branch/tag)操作简介

如上,点击Test merge,查看能否正常合并。如果有冲突则会提示。最后点击Merge合并。

 

注意:合并仅仅是合并到本地文件夹目录,所以合并完成后,记得要Commit提交到SVN。

 

关于Merge Type

步骤2中也可以选择Merge two different trees

SVN SVN合并(Merge)与拉取分支(Branch/tag)操作简介


说明:选择该选项,会把两个目录的“不一样”合并到目标文件夹目录,这里“不一样”,是以非目标文件夹为基准的,比如project_name_v3.3.7_branch的修改合并到develop,将以project_name_v3.3.7_branch为基准,按指定版本,把project_name_v3.3.7_branch和develop的不一样合并到develop目录,这样的话可能会把develop中增加的文件给删除,或者把develop对某个文件做的修改覆盖掉,最终使得develop和project_name_v3.3.7_branch一模一样。

 

单击Next,弹出如下窗口

SVN SVN合并(Merge)与拉取分支(Branch/tag)操作简介


说明:

From:选择的目标文件夹,即需要“合并到”的svn目录

To:选择包含所做修改的svn目录

同样的,这里也可以指定版本号

 

 

拉取分支、打tag(Branch/tag)

例:为develop拉取分支release_branch

步骤1

右键需要拉取分支的目标文件夹,选择TortoiseSVN->Branch/tag

SVN SVN合并(Merge)与拉取分支(Branch/tag)操作简介

 

打开如下弹窗

步骤2

 

SVN SVN合并(Merge)与拉取分支(Branch/tag)操作简介

 

To path:选择需要“拉取到”的目标文件夹。

根据需要填写Recent Message(推荐),选择需要拷贝的版本(revision)。最后点击Ok

 

注意:拉取分支,会自动提交svn,需要update更新分支目录到本地才能看到

上一篇:版本控制器


下一篇:2. SVN-集中式版本控制系统.