svn eclipse插件突然失效怎么办?

前段时间遇到了svn eclipse插件突然失效的问题,差点没把我吓晕,因为这个问题的症状实在有点NB,听我一一道来,具体表现为:eclipse左边的项目目录结构不显示任何svn插件的图标,也就是说从eclipse中的项目目录结构中你是看不出哪些东西你改动过但是没有提交,在一般情况下,遇到这样的问题也并没有什么大不了的,因为自己的改动一般都会及时提交到svn上,最多重新下载一下最新的代码,另外重新构建一下就能解决问题。但是我遇到这个问题的时候正好由于项目快要发布,为了不影响项目的发布,所有的代码改动都暂时存放本地而不提交svn,而此时我本地已经有大量的未提交的修改,如果重新下载svn上的代码就意味着这些修改工作算是白费了,一切更改必须重新再做一遍,这样的话我实在很不甘心,于是下面是我一步一步摸索出来的解决方法,虽然走了几步弯路,但最后还是被我蒙到了,在这里与大家分享一下,不知道有没有其他人和我一样幸运地遇到过这样的问题:

      (PS:如果只想知道解决方法,而不想听我废话的请略过中间一万字,直接看最后!)

      首先,我发现虽然在eclipse中虽然所有的svn图标都不显示了,但是右键菜单的team->提交还是有的,于是我想能不能在根目录上来个右键提交,这样我本地的更改就可以都提交到svn上去了,但是试了一下之后,我立即觉得这个问题有点NB了,也对这个问题肃然起敬,因为一点提交立即报错说是什么什么lock了,所以不能提交,不过更NB的还在后面,提交不行,那我另外找个我没有改动过的文件试试更新呢,结果还是一样,不能更新,这下我彻底死心了,现在已经不能通过svn插件来进行任何提交或更新的操作了。

     于是,这个时候我认定是svn插件出了问题,好吧,按照一般的原则就是卸载再重装,不用问,问题依然没有解决,不然它就不够NB了,既然重装都不能解决,看来这下问题有点严重了,该怎么办呢?这个时候我突然想到,最开始的时候,我也并没有用svn的eclipse插件来上传更新代码啊(因为那个时候不知道有svn eclipse插件这玩意),而是很土地直接使用本地安装的svn客户端程序来进行的上传更新操作。虽然这个方法土了点,但是我想这样可以绕过使用插件,问题总应该得到解决了吧,于是兴高采烈地来到项目的文件夹根目录,右键—>SVN Commit…,咦,弹出了变更文件勾选列表,正当我喜悦之情溢于言表之时,勾选变更文件之后,悲剧重演,连客户端都报错说是不能提交,这问题果然NB!这下有点急了,难道要让我把svn上最新的代码都下下来然后一个文件一个文件来比较,看我有哪些变更吗?可行,但如果这样,我宁愿重写!

     一路不通再换另一路,既然这个工程下svn插件有问题,那看看其它工程是否正常呢,于是切换工作空间,看看以前的项目中svn插件是否正常。换过去一看,果然,之前的项目都是好的,svn的图标正确显示,更新也没有问题,完全是好的!既然都是同一个插件,一个项目好,一个项目坏,问题到底出在哪里呢?那这就说明问题可能不在svn插件本身,而是项目中某些错误的数据导致了这个问题,这个时候我就在想到底是这两个项目的什么差异导致了这样的问题呢?当然,不可能是因为两个项目的内容不同。浏览了一下项目文件夹,我发现有个文件夹很特别,就是在每个eclipse工作空间的根目录下都会生成一个名为.metadata的文件夹,它的意思是“元数据”,通过平时的使用,我注意到,这个元数据文件夹中至少会保存一些工作空间的用户设置和状态信息,比如你在eclipse中打开一个源文件,然后关闭eclipse,再重新打开,这个时候你刚才打开的源文件还是处于打开状态的,也就是说它记录了用户退出eclipse的最后状态。这个时候再细想一下,因为前一天没有关机,eclipse也是开这的,而第二天来打开显示器却发现机器重启过了,这很有可能是由于没有正确退出eclipse造成的。而eclipse的最后状态是保存于.metadata文件夹中的,所以错误的数据也及有可能就是存在于其中,想到这里,索性将这个文件夹删掉试试(当然,要先备个份,以防万一)。删除该文件夹之后,再进入eclipse,里面空空如也,之前导入的项目都不见了,看来那个文件夹确实是用来保存工作空间信息的,现在只好重新导入一次项目了,重新导入之后,感动的泪光终于出现了,svn插件的显示都正常了,其它功能也都正常了,终于松了一口气,之前的劳动成果总算保住了……

       所以,最后的解决办法就是:删除问题项目工作空间中的.metadata文件夹,重新打开eclipse,重新导入项目就好了!虽然最后的解决方法只有简单的两个动作,但是还真费了我不少劲,放在这里,希望给遇到同样问题的你有点帮助!

你可能感兴趣的:(JAVA)