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