Eclipse + CVS 之 如何将文件加入版本控制和脱离版本控制- -

                                      

有些文件,你可能并不想让它们受版本管理工具的控制,比如.class文件;比如.scc等其他格式的文件(山西工程是从vss导入过来的,所以有很多.scc文件,我们并不想把它放到版本控制工具中)。

1,增加文件到版本控制工具


CVS并不会自动将文件加入版本控制,你可以通过Eclipse中选择文件,右键"TEAM->Add"来把文件或者目录加入版本控制。

2,如何让文件摆脱版本控制?

有些文件,如果让它接手版本控制,那么我们的日子就不好过了,团队开发的项目,会因为这些东西而让人心烦。比如.class文件,比如.log文件,如果都加入版本控制,会给别人的更新带来不方便的。

有几种办法可以让这些文件不受版本控制:

1,在Eclipse的 " Window > Preferences > Team > Ignored Resources"菜单中,可以定制需要忽略版本控制的文件类型;有些已经是"标准配置"了,比如.scc,.class,但是.log文件没有,可以加上;以后就不会有log目录更新冲突了。唉,终于摆脱这个东西了。

2,任何文件,如果指定'derived',也会忽略版本控制。这个在elcipse中可以选择一个文件,右键"properties"中有一个"derived'选择框。

3,CVS支持创建一种特殊文件.cvsignore描述需要忽略哪些文件。

提示:有一个很重要的原则,这些方案在所有文件加入版本控制之前就应该配置好,如果一个文件已经加入版本控制,要取消就不是那么容易了。这也正是前面所说的CVS并不支持自动将文件加入版本控制的原因。

比如,对我们的项目来说,采用方式1来忽略.log文件的版本是不行的,你在同步工程的时候,会发现它们依然受版本的控制,原因就是他们已经接收了版本控制。这也不是不能改的。duanw曾经发过一篇文档,介绍了如何去掉版本控制。针对这个问题,首先找到log目录下的cvs目录下的Entries文件,将所有的文件信息全部清除。重新启动eclipse,.log文件就不受版本控制了!

对于方法3,这里也要介绍一下,它其实是1的"定制"格式,一般来说,在每个目录下都已经有一个.cvsignore文件了,你可以打开看看,如果没有,可以手工加入一个,这个文件中列出了可以忽略版本控制的文件,比如/ept根目录下的.cvsignore目前的内容是:

Tomcat
bak
classes
doc
test
Servlet.library
ept.jpx
ept.library
ept.war
ep程序变更记录.xls
vssver.scc
lib

说明符合列表中格式的文件(目录)是不受版本控制的。

就此,如果你不想要某一个指定的目录下的文件接收版本控制(比如log目录下的所有文件都不需要版本控制),那么打开该目录下的.cvsignore文件,添加一行*.*,然后重新启动eclipse(或者刷新一下目录),看看,是不是都不用关心拉哈!


 附duanw文档的片断

如果你细心的话,你会发现从CVS服务器上checkout出来的工程,它的每个文件夹里都包含一个隐藏的名为CVS的文件夹,打开它,里面包含了一些文件

 

找到名为Entries(没有后缀名)的文件,用UltraEdit打开它,

 

这里记录了这个隐藏的CVS文件夹所在的目录的信息,从上面的截图可以看到,该目录里包含的所有文件和子目录都在这里列出来了,Entries文件中的记录格式是:
/文件名/版本号/上一次修改时间/文件格式/
例如:/eputil.jsp/1.2/Fri Oct  8 07:28:20 2004/-kb/   【注①】
      D/WEB-INF////

注意:"目录"在Entries中的记录开头有一个"D"CVS并不对目录进行版本管理,所以目录项的版本号和上次修改时间也为空。

    好啦,现在我们就可以对它下手了,想要某个原本受版本控制的文件变的不再受版本控制,那么你就在Entries中找到记录该文件所在的行,将这行删掉就可以了,哈哈,就是这么简单,删掉之后,你再从CVS或者Eclipse里看这个文件,它的图标就带上了"?"。