Posted on 2008-12-17 12:47
Prayer 閱讀(1303)
評論(0) 編輯 收藏 引用 所屬分類:
CVS
什么時候需要對二進制文件進行管理是很明顯的:你通常使用的是二進制文件,把它們放到版本控制時,要注意的一些額外的問題。
版本控制的一個基本功能是顯示兩個修訂版之間的差異。例如,如果某人檢入了一個文件的新版本, 也許你想看看這個版本有什么變化并想確定這些改變的好壞。對于文本文件 cvs 是通過 cvs diff
命令來提供該功能。對于二進制文件,一種可能的做法是:首先抽取這兩的修訂版本,然后使用 cvs 外部工具(例如,字處理軟件通常都具有這樣的功能)來比較它們。如果沒有這樣的工具,那么必須通過其他的機制來跟蹤改變,例如督促人們認真記錄日志信息,并希望他們實際所作的改動就是他們想要改的。
版本控制系統的另一個功能是合并兩個修訂版。對于 cvs,兩種環境下發生這種情況。一是用戶所作的改變是在不同的工作目錄下(參閱 Multiple developers)。第二是是某人用 `update -j' 命令顯式合并時(參閱 Branching and merging)。
對于文本文件,cvs 可以獨立地合并,如果有沖突還可以給出沖突信號。而對于二進制文件,cvs 的最好做法是提供兩個文件的不同副本,讓用戶自己解決沖突。用戶可以任選其中一個副本,或者通過能處理該格式文件的合并工具來解決這個問題。注意,讓用戶解決合并,主要靠用戶不會偶然忽略一些改變,因此會有潛在的錯誤發生。
如果不喜歡上述處理方式的話,最好的解決辦法是避免合并。如何避免由于不同的工作目錄引起的合并,參見 Multiple developers 里關于保留的檢出方法(文件加鎖)的討論。為了避免由于分支引起的合并,還要限制使用分支。