在项目开发的过程中,现在遇到这样一个问题:
现在是9月份,在同一个项目中我要开发A、B两个模块,A模块是11月份上线,B模块是12月份上线,但是SVN上的trunk(主干)上的代码必须是上线的。
假设我可以在9月份完成这两个模块,但是我不能在trunk上开发完这两个模块。因为如果我在trunk上开发完成了这两个模块,等11月份A模块上线时,我怎么保证
我提交的代码只是A模块的呢?并且在我开发这个项目的同时,其他同事也在开发这个项目,这样,整个项目就会乱掉,没办法管理。当然,或许你可以将现在的项目
copy一份保存,然后……然后……或许你可以完成真个模块的开发。万一你的备份不小心不见了,那就只好重头开始代码…… 崩溃……崩溃……
于是我们可以用SVN建立分支,代码合并等,这样可以很方便的管理我们的版本开发。
SVN建立分支:
1、建立一个项目 如bamCode
2、选中项目,单击右键 如图
3、点击 分支/标记… 如图
4、点击 浏览 点击 branches 选中branches ,单击右键,新建一个文件夹,如 A模块分支,next——>finish,选中A模块分支,如图
5、点击OK,一路next即可
分支建立好了,接下来我们需要在分支上进行开发,因此,我们需要切换到刚刚建立的分支上
1、选中项目,单击右键,如图
2、点击切换 ,如图
3、点击浏览——>选中A模块分支——>点击OK——>点击OK即切换到了刚刚建立的分支上。
此时我们需要记住现在分支上的这个版本号 ,小编的为399,最好也知道主干上的版本号,假设为315。
好了,接下来我们就可以愉快的编码了…… 假设此时我们的trunk上也有同事在开发 ,别管别人的。
终于开发完了,模块需要上线了,但此时主干上的版本号为360,此时我们需要合并代码。
1、在分支的项目上选中,单击右键——>team——>合并
2、
3、Perform pre-merge best practices checks 不选,点击next
4、From:(start URL and revision of the range to merge)
这个选择我们的分支上的项目目录结构 意思是开始是我们的分支,最终我们要的是trunk最新版,如图
5、选中我们的项目,点击OK,From的版本一定要选择我们刚开始建立分支是的那个版本,小编的版本是399
6、To的URL选择我们trunk的RUL,版本选择最新的,可以直接选择HEAD Revision,next、finish即可,这个版本就是我们最终合并后的版本。
这样做的目的是什么?
因为此时我们的分支上的代码和主干上的代码时不同的,我们需要把主干上的代码合并到分支上,但分支我们写的代码又保存,所以我们需要把分支上的版本号选
择刚开始建立分支时的版本号,即小编的399版本,然后把主干上的版本选择最新的,这个我们合并的时候就把主干上最新的代码合并到了分支上,
到此为止,我们分支上的代码有两部分组成:1、主干上最新的;2、自己写的
7、现在我们只需把我们分支上的代码合并到主干上即可,这样我们主干上的代码也是最新的。
操作类似
此时我们要切换到主干上来操作了,在主干上选中项目,然后做合并操作,
From:主干上的代码的URL
To:分支上的代码的URL
版本都选中 HEAD Revision版本即可。
到此,整个建立分支和合并代码的操作就完成了,当然SVN是一个很好的版本控制工具,还有很多其他功能。常用的功能还有:
1、提交
2、更新
每次提交之前,最后都先更新
3、与资源库同步
……