SVN合并(Merge)与拉取分支(Branch/tag)操作简介
合并(Merge)例子:把对feature_branch\project_name_v3.3.7_branch的修改合并到develop
步骤1:
如图,右键目标文件夹,即需要“合并到”的文件目录,选择TortoiseSVN->Merge…
弹出如下窗口
步骤1:
如上图,默认选择“Merge a range of revisions”,点击Next,打开如下窗口
如上,
“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对话框,根据提交日志来选取不同的版本
说明:这里需要注意的是specific range,仅将指定版本的修改合并到目标文件夹。比如对project_name_v3.3.7_branch做了多次修改,修改了file1,生成svn修订版105,修改了file2的内容,生成svn修订版108,那如果specific range只选择108,那么对105中对file1的修改将不会被合并到develop
步骤3:
步骤2中,点击next按钮,打开如下窗口
如上,点击Test merge,查看能否正常合并。如果有冲突则会提示。最后点击Merge合并。
注意:合并仅仅是合并到本地文件夹目录,所以合并完成后,记得要Commit提交到SVN。
关于Merge Type
步骤2中也可以选择Merge two different trees
说明:选择该选项,会把两个目录的“不一样”合并到目标文件夹目录,这里“不一样”,是以非目标文件夹为基准的,比如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,弹出如下窗口
说明:
From:选择的目标文件夹,即需要“合并到”的svn目录
To:选择包含所做修改的svn目录
同样的,这里也可以指定版本号
拉取分支、打tag(Branch/tag)
例:为develop拉取分支release_branch
步骤1:
右键需要拉取分支的目标文件夹,选择TortoiseSVN->Branch/tag
打开如下弹窗
步骤2:
To path:选择需要“拉取到”的目标文件夹。
根据需要填写Recent Message(推荐),选择需要拷贝的版本(revision)。最后点击Ok
注意:拉取分支,会自动提交svn,需要update更新分支目录到本地才能看到