cvs是一種版本控制系統,它不同于一般的版本控制系統,它可以實現版本的并發管理,即可已有多個用戶同時改動同一個文件而不會互相影響,然后不同的用戶將它們各自修改的文件提交到cvs服務器上,有cvs來進行文件之間的比較,進而把這些不同的部分按照某種算法進行合并形成一個新的版本。
cvs服務器一般架設在unix系統上,雖然也有可以在Windows上運行的服務器版本,但是其性能表現遠不如在unix上面表現的好, 但是cvs的客戶端在Windows下卻可以工作的很好。我在這里講簡單地介紹一下在Linux下配制cvs服務,以及在Windows下客戶端的設置情況。
首先我們先說一下如何在Linux上設置cvs服務,絕大多數的Linux發行拌種都包含了cvs,如果你的發行版本中沒有或者你向是用新的cvs版本,你可以到http://www.cvshome.org去取得新的服務器版本,這里講述的是以1.10版為基礎的, 它應該適合更新的版本.
如果你是從http://www.cvshome.org上的到的.tar.gz形式的源代碼版本,參照源代碼中的相關的說明文件,安裝指導來編譯程序,然后進行安裝,如果你是用Linux發行版中的cvs包進行安裝,執行相應的包管理工具。比如在Redhat中你可以是用下面的命令來安裝cvs.rpm -ivh cvs-1.10.8-3.i386.rpm
在安裝完成后,我們可以進行相應的配置。一般cvs是用pserver的認證方式作為一種服務在Linux上運行,先要確定系統里/etc/services文件有cvs服務的入口,一般得有以下兩行:
cvspserver 2401/tcp # cvs client/server operations
cvspserver 2401/udp # cvs client/server operations
cvs服務是通過.netd或者是xinetd來啟動的。對于inetd,修改/etc/inetd.conf,添加以下的句子:
cvspserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=/cvsroot pserver
由于在較新的Linux發行版(如:RedHat7.x)中都是用新xinetd代替了inetd,要用xinetd來啟動cvs服務
你需要進入到/etc/xinetd.d/目錄,然后編輯一個文本文件(名字隨意),這里是用cvspserver作為文件名,這個文件的內容如下所示:
service cvspserver
{
socket_type = stream
wait = no
user = root
env = HOME=
server = /usr/bin/cvs
server_args = --allow-root=/cvsroot pserver
}
注意上面的service后面的名稱一定要和你在/etc/service文件中的cvs服務名稱一樣,在server_args行我們指定了cvs使用pserver認證方式,可能容易產生誤解的是env = HOME=這一行,添加這一行的目的是為了解決在執行一些cvs操作時產生的讀取/root/.cvsignore文件的錯誤,上面env那行的意思是在運行cvs服務的時候將環境變量HOME置空,這樣雖然執行cvs的用戶是root,但是由于沒有了HOME這個環境變量,所以cvs不會在去讀取/root/.cvsignore文件了。