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:
Post a Comment