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

时间:2023-12-25 12:10:13

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)操作简介

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)操作简介SVN SVN合并(Merge)与拉取分支(Branch/tag)操作简介

打开如下弹窗


步骤
2

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

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

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

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

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