使用SVN进行版本管理时,一般的,我们的所有的开发都是基于trunk进行开发,当一个版本开发告一段落,经验证测试发布上线后,代码处于冻结状态,基于当前冻结的代码库,打一个tag进行管理,与发布的生产环境进行对应。
当新的功能点的开发任务开始,继续在trunk进行开发,此时,如果发现了生产环境问题,急迫需要修复,这时候就需要在对应当前生产的代码分支上修改。做法是:基于 当前生产对应的tag,做相应的分支(branch)进行开发。
当新的功能开发完毕后,在发布之前,需要将之前分支上的修改合并到主干上,本经验详细描述使用IntelliJ IDEA 2016.1对SVN的分支进行合并的过程,如图所示。
方法/步骤
-
将项目切换到主干上,并把代码更新到最新,保证本地与SVN主干,完全一致。然后在IDEA的上方菜单中,依次选择VCS --> Integrate Project...如图所示。也可以在项目上点右键,在弹出的菜单中选择Subversion -> Integrate Directory...,
-
在Integrate Project界面,在Source 1中选择主干的SVN地址,并选择当时分支分支时的版本号,本例是4909;在Source2中选择分支的地址,并在版本号处选择HEAD,表示把分支最新代码合并。然后在Try merge, but make no changes选项中打勾,在Depth中选择working copy。这样的配置是将分支最新代码与主干分出分支时的代码进行尝试比较。最后点“OK”,开始尝试合并,在下方会显示合并的结果,如图所示,检查合并结果是否正常正确。
-
当确认尝试合并无问题后,再次重复上述合并步骤的界面,但在Try merge, but make no changes选项中取消打勾,然后点击“OK”,开始合并。
-
当合并代码过程中出现文件冲突时,会弹出一个冲突列表。此时需要对冲突的文件进行一个个合并。选择一个冲突的文件,单击“Merge...”,在弹出的合并窗口中,会展示三个文件,左边是本地代码,中间是合并后的代码,右边是分支上的代码。IDEA已经将冲突的代码块标志出来,你只需要将左边和右边的代码往中间合并,然后查看中间的代码是否正确,若不正确,直接修改正确,最后点击下方的“Apply”,完成该文件的合并。
-
合并动作完成后,在下方工具窗口“Version Control”--> Local Changes 标签页看到合并后的本地代码变更,可以选择其中的某个文件,然后按快捷键Ctrl+D或点左侧工具图标,查看文件的改动情况,在弹出的窗口左侧为合并之前的代码,右侧是合并之后的代码。
-
在确认修改的文件无误后,在“Version Control”--> Local Changes 标签页,在文件根文件夹“Default"上,单击右键,在弹出的菜单中,选择"Commit Changes"提交代码,在弹出的确认窗口中,会再次显示所有要提交的文件,会在文件复选项上打勾,在下方的Commit Message中填写上本次提交内容的描述信息。最后点击”Commit“,提交代码到SVN,如图所示。至此合并分到主干完成。
END