與 CVS 的團隊程式設計

在「並行版本系統」(CVS) 團隊程式設計環境中,團隊成員會在其自己的「工作台」中執行其所有的工作,彼此獨立。最終會想共用他們的工作。 他們透過「CVS 儲存庫」來達成此目的。

分支

CVS 使用分支模型來支援多個工作過程, 其有點彼此隔離,但是仍然相當互相依賴。 分支是開發團隊分享及整合進行中的工作的地方。 分支可被視為一個共用的工作區,其由團隊成員對專案進行變更時所隨之更新。這種模型可讓個人處理 CVS 團隊專案、在完成變更時與其他人共用其成果, 以及在專案運作期間存取他人的成果。有一個又稱為 HEAD 的特殊分支,其代表儲存庫中的主要工作過程(HEAD 經常又稱為幹線)。

分享成果

在團隊成員產生新成果的同時,他們會藉由確認這些變更至分支來分享這項成果。同樣地, 當他們想取得最新的可用成果時,他們就將他們的本端工作區更新成分支上的異動。 因此,分支會不斷地變更,隨著團隊成員提交新成果而更新。

分支有效地代表專案的現行狀態。在任何時刻,團隊成員都可從分支更新其工作區,並得知工作區是最新的。

與分支和工作台交談

理想的團隊模型

CVS 提供兩個在團隊中工作所需的重要特性:

維護歷程非常重要,因為這樣就可以將現行工作成果與前一個初稿相比較、回復到較好的舊工作成果等等。協調工作極為關鍵, 這樣就只有存在一個現行專案狀態定義,包含團隊的整合成果。這項協調作業是透過分支模型提供。

在一個理想模型中,團隊的任何成員都可變更他們對其具有存取權的任何資源。由於兩位團隊成員可能會確認分支變更至同一個資源, 因此可能會發生衝突,必須加以處理。這個模型之所以稱為理想,是在於假設衝突會很少。

建議工作流程

通常資源並不會單獨存在,它們會包含與其他資源的隱含或明確相依關係。例如,網頁包含對其他網頁的鏈結, 而原始碼會參照其他原始碼資源中所說明的成品。沒有任何資源是孤立的。

在資源確認到分支的同時,這些相依項可能會受到影響。確定相依項的整合性非常重要, 因為分支代表現行專案狀態:在任何時刻,團隊成員都可採用分支內容作為新工作的基礎。

因此,理想的工作流程就是維持了分支整合性的流程。

以下是理想的流程

理想的工作流程如下進行:

  1. 從頭開始。開始工作之前,請使用現行分支狀態來更新工作區中的資源。如果您確定沒有要顧慮的本端工作, 則最快的執行方法是從分支(或 HEAD)中選取您有興趣的專案, 然後選取移出作為專案(若是專案已存在本端,則選取取代為 > 儲存庫中的最新版本)。這將會以分支中的資源改寫您的本端資源。

  2. 變更。在您的本端「工作台」環境中工作、建立新資源、修改現有的資源、並隨時將資源儲存在本端環境。

  3. 同步化。在準備確定工作時,請與儲存庫同步化。

    1. 更新。查驗送入的變更,並將它們新增至您的本端「工作台」。這可讓您判定是否有變更會影響您即將確認之變更的整合性。 解決衝突。重新測試、執行整合性檢查程式(例如,檢查中斷的超文字鏈結、確保程式碼編譯等等)。

    2. 確定。現在您已確定您的變更已經和最新的分支內容整合完成,請對分支確定您的變更。若有新的送入變更,則為求審慎,您可以重複上一個步驟。

當然,這是理想的工作流程。在某些情況下, 您可能確信送入變更不會影響您,並選擇不更新即逕行確認。然而,一般而言, 團隊成員應努力遵循類似上述的流程,以確保不會無意間破壞了分支的整合性。

您可以在 http://www.cvshome.org 上找到有關 CVS 的詳細資訊。

相關概念
CVS 儲存庫
分支
版本
與 CVS 儲存庫同步化

相關作業
建立 CVS 儲存庫位置

從 CVS 儲存庫移出專案
 
取代工作台中的資源

使用 CVS 來共用新專案

與儲存庫同步化

正在更新

解決衝突

從分支合併

確定

相關參照
CVS

Copyright IBM Corporation and others 2000, 2003. All Rights Reserved.