呵呵,這回星星和月亮都盼來了,
WilliamRaym
提供了
svn
,會飛(
huifei
)接踵而至,馬上推出了
CVS
,這樣一來,我們團隊的協作就更加方便了!
------------------------
進入正題!
由于筆者一直使用 VSS ,對 CVS 只有一個感性的了解,如有不對,請各位大俠指點!據本人知道, CVS 有 TortoiseCVS 和 Wincvs , CVS 協同開發包含服務器端 cvsnt 和客戶端 wincvs ,這里就客戶端 Wincvs 展開說明。
一、下載 WinCVS ,為了方便本站直接提供 下載!
?? http://www.easyjf.com/upfile/file/11488622803121157793070.rar??
二、安裝 WinCVS,
安裝完畢后,在程序菜單中出現:
? 三、配置客戶端
?? 啟動 winCVS ,第一次啟動時會出現配置窗口
如果沒有出現,可以選擇菜單 admin à preferences 打開窗口,這是個分頁窗口,這里就主要窗口參數加以說明:
1 、一般選項的設置( General )
( 1 ) Authentication :用來配置 cvs 服務器的認證方式,可以從下拉框中選擇其它的認證方式,不過一般只要選擇默認的 pserver 方式就可以,要注意的是必須與 cvs 服務器配置時所指定的認證方式一致;
( 2 ) Path :用來配置 cvs 在服務器上的主目錄路徑,也就是服務器上用進行 cvs 初始化的目錄,如: /easyjf/easydbo ;
(3)Host Address :用來配置 cvs 服務器所在服務器的地址,可以是 IP 地址,也可以是 DNS 名,如:;
(4) User name :用來配置要使用些 WinCVS 來登錄 CVS 服務器的用戶名,如: tianyi ,用戶的登錄必須由管理員把其添加 cvs 用戶組中;
( 5 ) CVSROOT :此項一般都不需要用戶進行修改,用戶在輸入上邊的幾個選項時,系統將自動根據用戶的輸入生成此項的相應內容。
? 2 、全局選項( Golbals )
此項的配置主要是要注意這幾選項:
( 1 ) Checkout read-only 不要選上,否則, checkout 出來的源代碼將不允許用戶進行
??? 修改,并且此選項默認是選中的;
( 2 ) Prune (remove) empty directories 也不要選上,否則,會自動刪除空目錄;
( 3 )對一般配置沒有特殊要求的,把 Dirty files support 、 Supply control when adding
??? 與 TCP/IP compression 選項選中;
這樣 WinCVS 的配置就結束了,下面可以登錄了,哈哈,
四、登錄服務器
? 選擇 Admin->login ,將出現如下對話框要求用戶輸入登錄口令
輸入口令后,選擇“ OK ”按鈕,如果 CVS 服務器與 WinCVS 的配置都沒出錯的話,將在 CVS 的狀態欄中提示:
cvs -z9 -d :pserver:tianyi@127.0.0.1:/easyjf/easyjfdbo login
Logging in to :pserver:tianyi@127.0.0.1:/easyjf/easyjfdbo
***** CVS exited normally with code 0 *****
code 0 表示正確的登錄;而如果出錯的話,將是 code 1 ,那么要根據錯誤的提示進行相應的修改。
注意:
1
、以上步驟同樣適用于已經是cvs服務器的那臺機器,也就是前面提到的又做服務器又做客戶端。
2
、cvs的登錄只需要一次成功登錄就可以了,不必每次都登錄
?五、 WinCVS 的簡單操作使用
我們要在客戶端創建一個文件夾,用于存放工作拷貝,工作拷貝是和服務器上的主拷貝相對應的,主拷貝只有一份,放在cvs倉庫里,而工作拷貝卻可以有很多份,分別放在不同的客戶端。創建完文件夾后,我們將它的路徑添加到wincvs窗口上方的輸入框中即可,從現在開始我們所有的工作拷貝都會存放在這個文件夾中,而我們對文件所做的修改也是針對這個文件夾中的文件。
下面我們就開始基本的操作,開始前,我們要進行“checkout”過程,這個過程是將主拷貝中的目錄及文件拷貝到你指定的客戶端目錄中。

右鍵單擊 wincvs 窗口中左邊的框,在彈出菜單中選擇 “checkout module” 然后會出現如下對話框:
? 其中,
Module name and path on the server
就是要存放
checkout
內容的目錄,由用戶輸入;而
Local folder to checkout to
就是開始用戶所選擇的目錄。
在第一個輸入框中只輸入一個
“.”
,表示倉庫中的全要復制一份作為工作拷貝。在第二個輸入框中輸入你存放工作拷貝的路徑,然后點擊
“
確定
”
即可。(如果今后主拷貝中有了目錄的變化,客戶端也要進行
“checkout”
過程才能看到)完成這一步之后才能進行其他操作。
? 1
、添加新的項目,并提交到
cvs
倉庫中。
首先,在你的工作目錄下新建一個文件夾。再看一下 wincvs ,會看到你剛創建的文件夾前面的圖標是紅色的,這是提示你選中它然后點擊 wincvs 按鈕欄中的那個帶加號的按鈕,這是在 cvs 服務器上創建一個這樣的目錄。同樣的如果你新建的是一個文件也是要這樣添加。注意目錄和文件要分別添加,別以為添加了目錄,里面的文件也會被添加。在添加過程中會遇到這樣一個對話框:
這是
cvs
在提醒你輸入記錄信息,這會被記錄在相應的日志中,便于今后查看。一定要認真填寫,因為如果幾天后你忘了你這天對文件做了什么,這就是最好的資料。如:天意新建了一個文件,之后點擊確定就可以了。
目錄的添加到這步就結束了,而文件的添加還需要另外一步,就是文件的“commit”過程,這也適用于文件被修改后,向倉庫提交。只要將需要提交的文件選中,然后右鍵單擊,在彈出菜單里選擇“commit selection”然后同樣輸入記錄信息,點擊確定。這時,另外一臺客戶端機器想看見項目的文件,可以在想獲得最新版本的目錄上單擊右鍵選擇“update selection”,之后就會發現其中的文件變成了最新版本,別人的改動也就一目了然了。
?2
、修改項目中的文件
(1) 只有一個用戶對文件進行修改的情況。
用自己喜歡的編輯器對
checkout
出來的文件進行修改,修改之后的文件在沒有提交之前會是紅色的,選中紅色的文件右擊選擇“
Commit Selection
”選項,如果沒有其它用戶也對其進行修改并已經提交到
CVS
服務器上,一切正常的話就將文件提交到
CVS
服務器并把圖標恢復成原來的顏色。
?
(2)有多個用戶對同一文件不同部分進行修改的情況。
?
比喻有天意和大峽同時對一個文件
EasyCache.java
進行了修改,大峽
選擇“
Commit Selection
”時將提示:
cvs server: Up-to-date check failed for `
EasyCache.java
'
cvs [server aborted]: correct above errors first!
此時表明已經有用戶對同一個文件
EasyCache.java
進行修改并提交到
CVS
服務器,這時要先選擇“
Update Selection
”對本地
EasyCache.java
與
CVS
服務器上的
EasyCache.java
文件進行同步與合并,不用選中出現的任何選項,直接選擇“
OK
”,這時將顯示如下:
cvs -z9 update
EasyCache.java
(in directory H:/EasyJF/Easyjfdbo)
RCS file:/EasyJF/Easyjfdbo /
EasyCache.java
,v
retrieving revision 1.5
retrieving revision 1.6
Merging differences between 1.5 and 1.6 into
EasyCache.java
M
EasyCache.java
***** CVS exited normally with code 0 *****
表明大峽和天意的修改已經合并成功,同時文件
EasyCache.java
的圖標也將變成紅色,合并后的文件是存放在大峽的本地機上,為了更新到
CVS
服務器還必須選中
EasyCache.java
并右擊選擇“
Commit Selection
”才能把天意與大峽的修改合并后的結果提交到
CVS
服務器上。注:
M
表示此文件已經被修改過。
(
3
)兩個或兩個以上的用戶對同一個文件的相同部分進行修改的情況;
例如:大峽、天意、船長同時對一個文件同一部分進行了修改,
如果天意這時選擇“
Commit Selection
”準備把修改結果提交到
CVS
服務器,此
時將顯示如下的錯誤提示:
cvs -z9 commit -m "update in 11:20"
EasyCache.java
(in directory H:/EasyJF/Easyjfdbo/)
cvs server: Up-to-date check failed for `
EasyCache.java
'
cvs [server aborted]: correct above errors first!
***** CVS exited normally with code 1 *****
表明天意的修改與其它用戶的修改沖突,這時要先選擇“
Update Selection
”,將顯示如下提示:
cvs -z9 update
EasyCache.java
(in directory H:/EasyJF/Easyjfdbo/)
RCS file: / EasyJF/Easyjfdbo /
EasyCache.java
,v
retrieving revision 1.9
retrieving revision 1.10
Merging differences between 1.9 and 1.10 into
EasyCache.java
rcsmerge: warning: conflicts during merge
cvs server: conflicts found in
EasyCache.java
C
EasyCache.java
***** CVS exited normally with code 0 *****
EasyCache.java
前面的
C
表示與其它用戶的修改有沖突,并且文件的圖標會加顯示一個“
C
”,如下所示:
雙擊
EasyCache.java
將顯示
EasyCache.java
的內容,其中會同時顯示各個用戶修改的不同內容,這時需要小組商量使用誰的修改方案,比喻同意大峽的方案,這是大峽
選擇“
Commit Selection
”進行提交,將顯示如下的提示信息:
cvs -z9 commit -m "update in 11:20" EasyCache.java (in directory
H:/EasyJF/Easyjfdbo/
)
Checking in EasyCache.java;
/ EasyJF/Easyjfdbo /
EasyCache.java,v <-- EasyCache.java
new revision: 1.11; previous revision: 1.10
done
***** CVS exited normally with code 0 *****
表明大峽與其他人的修改已經合并成功。
這樣,向
CVS
服務器提交文件所會遇到的問題也基本上就是這些,用戶要根據所遇到的實際問題進行修改
以上我向大家介紹了在
windows
環境下架設
cvs
的方法并粗淺的介紹了
wincvs
的基本功能,希望每個曾經因為沒有條件而放棄
cvs
的開發團隊或個人,都能用上自己的
cvs
。到此,本文也就結束了。
(本文作者:EasyJF開源團隊? 天意 版權歸EasyJF開源團隊所有,歡迎轉載,轉載請保留作者版權聲明,謝謝!)?