CVS的使用入門

2021-04-01 03:08:11 字數 2395 閱讀 6431

cvs是乙個版本控制系統.在unix中,用它來對在原始檔之上的改變進行記錄,可以記錄版本變換,誰在何時修改了什麼.並且能夠從它管理的原始檔堆裡提取出某次修改時的版本來.它不但能夠在單機上使用,而且cvs能夠許多人一起用協同工作,對同乙個工程進行操作.cvs的機制是這樣的:cvs保留乙份最初原始檔的拷貝,這個拷貝稱作"repository",大概是"源"的意思,此後,所有原始檔的操作都要在cvs的控制之下,不再對最初的原始檔進行操作。也就是說,修改者要從cvs控制之下的原始檔裡checkout乙份自己的拷貝,對原始檔的修改再通過cvs進行記錄下來.cvs的命令和引數很多,但常用的命令也就只有5個(cvs checkout,cvs update,cvs add,cvs rm,cvs ***mit).下面會一一介紹:

在cvs能夠工作之前,首先要進行一些設定,建立乙個叫做cvsroot的環境變數,這個環境變數用來描述cvs的根目錄,也就是資料來源的根目錄.cvs在使用時要先對這個目錄進行初始化:

cvs init

在初始化時,可以專門建立乙個叫做cvs的帳號,用它來初始化並管理cvs.

初始化之後,就可以引入乙個工程,方法是進入工程所在的目錄,如/myproject,用:

cd /myproject

cvs import -m "imported by me!" project me release1

來引入乙個工程,在引入的時候會將/myproject及其子目錄一起引入,"-m"代表messages,記錄一些修改時的資訊.引數project的作用是在$cvsroot目錄下建立的存放原始檔的目錄名,me代表vendor-tag,release1代表release-tag,在此之後所有對此工程感興趣的人就可以拷貝自己的乙份來進行修改了,用:

cvs checkout project

來對此工程進行匯出,可以匯出不同的版本、不同日期修改的工程,這需要在cvs checkout project後面加入額外的引數來提供資訊。簡單的cvs checkout project能夠將最新的工程版本匯出到你現在所在的目錄下。在有些情況下,匯出檔案會遇到一些困難,比如檔案讀寫許可權問題使得不能夠匯出檔案。一般解決方法是將參與協同工作的所有使用者放在同乙個組中,並使$cvsroot這個目錄(包括目錄下的所有檔案)能夠使這個組的成員都擁有讀寫許可權即可。

當某乙個使用者對檔案進行了修改,用下列命令來對工程源進行更新:

cvs ***mit files

當加入乙個檔案或目錄,使用:

cvs add myfile 來更新

刪除乙個檔案或目錄,使用

cvs rm myfile        來更新

但上述的兩個命令只有在緊接著進行cvs ***mit myfile才生效。

cvs update用來從工程源中匯出最新的版本來替代現有的工程。

下面講乙個比較複雜的例子,假設在編輯原始檔的過程中,覺得修改的沒有必要,想要恢復原先的版本,可以這樣:

%cvs init

%cvs import -m "imported by me!" project me release1"

引入原始檔

%cd myhome

%cvs checkout project

%cd project

%cvs tag oldversion *

上面給現有的原始檔作了tag

%cvs add myfile

%cvs ***mit myfile

修改了一些東西

但現在不想要這個新檔案或不想要這些改動,可以:

%cvs checkout -r oldversion

就可以恢復原樣了.

至於分散在多台機器上的各個使用者進行協同工作時,需要修改一些配置檔案,首先在/etc/services裡確保存在這麼一項服務:

cvspserver 2401/tcp

cvspserver 2401/udp

然後修改/etc/i***d.conf,加入一行:

cvspserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=cvsroot_of_yours pserver

假設從host1的使用者想要從host0機器上獲得乙份拷貝,首先使用:

cvs -d :pserver:your_username@host0:/cvsroot_of_host0 login

進行登陸,然後就可以象在本機一樣使用cvs了.

以上所介紹的最簡單的一些基本使用方法,cvs其實是乙個很雜的工具,根據它所提供的引數能夠對工程進行細緻入微的控制,包括檔案上鎖等等.完整的cvs命令如下:

cvs [cvs_options] cvs_***mand [***mand_options] [***mand_args]

可以用cvs -h ***mand來看各個命令的詳細用法。這篇文章寫的很簡略,詳細的資料可參考 "/usr/doc/cvs../cvs.ps"這個檔案.

CVS 快速入門指南

1,從庫里 checkout 專案到本地 cvs co project name 2,檢查本地與庫里的不同 cvs q n up d 3,將庫里的改動應用到本地 cvs q up d 4,新增新的資料夾 檔案 cvs add filename 5,將本地的改動上傳到庫里 cvs ci m comme...

cvs的初步使用

1 取專案 cd d workspace projects cvs co d teset projects test 2 取乙個特定版本的專案 cvs co d test r test 0.1.39a projects test 3 比較兩個版本的不同 cvs diff up r test 0.1....

CVS 使用問答

1,執行新增命令出錯?重現錯誤 執行命令 cvs add mydir cvs add in directory cvs add aborted there is no version here do cvs checkout first 環境變數 echo cvsroot pserver hover...