1. 项目导入
从SVN服务器导入代码到MyEclipse/Eclipse中。
要求:
已经安装好SVN的Eclipse插件Subclipse。
步骤:
(1)点击菜单【File】/【Import】,打开【Import】对话框。(亦可通过Package Explorer右击打开)
图1 Import对话框
(2)如图1所示,【Import】对话框中有一个选项SVN/从SVN检出项目(此为中文版,英文版类似),点击“从SVN检出项目”打开【从SVN检出】对话框。
图2 SVN检出初始对话框
如果还没有资源库,选择【创建新的资源库位置】,并点击下一步【Next】。输入资源库地址,在此如http://56.16.32.47:8001/svn/DEV/银行业务/cbhb_bips ,点击下一步【Next】。
图3 SVN检出2
(3)选中欲导入的项目,如下图中选中code/trunk/cbhbp,点击下一步【Next】。其他按默认即可,直到点击完成【Finish】,当然可以修改导出后的“项目名”、“项目存放位置”和“工作组(working sets)”等等信息。
图4 选择待导出项目
可能出现问题:
(1)JDK版本不一致导致项目报错
右击项目/【Properties】,在【Java Build Path】中修改即可。
(2)编译版本不一致导致项目报错
右击项目/【Properties】,在【Java Compiler】中修改即可。
2. 代码同步
代码同步包括三类:提交(commit);更新(update);合并(merge)。
提交指你本地修改的代码,需要同步到SVN服务器上,并且服务器上没有人修改过该文件。
更新指更新SVN的代码到本地,一般是别人提交的,并且你本地没有修改过该文件。
合并指当你要提交代码时,发现有人已经修改了相同的文件,并且比你先提交到SVN服务器。此时你需要合并SVN服务器的代码到你本地,保留两者的修改,再同步到SVN服务器上。切记,不可直接覆盖他人的修改,最算修改了同一行代码,也应该合理判断最终结果再进行合并。
(1)图标说明
图5 Package Explorer视图下
a) 文件()标“*”的表示,修改过该文件;包()标“*”的表示修改过该包下的内容。
b) 文件()标“?”的表示新增文件;包()标“?”的表示新增包。
图6 同步(Synchronize)视图
a),表示本地新增。
b),表示本地删除。
c),表示SVN服务器删除。
d),表示SVN服务器新增。
e),表示冲突。本地与SVN同时修改该文件,此类文件需要解决冲突,不直接更新。
(2)冲突解决
同步代码时,优先处理冲突文件,在图6 同步(Synchronize)视图中可以看到如下内容:
图7
从左到右分别为:待更新文件、待提交文件、全部文件、冲突文件。
点击即可显示出,本次代码同步中,有哪些文件是有冲突的。如果该视图下有文件冲突,则需要优先处理该视图的文件。
步骤:
a)点击,查看冲突文件,在此示例中有一个冲突文件。
图8
b)双击打开“冲突文件”。
图9 冲突文件说明
由上图可以看到三处修改,其颜色是不一样的。如果没有出现红色的部分,理论上是可以直接把代码都更新到本地,不过要求一处一处的同步代码(点击图所示的小方块),避免出现问题。
解决冲突后效果如下:
图10 冲突解决效果
c)标记文件为“合并”。右击冲突文件,点击【标记为合并】。
图11 标记为合并
标记为合并后的文件,会出现在“待提交文件”中。
图12 标记为合并后效果
(3)更新代码
解决冲突后,第二部应该做的应该是更新代码,点击切换到“待更新文件”视图,选中需要更新的文件,右击,选择【更新(update)】。
图13 更新代码
更新代码后,应该启动一下项目,确认系统没有错误之后,再继续下一步操作【提交代码】。
(4)提交代码
提交代码时,有几点需要注意的,列举如下。
注意点:
a) 提交代码时,确保代码是正确的,否则不该提交代码到SVN;
b) 提交代码时,不提交MyEclipse/Eclipse项目工程信息;
c) 提交代码时,不提交Java后编译文件;
d) 提交代码时,不提交本地一些设置,以免影响其他开发人员。
点击切换到“待提交文件”视图,选中需要提交的文件,右击,选择【提交(commit)】。
图14 提交代码
3. 特殊情况处理
(1)还原
在修改本地代码之后,觉得修改的代码不合适,可以通过【还原】这个功能把代码恢复为上一个版本。
步骤:右击文件/【Team】/【还原】。
图15 还原代码
(2)覆盖/更新
恢复代码时,【还原】是其中一种方式,它会把代码还原为上一个版本的代码。当然还有另一种方法,就是【覆盖/更新】,【覆盖/更新】是在Synchronize视图下的。它会将SVN的最新代码覆盖本地代码,替换掉本地进行过的修改。
主要用途在于:提交代码时,发现SVN上的代码更合理,或是SVN上的代码与本地一致,则可以考虑使用【覆盖/更新】。
图16 覆盖/更新
注:【覆盖/更新】要求MyEclipse/Eclipse处于“Synchronize”视图下。
(3)查看本地资源库
提交代码后,发现其他人的更新覆盖了自己的代码(找到那个人,捅死他,上面讲的都忘了),可以【查看本地资源库】。
步骤:在【Package Explorere】视图下,右击文件/【Team】/【Show Local History】,即可打开【History】窗口,在【History】窗口可以看到本地的修改历史记录。
图17 Show Local History
图18 History