SVN使用svn:ignore忽略Eclipse的项目工程文件

一、前言
SVN作为非常流行的版本管理工具,应用范围特别广泛,作为Java项目工程代码管理时,Eclipse+SVN是很不错的选择,我们一般会将整个项目工程的内容全部提交到SVN服务器中,但Eclipse工程有他自己的一些项目文件,如.project、.classpath以及.settings文件夹,这些文件包含jdk的安装目录信息,依赖外部jar外的路径等私有信息。如果是团队开发的项目,同一项目组的成员,这些配置信息很难保证都相同,如果这些文件在SVN服务器同步,会导致每次更新项目后,就需要重新再设置项目环境,如果不更新,就会出现未同步的提示符号,要是遇上有“强迫症”的攻城狮,看着项目中出现带的“*”号肯定会觉得不舒服。另外还有项目多个分支版本做合并操作时,Eclipse要求主干版本的内容一定要与服务端一致,要是更新别人的项目文件,本地工程就可能会报错,不更新又不让做版本合并,这下就尴尬了。

二、解决办法
如何化解尴尬呢?其实也很简单,使用svn:ignore设置,可以设置这些私有文件不提交到SVN上,并且同步更新代码时,这些文件不会出现在Team Synchronizing视图下的Synchronize窗口里,项目工程里也不会有“*”号标记,也可以开开心心地做版本合并了,这是有强迫症患者的福音啊。

三、具体的操作
设置svn:ignore方法相对来说比较容易,属于svn客户端侧的操作,根据操作发生地来看,大体上有以下3种:
1、Eclipse project上。
2、Eclipse 全局设置。
3、TortoiseSVN 指定文件设置。
4、TortoiseSVN Global Ignore 设置。

方法一:Eclipse project操作
选中要ignore的文件或文件夹,右键Team–>添加至svn:ignore(D),点击后选择一种文件名匹配方式,点击确定就可以了,如下图所示:
SVN使用svn:ignore忽略Eclipse的项目工程文件_第1张图片

方法二:Eclipse 全局设置
在Eclipse菜单栏上,Window–>Preferences–>Team–>Ignored Resource上,可以看到默认有一些是ignore的,添加想要ignore的文件即可,可以使用通配符号,如下图所示:
SVN使用svn:ignore忽略Eclipse的项目工程文件_第2张图片

方法三:TortoiseSVN指定文件设置
这个跟方法一有点像,只要操作界面是在Window目录里,选中要ignore的文件或文件夹,右键TortoiseSVN–>Add to ignore list,选中最后的文件名即可,如下图所示:
SVN使用svn:ignore忽略Eclipse的项目工程文件_第3张图片

方法四:TortoiseSVN Global Ignore设置
找到之前做过checkout的目录,右键TortoiseSVN–>Settings–>General界面上,也可以看到有默认设置,往后添加想要ignore的内容即可,如下图所示:
SVN使用svn:ignore忽略Eclipse的项目工程文件_第4张图片
SVN使用svn:ignore忽略Eclipse的项目工程文件_第5张图片

四、注意事项
1、可以设置ignore的文件,必须是还未提交到SVN服务器进行同步的文件,就是那些客户端显示一个“?”号的文件,已经同步过的文件ignore的设置都是灰的,就算是写了正确的通配符,也还是不能预期地ignore,这点需要特别注意。
2、以上四种方法ignore的作用范围有区别,Eclipse project操作只针对该project本身;Eclipse 全局设置针对该workspace下的所有项目;TortoiseSVN指定文件设置只针对指定的文件或文件夹,换个目录的同名文件不再起作用;TortoiseSVN Global Ignore设置适用于该客户端下所有的文件。
3、Eclipse和TortoiseSVN针对同一目录下的设置,会相互影响。比如说Eclispe在project里设置某一文件为ignore,TortoiseSVN在该目录下的操作,会把体现出Eclipse刚刚做的ignore操作,因为ignore的操作,会记录在同级目录的.svn文件夹下的wc.db文件中。
4、若是想要ignore的文件已经在SVN服务器存在,需要登录到SVN服务端把这些文件删掉,更新好客户端后再做ingore操作即可。

你可能感兴趣的:(开发平台)