使用WinCVS進行版本控制(摘自GRO.net)

cklea發表於2008-01-28
使用WinCVS進行版本控制
(摘自GRO.net)
一、客戶端的配置
啟動pagent,新增私鑰;啟動wincvs,配置好preference選項(admin選單裡)
詳情請見CVS
讓我悄悄告訴你,在preference裡最好將“globe”選項卡中的“checkout read-only”置空,這可是tianyuan的秘技:)
[@more@]二、初始化
如果你已經連上伺服器,做過checkin、checkout等工作,可以略過這一步。
選擇creat->>creat a new reporsitory,無需更改預設配置,確認即可。
如果一切正常,會在窗體下部的output視窗顯示如下資訊:
cvs -d :ext:monkey@monkeygro:/cvs/hrsystem init
*****CVS exited normally with code 0*****
第二行如果不是以“0”結尾,出現其他數字,就表明出錯了。

三、上傳檔案(checkin)
窗體中部左邊有一個explore頁,點選它,選擇你準備上傳的資料夾;點選選單欄的creat->>import module from selection,會跳出一個import filter窗體。如果你的檔案裡有錯誤,import filter窗體裡就會有error或warn標誌,如果真是這樣,你最好還是先看一看有何問題。
下一個跳出的窗體是import setting,在select the module name and path on the remote server裡面填上一個名稱,當你的檔案傳上伺服器後,cvs伺服器裡就會以這個名稱建立一個程式碼庫,存放剛才傳上來的檔案。
請記住,下拉框並沒有什麼神奇的功能,它只能記住你上次填進去的東西。

四、下載檔案(checkout)
經過上一步操作,你在伺服器裡就有了原始碼,所有的開發者可以開始工作了。
當然,開發者需要先下載一個複製到本地才能修改它。
1、建立本地工作目錄
在自己的硬碟上新建一個目錄,很多人都取名為“work”,表示這是工作目錄。其實,這只是一個好習慣而已。
2、下載檔案
選擇creat->>checkout module,出現的窗體是checkout setting,在module name and path on the server中填寫你在第三步(上傳檔案)中,上傳到伺服器中的模組名稱。如果你記不住第三步你填寫了什麼,你可以先看一看本文的第九步。

五、修改與提交
1、edit與uedit命令現在,你可以準備修改原始碼了。不過,當你到自己的本地工作目錄中,可能會發現下載回來的檔案都是隻讀的,這是因為你在第一步中preference中,沒有將checkout read-only置空。
在wincvs中,你到窗體中部的module頁中,找到自己準備修改的檔案,在右邊的瀏覽視窗裡選中它,然後選擇選單欄中的trace->>edit selection,就可以將不可讀的檔案置為可讀。
2、更新(update)
你喜歡那一種開發工具?VB、VC、JAVA還是DELPHI?現在你可以開始你異常熟悉的程式碼開發工作了。
無論你用那種工具,當你修改了工作目錄中的檔案後,在wincvs裡,你就可以看到這個檔案變成紅色了。
有一個好習慣是,在你準備提交到伺服器之前,先更新一下,因為有可能別的開發者在你修改這個檔案的同時,也可能也修改了這個檔案,這就有可能會存在衝突,我們總是在提交前先處理衝突。
更新的操作很簡單:選中你修改了的檔案,在選單欄中選擇modify,一般情況下,無需修改預設選項。
處理衝突請看本文第十節 衝突處理

六、標記(tag)
標記是版本控制中很重要的功能。
除了通常的作用,它還可以標記修改者,讓大家知道,是誰提交了一個新版本。
在wincvs中選擇準備標記的檔案,然後在選單欄中選擇modify->>creat a tag on selection;馬上creat tag setting窗體會出現,在new tag name中填入標記名即可。

七、分支的管理
我們在這裡先詳細說一下分支的作用。
我們設計了一個圖書管理系統,把1.0版交給了客戶A大學;然後我們繼續開發,有了新版本1.1版、1.2、1.3......這時A大學告訴我們,1.0版本有bug,我們很快在1.0版本的原始碼中找到了錯誤所在。
這時候,最簡單的解決辦法是給A大學一個bug patch。你會問,為什麼不給客戶最新版本?原因很簡單:第一,我們還沒有檢查最新穩定版本中又無此bug;第二,客戶的系統已經執行了一段時間,升級到最新版本上可能還會發生更多新問題。
那麼,我們就應該在1.0版本上建立一個分支,在這個分支上進行開發,修改bug ,建立bugpatch,客戶馬上就能解決問題了。
然後我們關起門來,檢視最新版本上又無此bug;如果有,就將分支合併到主版本上,解決最新版本的問題。
實際操作如下;
在選單欄的creat->>creat a branch,在跳出的creat branch setting窗體上,new branch中,填入你給分支取的名字;在module to fork中填入檔名;請記住,你要在rtag options選項卡中,選中rev./tag/branch,填入版本號。如果你這裡不填,生成的分支將會以最新版為分叉點。

八、鎖定檔案
這可是武漢自由軟體協會的另一個秘技。
一般而言,在專案小組中,專案經理會定期公佈最新的基礎版本,要求小組成員都在這個基礎版本上進行進一步開發。
在實際工作中,總會有些成員提前完成工作,他們提交更改後,最新版本就會比專案經理釋出的基礎版本的version更高。
有時候,某些專案成員會有意無意修改基礎版本,並且指定提交到基礎版本上,如果允許他們提交修改,大家可能都會在一個錯誤的基礎版本工作,後果是不堪設想的。
鎖定檔案的操作如下:
選單欄的admin->>comandline,輸入這個命令:
cvs admin -l版本號 檔案全名
注意,-l和版本號之間沒有空格。
如果你鎖定成功,會有如下提示:
RCS file: /cvs/hrsystem/test/new.txt,v
1.1.2.3 locked
done
*****CVS exited normally with code 0*****

九、檔案瀏覽。
1、檔案標誌瀏覽
2、透過web頁面瀏覽
3、檔案對比

十、衝突處理

十一、管理員的工作
1、協調小組,制定程式碼管理規範
2、及時釋出官方版本資訊
3、充分利用標記和分支管理開發團隊

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7196059/viewspace-998593/,如需轉載,請註明出處,否則將追究法律責任。

相關文章