最近搞一个公司不是很大的项目,这个项目最近需要预上线,然后svn的当前版本的项目暂时达到预上线标准,然后我又还想往项目添加新功能,为了不影响当前可上线的版本,我尝试一下svn的分支合并(公司没有使用svn分支的经验,只能亲身尝试一下咯)。
首先,应该将当前版本全部提交到svn,保护好项目,即使接下来的操作有误也不会影响到项目。
一 创建分支(branche)
将一个存在于svn的项目创建分支项目。我以一个test-demo作为示例。
选中项目右键–>team–>选择分支/标记
注意一下
- 红框的这个url 是分支的地址,意思就是你要将主干项目copy到哪里去,上例我将主干项目copy到预建好的branches目录下面。项目名+日期
- 这个url 可以手敲路径或者浏览路径
点击next
我们选择第一项,然后点击next
输入日志描述,然后勾选切换到新分支,点finish,就完成了,在branches目录下创建了一个跟主干项目完全一样的。
二 合并主干到分支
按照我当前这个项目,只有我一个人开发,其实是不需要的这个步骤。那为什么会有合并主干到分支这一步骤呢?
假设有两个开发人员,甲负责项目的bug修改、代码优化、增删文件等,乙(就是我)在分支埋头干了半个月,然后同步到主干项目时候发现,擦咧,什么鬼,基于xxx.java开发的类没有了?某个接口不能使用了?会出现假设的问题,所以我们在主干跟分支并行开发的时候,分支需要经常跟主干同步。
我在trunk项目作了两个改动, 修改了HelloController.java,以及新增了Hello2Controller.java,然后提交到svn。
选中branche项目右键–>team–>选择合并(merger)
选择第一项,合并某个范围的版本,点next
url选择的是trunk项目的路径,下方有两个选项,第二个箭头是可以选择某个提交的版本作为同步,看下图,选择完修订版,next,或者可以直接点击finish。
我选的是第一项,同步所有修订版本,点击next
是一些发生冲突情况的选择项,我选择默认选项,点击finish。
最后可以看到update了一个文件,add了一个文件。
三 合并分支到主干
branche项目经过一段时间开发、测试之后,我们就需要合并回trunk。
在本例的branche项目,我把Hello2Controller.java删掉了,新增了Hello3Controller.java。
其实步骤跟上面大同小异,但是这里要注意的是,merge的时候,是以trunk项目来操作。url换成是branche项目的路径。
四 分支和主干项目之间的切换
选中项目右键–>team–>选择切换(switch)
更换一下url,直接finish,就完成切换了。
文章到这里其实就结束了,第一次发布文章,可能存在很多的不足,但是就是要记录一下。