我们写Java程序的人都知道Eclipse,也装过一些插件,比如Android开发的使用需要安装ADT等,如果代码提交的话我们可能需要安装git和svn的插件,但是这个插件我以前听过,但是一直没有安装过,所以感觉安装的难度应该不大,本来我是不会用这个插件的,但是刚到了一家新公司(每个公司的制度是不一样的,这个必须得适应),他在提交代码的时候,需要leader来review一下(一般都是这样的,除非你刚入职的哪家公司的这个项目你是第一个做,不然肯定会先熟悉代码,然后修改提交)。老大看可以就提交了。但是安装了Eclipse中的svn插件真的很麻烦呀。遇到很多问题,所以在这里就总结一下吧:
首先需要声明一下:以前我们没有在Eclipse中使用svn插件的时候,在提交代码的时候都是使用client进行提交的,但是在Eclipse中安装SVN插件之后,就可以在Eclipse中直接操作了,而且可以在Eclipse的项目视图中看到哪些项目修改了,是很方便的。下面就来说一下,我安装的过程遇到的问题:
首先我在电脑中安装的svn客户端是svn1.8.8 64位的,开始的时候我就在Eclipse中安装svn插件,所以就从网上找了一个插件包(离线安装):site-1.8.8。安装好了。感觉成功了,首先我们在本地使用客户端将项目拉下来。然后导入到Eclipse中,然后我们右击项目:
选择Team->Share Project,然后关联svn:
选择svn,点击下一步,选择svn地址:
这里如果是第一次操作的话,选择创建新的svn资源库地址:
这里填写svn地址,但是这里要注意一点,我们不能填写全部的地址,url填写只能到分支名称,不要包括项目名称,比如svn上在truck分支下有一个项目AndroidDemo:
我们在使用客户端svn更新的时候地址:http://10.10.10.10/XXX/truck/AndroidDemo,本地一般新建一个AndroidDemo的文件夹,然后checkout.
但是这里我们已经将本地的AndroidDemo项目导入到Eclipse中了,所以这里的url应该为:http://10.10.10.10/XXX/truck就ok了,如下图:
我们可以看到,本地的项目地址自动会变成http://10.10.10.10/XXX/truck/AndroidDemo,当然这个模块名称是可以修改的,但是我们在之前填写的应该是http://10.10.10.10/XXX/truck/,不然这一边会有问题的,然后关联上就ok了。
然后我们就可以在Eclipse中进行代码的提交和更新操作了:
也可以进行代码比对:
这就算是成功了。但是我上面是演示了我成功之后的,并没有说我遇到的问题:
下面来看一下问题:
第一个问题:版本问题
上面我们说过我客户端安装的是svn1.8.8 64位的,然后Eclipse中安装的插件包是site-1.8.8。开始的时候,我认为这版本正好呀,但是版本不对的话,会在Eclipse中添加svn关联项目的时候会提示错误。就是你客户端的svn版本和Eclipse中安装的svn插件的版本不一致,其实最后才知道,他们两个的版本号是不一致和对应的。最后就search了这两个版本的对应情况,找到了一个版本对应情况:
本地客户端安装的版本是:TortoiseSVN-1.7.5.22551-x64,这里的的版本是1.7.5
下载地址:http://pan.baidu.com/s/1pJ0pxof
Eclipse中安装的插件包的版本是:site-1.8.5
下载地址:http://pan.baidu.com/s/1k0Tmm
好吧,现在看到了,这两个版本号是不一致的。关于这个版本的问题搞了半天。哎。。。
所以以后我们在安装这个插件的时候,一定要注意版本的对应关系,然后在安装,不过如果我们担心版本的问题,我们可以选择不安装客户端版本,而是只安装Eclipse中的svn插件,然后我们只需要在Eclipse中新建一个项目AndroidDemo(相当于本地新建一个AndroidDemo文件夹),然后进行关联,这样我们就不需要被这两个版本的问题所困扰。但是这样有一个问题,这个问题只是本人遇到过,不知道其他人有没有遇到过,就是在Eclipse中update代码的时候总是不全,而且Eclipse容易闪退。。没有客户端稳定,所以我还是选择安装本地客户端。
第二个问题
本地Eclipse中关联上svn之后,发现本地不能commit/update,而是提示你升级(working copy),很郁闷。这个问题真的已经快让我崩溃了,因为上面的那个问题,搞得我已经受不了了。哎。。。
但是我无意中重启电脑之后好了(真是没有预料到呀。。。)
上面的两个问题解决之后,就好了,我可以在Eclipse中以及和本地中提交和更新代码了,开心~~
总结:
关于svn,我之前一般都是没有在Eclipse中安装插件操作的,都是在客户端进行操作的,原以为装个插件很简单,没想到会有这么多的问题。
其实这里最大的问题就是我们安装客户端的svn版本和Eclipse中的svn插件的版本不一致造成的。
当然前面也说了,如果想避免这个问题我们可以选择只安装Eclipse中的svn插件包进行操作。