在更新或確定時,您可能會遇到衝突。當您在本端環境修改了資源,而在儲存庫中的分支內有該資源的較新修訂時, 就會發生衝突。特別是,分支將會包含比資源的基本修訂更新的修訂。在此情況下,您可以選擇執行下列一項:
一般而言,您應採用第三個選項,也就是進行合併,因為其他兩個選項會有流失成果的問題。
「同步化檢視畫面」指出那些與分支衝突的資源。一般而言,您應針對有衝突的給定資源, 將您的變更與分支的資源中的變更合併。
例如,讓我們假設您和另一位團隊成員修改了同一個 html 頁面。在「同步化」檢視畫面中選取該資源,將會顯示本端資源與分支修訂的比較。 藉由循環及合併個別的變更,您可以針對每一個變更,決定要接受送入變更、 拒絕它,或是將它與您的本端變更合併。然後在完成合併時,儲存變更。這會以合併的結果改寫您的本端資源。之後您可以確定這項合併的資源。
要訣: 在合併變更時, 經常能夠方便區別哪些檔案已完成合併。完成檔案的合併時, 您可以從快速功能表中揀選標記為已合併。這會將檔案的狀態從處於衝突變成為送出的變更。
您可以在「同步化」檢視畫面中合併兩個層次上的差異:
也可以自動為您合併變更。以任何被標記為 ASCII 的資源而言,執行團隊 > 更新會自動將分支資源合併到您的本端資源差異中。若沒有含有衝突變更的字行,則這項作業可運作無礙。如果有這樣的字行,CVS 會將特殊的標記插入檔案,指出無法合併那些字行。
從「同步化」檢視畫面進行更新的作法有點不同。在發生衝突的情況下, 更新將會提示您合併變更,或是以遠端內容取代整個檔案內容。
與 CVS 的團隊程式設計
與 CVS 儲存庫同步化
三向比較
與儲存庫同步化
更新
確定中
從分支合併
比較資源
合併比較編輯器中的變更
www.cvshome.org:Bringing a file up to date
www.cvshome.org:Conflicts example
比較編輯器