通常每個團隊成員都會與其他人分開,在自己的工作台中執行他們的所有作業。 最後,他們會要共用彼此的工作,以取得團隊伙伴的變更。 他們是利用串流來達到這個目的。
串流是團隊共用及整合其進行中的工作之位置。
您可以將串流想成共用的工作區,團隊成員變更專案之後,再加以更新。 這個模型可在專案的開發中,讓個人處理團隊專案,使他人共用他變更過的工作,他也可以存取他人的工作。
由於團隊成員會產生新工作,他們會藉由釋放 這些變更到串流中,讓他人共用這個工作。 同樣地,但他們要取得最近的工作時,他們也會擷取 串流中的變更。因此,隨著團隊成員的提交新工作,串流也會不斷地變更,不斷向前移動。
串流有效代表專案的現行狀態。 不論任何時候,團隊成員都可以擷取串流,而使自己跟上最新的變化。
團隊程式設計模型
版本控制系統提供在團隊中作業所需要的兩個重要特性:
團隊提交之工作的歷程
協調和整合這個工作的方式。
歷程的維護非常重要,如此才能比較現行工作和先前的工作、回復較舊但較好的工作...等。 工作的協調也非常重要,如此才會有含團隊整合工作的現行專案狀態單一定義。 這個協調是透過串流模型來提供的。
在樂觀模型中,任何團隊成員都可以變更他有權存取的任何資源。 由於兩個團隊成員可能會將相同資源的變更釋放到串流中,因此,可能會發生衝突,也必須處理這些衝突。 這個模型稱為樂觀 模型,因為它假設衝突的情況很少。
資源通常都不會孤立存在:它們通常會隱含或明確相依於其他資源。 比方說,網頁會鏈結至其他網頁,原始檔會參照其他原始碼成品中所說明的成品。 沒有任何資源是一個孤島。
由於資源會釋放到串流中,因此,這些相依性也會受到影響。 確保相依性的整合非常重要,因為串流代表現行專案狀態:不論在任何一點,團隊成員都可以取出串流內容來作為新工作的基礎。
因此,理想工作流程必須能夠保留串流的整合性。
理想工作流程的運作如下:
開始:在開始工作之前,先擷取現行串流狀態。如果您確定您沒有必須保留的本端工作,最快的擷取方式是從串流中選取您想要的專案,再選取「新增至工作區」。這時串流內容會完全改寫本端資源。
變更:在本端環境的工作台中工作,建立新資源,修改現有的資源,隨時儲存在本端環境內。
同步化:當您準備好要釋放工作時,要與串流同步化。
擷取:檢查送入變更,將它們新增到您的本端工作台中。這時您可以判斷有沒有變更會影響到您將要釋放之資源的整合性。解決衝突。重新測試,再執行整合性檢查程式(例如,檢查中斷的超文字鏈結,確定程式碼確實編譯...等)。
釋放:現在,您已確知變更可以整合最新的串流內容,請將您的變更釋放到串流中。為了更小心,如果這時又有新的送入變更,您可以重複第 4 步驟。
當然,這是一個理想 工作流程。在某些狀況之下,您可能確定送入變更不會影響您,而選擇直接釋放,而不擷取。 不過,團隊成員通常都應該遵循如上所述的流程,以確保不會意外危及串流的整合性。