亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源配置管理工具 > cvs
CVS、Automake與Autoconf簡介
作者:網絡轉載 發布時間:[ 2012/12/28 14:18:46 ] 推薦標簽:

第一部分 CVS簡介
cvs ( Concurrent Version System )是一個版本控制系統,什么是版本控制系統呢?簡單的說,它可以記錄程序代碼修改的過程,有一個完整的歷史記錄( history )。辟如說,當你在修改程序代碼的時候, 不小心寫出了一個 bug,但是你可能很久以后才發現多出了這個 bug, 這個時候,cvs 能很有效的幫助你找出到底是在哪一次的修改中,出現了這個 bug。
也許你會說, 那我每次都把程序保存起來, 用tar 做好備份不行了,當然, 你可以這樣做, 但是這太浪費空間了! cvs 在版本更改間, 只儲存不同的部分, 這樣可以省下很多空間。
在另一個場合里, 更能顯示出 cvs 的好處 ,比如多人一起開發軟件的時候。 cvs支持遠程訪問, 用戶可以對他要修改的文件加上正在編輯的標志, 讓別人知道他要修改這個文件了。 當然, 一個較大的開發隊伍,一般還會需要一個 mailing list 用來溝通。畢竟cvs 只是一個管理程序代碼的工具, 他并不扮演溝通的角色。 cvs的同類軟件還有rcs和sccs。RCS ( Revision Control System ) 可以從FSF獲得。SCCS ( Source Code Control System ) 由AT&T在SystemV中引入,現在已經被加入X/Open標準( Unix 98? )。比起這些軟件,CVS的要得多,特別是在支持多人遠程開發方面。由于CVS出現較新,所以使用上反而沒有它們普及。當然,如果您熟悉rcs,您會發現學習cvs非常容易。

名詞
repository: 意為倉庫。在 cvs 里, 它是你真正存放各歷史版本的地方。 pserver: cvs 遠程服務器,cvs 有兩種工作模式, 一種是 local, 一種是 remote。 一般通過inetd啟動pserver。
CVSROOT: 當使用 cvs 的時候, 要設定 CVSROOT這個環境變量, 或是用 -d 選項來指定該參數,該參數指明你的倉庫放在哪里。

本地( local )cvs
首先, 確定一個 cvsroot,比如:
export CVSROOT="/home/joe/cvsroot/" 建立該目錄:
mkdir /home/joe/cvsroot
接著,運行cvs init :
cvs init
cvs init 會幫你把 cvsroot 初始化。接著, 建立一個要放文件的目錄 ( 相當于一個Project ): mkdir /home/joe/cvsroot/cvsdoc
cd /home/joe/work
cvs checkout cvsdoc( 或者簡寫為: cvs co cvsdoc ) 你會看到下面的信息: cvs checkout: Updating cvsdoc cvs checkout 會把當前新的版本拷貝到你的當前目錄下。
記住, 不要自己建立 /home/joe/work/cvsdoc, 該目錄下還會有一些用于管理的 cvs 相關的信息。
接著, 進入 cvsdoc 目錄, 編輯 cvs.doc 這個文件檔案,輸入一些信息。
然后,運行:
cvs add cvs.txt cvs commit -m "Initial revision." cvs add 會把 cvs.txt 加入 cvs 維護的文件列表中去。
cvs commit 檢查當前目錄下所有的在文件列表中的文件,并把對他們的改動加入到倉庫中。-m 表示這次 commit 的 message,一般說明此次修改的相關信息。
現在修改一下 cvs.txt,并且,在文件檔案的上面加上 $Id$ 的字樣。
改完之后, 再 commit 一次:
cvs commit -m "Adding new stuff."
現在看看我們所做的修改:
cvs log cvs.txt
可以看到:
RCS file: /home/joe/cvsroot/cvsdoc/cvs.txt,v
Working file: cvs.txt
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2; selected revisions: 2
description:
----------------------------
revision 1.2
date: 2000/09/11 11:55:06; author: joe; state: Exp; lines: +2 -0
i
----------------------------
revision 1.1
date: 2000/09/11 11:52:32; author: joe; state: Exp;
initial version
==================================================================
你會看到每次修改加進去的 message。這對開發者,特別是一個大的項目的開發者,其幫助是不言而喻的。
cvs diff -r 1.1 -r 1.2 cvs.txt
可以看到:
Index: cvs.txt
================================================================== RCS file: /home/joe/cvsroot/cvsdoc/cvs.txt,v
retrieving revision 1.1
retrieving revision 1.2
diff -r1.1 -r1.2
0a1
> $Id: cvs.txt,v 1.2 2000/09/11 11:55:06 joe Exp $
1a3
> hehe,sencond time edit it!
這樣會顯示 1.1 和 1.2 版的 diff, 原本有 1.1 版的人, 只需要用這個 patch 可以了升級到1.2了!
再編輯 cvs.txt, 可以發現上面的 Id 變長了? 加了一代串文字:
$Id: cvs.txt,v 1.2 2000/09/11 11:55:06 joe Exp $ 這顯示這個版本的一些相關信息。
遠程( remote )cvs
如果我們要做一個比較大的項目,上面講的本地cvs服務太簡單了,我們要讓眾多的人可以遠程開發程序! 比如我們要用cvs組織起我們的minigui項目。 檢查 /etc/services 有沒有這兩行,沒有請加入:
cvspserver 2401/tcp #CVS network server cvspserver 2401/udp #CVS network server
在 /etc/inetd.conf 加入:
cvspserver stream tcp nowait root /usr/local/bin/cvs cvs --allow-root=/home/minigui pserver
mkdir /home/minigui
要是該設置生效,請重啟inetd。
添加用戶anoncvs, 這是要給匿名cvs 用戶使用的帳號,其組為nogroup。 新加一個名為 minigui的 group。 添加參與 minigui開發的用戶的帳號, 當然, 把他們的 group 設為 minigui。
cvs -d /home/minigui init
cd /root/minigui, 這是原來已經存在的版本, 現在我們要把它的東西放進 cvs 倉庫里: 比如,我們把minigui的庫minigui03放到倉庫中:

cd minigui03;cvs import –m “the lib” minigui03 joe start

會看到cvs把一個個文件放到倉庫中。 

上一頁1234下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 亚洲综合在线另类色区奇米 | 日本高清乱理论片 | 亚洲国产精久久久久久久 | 国产成人精品视频一区 | 日韩欧美1区 | 91网站网站网站在线 | 日本欧美一区二区三区片 | 免费操片 | 97色女 | 日韩欧美二区 | 日韩手机专区 | 成年男女男免费视频网站不卡 | 男人和女人日批视频 | 欧美日韩午夜视频 | 夜间视频在线观看 | 日一级片 | 国产精品亚洲欧美动漫卡通 | 国产精品资源在线观看网站 | 在线波多野结衣 | 一级毛片免费一级直接观看 | 丁香六月综合激情 | 日韩精品国产精品 | 亚洲国产最新在线一区二区 | 巨大欧美黑人xxxxbbbb | 久插视频| 久久综合视频网 | 有哪些免费的毛片可以看 | 在线成人小视频 | 在线五月婷婷 | 成人a毛片| 天天插天天操天天射 | 午夜性影院 | 色综合天天综合网站中国 | 九九热久久免费视频 | 日韩欧美国产一区二区三区 | 日本欧美一区二区三区视频 | 日韩国产一区二区 | 成人在线小视频 | 午夜在线亚洲 | 免费a级人成a大片在线观看 | 人人爱天天做夜夜爽 |