我以前的documented我對Clearcase作爲源代碼控制系統的看法,但不幸的是我仍然在使用它。所以我請你們幫助我緩解我的挫折之一。如何最好地在Clearcase中分支?
我們剛剛從每個開發者系統的一個分支轉移到每個任務的一個分支,試圖改進我們一直在確定某些文件被更改的原因時遇到的一些問題。一般來說,我對解決方案感到滿意,但有一個主要問題。我們使用簡單的腳本來開始和結束,營造出與用戶名和任務編號命名新的分支任務,然後更新本地快照視圖有類似如下的配置規範:
element * CHECKEDOUT element * .../martin_2322/LATEST element * /main/LATEST -mkbranch martin_2322 load /Project/Application
比方說,我的項目有兩個耦合文件A.cs和B.cs.對於我的第一個任務,我對分支上的A進行了更改。然後,無論出於何種原因,我都需要停止在任務2322上工作,並開始執行任務2345(任務2322未完成,因此我不會將它合併回主)。 我創建一個新的任務分支2345,編輯A.cs和B.cs並將結果合併回主。現在我回到2322工作,所以我改變了我的配置規範回到上面定義的。此時,我看到任務分支中的A.cs文件(正如我之前編輯它的,因此我得到該分支的本地版本)以及來自main的B.cs的最新版本。由於我沒有對2345分支上的A.cs所做的更改,所以構建中斷。我需要的是能夠從我離開的地方拿起任務2322,並使用舊版本的A.cs來查看它 - 當分支被創建時,它是主要的最新版本。
我看到它的方式,我有幾個選項來解決這個問題:
更改配置規範,使其從主在正確的日期越來越文件。如果我知道日期並且不介意手動設置它,這很容易,但我無法弄清楚如何將它自動化到我們的任務切換腳本中。無論如何得到分支的創建日期?
爲main上的每個分支創建一個標籤。理論上很簡單,但我們安裝的CC中的標籤系統已經在數百個標籤的重量下崩潰了,所以我不知道它是否會應付每個分支的每個開發人員(請注意,我的示例中的任務是2322,我們只是通過該項目的四分之一)
從主合併到任務分支。再一次應該工作,但長時間運行的分支將不僅包含爲該任務更改的文件,而且還需要合併所有需要合併的文件以獲取不相關的內容。這使得它們像每個開發者分支的方法一樣複雜。我想查看哪些文件已更改爲完成特定任務。
我希望我只是失去了一些東西在這裏和那裏是我的設置配置規範,使得其檢索來自主期望的文件,而不笨重變通的方式。那麼,你們如何在Clearcase中分道揚??
剛剛添加了另一種解決方案(IMO)來管理分支之間的切換。 – VonC 2009-06-15 18:35:29
剛剛添加了關於「新文件」選擇規則的評論。在繼續使用當前的配置規範之前,必須仔細檢查和理解。 – VonC 2009-06-15 19:49:53