Sunday, December 09, 2007

WinCVS 2.x 快速進階 (十) Tag(全域標註)

Tag 這個字還真是不知道要怎麼翻譯, 一直在思考可以適切並易於了解的中文, 所以暫定如此, 希望不會造成行家的困惑

CVS 是以檔案為基準的版本編號系統, 如圖中可以看出隨著程式的持續更新, 不一定每一次都會修改所有的檔案, 所以會出現檔案版本不同的情況, 所以當我們整個程式的版本後, 需要反查時, 會出現無法追朔所發行過版本的詳細在CVS 上每個檔案的版本, 所以CVS 利用Tag 來解決這個問題

圖中因為要整個目錄都要標示全域標註, 所以我直接選擇目錄,然後選擇紅色框的T字樣的圖樣以加入全域標註(綠色的為移除Tag), 點如後出現設定頁

我以圖內所標示數字的部份做說明

1. new Tag name : 輸入TAG的名字, 最好不要中文, 而且不能用'-', 所以我都以'_'底線來做為版本中'.'點的功能, 在這個例子我輸入了Build_1_2_0_0

2. 點入後, WinCVS會掃描整個CVS中的TAG, 可以方便輸入, 這部份常用於移動TAG 的時候

3. Do not recurse into sub-direcoties : 如果選取此設定,將不會設定這個目錄中的所有子目錄裡的檔案為此TAG

4. Allow move/delete of branch tag (not recommended) : 這個選項是允許覆蓋或刪除branch(分歧)的標註, 這個部份我會再接下來的文章裡說明,CVS 使用相同介面處裡 Branch 與 Tag, 但是Branch 只要一誤用, 影響的將是整個分岐出來的部份, 所以WinCVS善意的在後面提醒"不建議使用", 我通常不勾選, 這樣一來當我將TAG取名與branch 同名是,就不會出現誤蓋

5.Check that the files are unmodified before tagging : 這個選項建議勾選, 他可以檢查是否有被修改(modified)過的檔案被執行Tag, 因為如果被Tag, 將會是這個被修改的檔案最後的版本編號, 例如Filea.cpp 檔案編號為 1.4, 但我已經修改這個檔案了, 但確沒有commite(這時WinCVS會以紅色標示), 當我加Tag時則會為1.4 而不是commit這個修改後的1.5, 所以在執行前檢查, 就可以確保自己想要Tag的是修改前的1.4 or修改後的 1.5

6. Overwrite existing tags with the same name : 是否覆蓋舊的同名TAG, 如果勾選則覆蓋, 通常我是不勾選此功能, 主要是希望能自動確定我所要設定的版本之前沒有設為, 例如我想要設Build_1_2_0_0,但是這之前設過了, 如果沒有勾選此功能,則會停止Tag, 並提示錯誤, 但是如果是要搬移Tag 時, 我就會這樣勾選, 以確定將舊有的TAG 中記錄的檔案編號更新

在確定之後, 我們可以看到所有檔案都Tag 了

那要如何取出這個TAG 的檔案呢?, 當然利用update 摟

圖中黃色框的地方勾選後, 輸入所欲讀取的TAG, 我們輸入剛才加入的Build_1_2_0_0, 確定之後

WinCVS 的檔案窗裡可以看到tag 這欄為Build_1_2_0_0, 我們已經成功取出Build_1_2_0_0 這個TAG 的檔案了

No comments: