CVS新手介紹

CVS是併發版本系統(Concurrent Versions System)的意思,主流的開 放源碼網絡透明的版本控制系
統。CVS對於從個人開發者到大型,分佈團隊都是有用的:

它的客戶機/服務器存取方法使得開發者可以從任何因特網的接入點存取最 新的代碼。
它的無限制的版本管理檢出(check out:注1)的模式避免了通常的因爲排它 檢出模式而引起的人工衝突。
它的客戶端工具可以在絕大多數的平臺上使用。
   CVS被應用於流行的開放源碼工程中,象Mozilla,GIMP,XEmacs,KDE,和GNOME等。

那麼它到底怎麼樣?
   你可能會說,它非常棒,但是對於"我"來說它能做什麼?首先,基本的 :一個版本控制系統保持了對一
系列文件所作改變的歷史記錄。對於一個開發者來說,那就意味着在你對一個程 序所進行開發的整個期間,
能夠跟蹤對其所作的所有改動的痕跡。對你來說,有沒有出現過由於在命令行上 按錯鍵而導致一天的工作都
白費的情況呢?版本控制系統給了你一個安全的網絡。

   版本控制系統對任何人都有用,真的。(畢竟,誰不願意使用一個安全的 網絡呢?)但是它們經常被軟件
開發團隊使用。在團隊中工作的開發者需要能夠調整他們的各自的修改;一個集 中式版本控制系統允許那樣
做。

代碼集中的配置
   個人開發者希望一個版本控制系統的安全網絡能夠運行在他們的本地的 一臺機器上。然而,開發團隊需
要一個集中的服務器,所有的成員可以將服務器作爲倉庫來訪問他們的代碼。在 一個辦公室中,沒有問題 --
只是將倉庫連到本地網絡上的一臺服務器上就行了。對於開放源碼項目...噢, 還是沒有問題,這要感謝因特
網。CVS內建了客戶機/服務器存取方法,所以任何一個可以連到因特網上的開發 者都可以存取在一臺CVS服務
器上的文件。

調整代碼
   在傳統的版本控制系統中,一個開發者檢出一個文件,修改它,然後將 其登記回去。檢出文件的開發者
擁有對這個文件修改的排它權。沒有其它的開發者可以檢出這個文件 -- 並且只 有檢出那個文件的開發者可
以登記(check in:注2)所做的修改。(當然對於管理員有很多方法可以超越這個 限制。)

   想一下排它的檢出可能會如何工作:Bob的兄弟檢出 foo.java以便加入 註釋,寫好代碼後他什麼也沒做。
然後他去喫午飯了。Bob喫完午飯後,發現他的老闆所指給他的一個bug在 foo.java裏。他試圖檢出 foo.java
... 但是版本控制系統不允許他這樣做,因爲他的兄弟已經把它檢出了。Bob不 得不等着他的兄弟喫完午飯回
來(在這個"好"日子用了兩個小時),他纔可以修正bug。

   在一個大型的開放源碼工程中,因爲開發者可能在任意的時區工作得很 晚,給予一個開發者阻止任意地
方的其它開發者繼續處理任意文件的能力很明顯示無法運轉。他們最終將因爲不 能夠在他們想要的時候開展
項目而感到厭煩。

   CVS通過它的無限制的檢出模式解決了這個問題。檢出一個文件並不給定 開發者對那個文件的排它權。其
它的開發者也可以對其檢出,進行他們自已的修改,並且將其登記回去。

   "等一下!"你可能會說。"但是後面的登記不是會覆蓋前面的嗎?"回答 是不會。詳細地回答就是當多個
開發者對同一個文件作了修改CVS會檢測,並且自動合併那些改變。

   哇噢。自動的?不用擔心 -- CVS 會很小心,並且將會自動合併那些只 要不是對代碼的同一行所作的改
動。如果CVS不能安全的處理這些改動,開發者將不得不手工合併它們。

從此去往何處?
   到現在爲止,你已經毫不猶豫地着迷於CVS 的潛力,並且急不可待地想 開始。第一步就是去得到 適合你
的平臺的CVS軟件。安裝CVS通常就是將其從你下載的壓縮包中解開這麼一件 事。配置CVS 可能要小心一些,
它非常依賴於你使用的平臺和你的CVS代碼倉庫的存放地。CVShome.org存放了大 量的CVS 文檔:


《Introduction to CVS》 Jim Blandy所寫的一篇很棒地在線介紹。
我也推薦《 Open Source Development with CVS》 Karl Fogel寫的。你可以讀一下我寫的關 於它的評
論在OpenAvenue VOX上。Karl已 經將書中關於CVS的部分置於GPL許可證之下;這篇文檔在Karl的站點上
以多種文檔格式提供。
《The Cederqvist》 -- 由Per Cederqvist所編寫的CVS手冊 -- 是一個關於CVS信息的全面資料。
   有大量的可用在許多平臺上CVS 附加工具,它們給 CVS增加了功能或使得CVS更容易使用。

   最後,不要忘了論壇、郵件列表和新聞 組可用來進行討論CVS。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章