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里看這個文件,它的圖標就帶上了"?"。