在linux中,cvs全稱“Concurrent Version System”,中文意思為“代碼版本控制軟件”,它是一種GNU軟件包,主要用于在多人開發環境下源碼的維護。CVS可以維護任意文檔的開發和使用,例如共享文件的編輯修改,而不僅僅局限于程序設計;CVS維護的文件類型可以是文本類型也可以是二進制類型。CVS基于客戶端/服務器的行為使其可容納多個用戶。
本教程操作環境:linux7.3系統、Dell G3電腦。
linux中的cvs
CVS(Concurrent Versions System,代碼版本控制軟件),是一種GNU軟件包,主要用于在多人開發環境下源碼的維護。與它相類似的代碼版本控制軟件有subversion。多個開發人員通過一個中心版本控制系統來記錄文件版本,從而達到保證文件同步的目的。CVS版本控制系統是一種GNU軟件包,主要用于在多人開發環境下的源碼的維護。但是由于之前CVS編碼的問題,大多數軟件開發公司都使用SVN替代了CVS。
Concurrent有并發的、協作的、一致的等含義。實際上CVS可以維護任意文檔的開發和使用,例如共享文件的編輯修改,而不僅僅局限于程序設計。CVS維護的文件類型可以是文本類型也可以是二進制類型。
CVS用Copy-Modify-Merge(拷貝、修改、合并)變化表支持對文件的同時訪問和修改。它明確地將源文件的存儲和用戶的工作空間獨立開來,并使其并行操作。
CVS基于客戶端/服務器的行為使其可容納多個用戶。這一特性使得CVS成為位于不同地點的人同時處理數據文件(特別是程序的源代碼)時的首選。
工作思路
在一臺服務器上建立一個源代碼庫,庫里可以存放許多不同項目的源程序。由源代碼庫管理員統一管理這些源程序。每個用戶在使用源代碼庫之前,首先要把源代碼庫里的項目文件下載到本地,然后用戶可以在本地任意修改,最后用CVS命令進行提交,由CVS源代碼庫統一管理修改。這樣,就好像只有一個人在修改文件一樣,既避免了沖突,又可以做到跟蹤文件變化等。
CVS是并發版本系統(Concurrent Versions System)的意思,主流的開放源碼網絡透明的版本控制系統。CVS對于從個人開發者到大型、分布團隊都是有用的。
它的客戶機/服務器存取方法使得開發者可以從任何因特網的接入點存取最新的代碼。它的無限制的版本管理檢出(check out:注1)的模式避免了通常的因為排它檢出模式而引起的人工沖突。它的客戶端工具可以在絕大多數的平臺上使用。
CVS被應用于流行的開放源碼工程中,像Mozilla,GIMP,XEmacs,KDE和GNOME等。那么它到底怎么樣。
你可能會說,它非常棒,但是對于"我"來說它能做什么。首先,基本的 :一個版本控制系統保持了對一系列文件所作改變的歷史記錄。對于一個開發者來說,那就意味著在你對一個程序所進行開發的整個期間,能夠跟蹤對其所作的所有改動的痕跡。對你來說,有沒有出現過由于在命令行上按錯鍵而導致一天的工作都白費的情況呢。版本控制系統給了你一個安全的網絡。
版本控制系統對任何人都有用,真的。(畢竟,誰不愿意使用一個安全的網絡呢。)它們經常被軟件開發團隊使用。在團隊中工作的開發者需要能夠調整他們的各自的修改;一個集中式版本控制系統允許那樣做。
代碼調整
在傳統的版本控制系統中,一個開發者檢出一個文件,修改它,然后將其登記回去。檢出文件的開發者擁有對這個文件修改的排它權。沒有其它的開發者可以檢出這個文件-- 并且只有檢出那個文件的開發者可以登記(check in:注2)所做的修改。(當然對于管理員有很多方法可以超越這個限制。)
想一下排它的檢出可能會如何工作:Bob的兄弟檢出 foo.java以便加入注釋,寫好代碼后他什么也沒做。然后他去吃午飯了。Bob吃完午飯后,發現他的老板所指給他的一個bug在 foo.java里。他試圖簽出 foo.java … 但是版本控制系統不允許他這樣做,因為他的兄弟已經把它簽出了。Bob不得不等著他的兄弟吃完午飯回來(在這個"好"日子用了兩個小時),他才可以修正bug。
在一個大型的開放源碼工程中,因為開發者可能在任意的時區工作得很晚,給予一個開發者阻止任意地方的其它開發者繼續處理任意文件的能力很明顯無法運轉。他們最終將因為不能夠在他們想要的時候開展項目而感到厭煩。
CVS通過它的無限制的簽出模式解決了這個問題。簽出一個文件并不給定開發者對那個文件的排它權。其它的開發者也可以對其檢出,進行他們自己的修改,并且將其登記回去。
"等一下"你可能會說。"但是后面的登記不是會覆蓋前面的嗎"回答是不會。詳細地回答就是當多個開發者對同一個文件作了修改CVS會檢測,并且自動合并那些改變。
哇噢。自動的,不用擔心 -- CVS 會很小心,并且將會自動合并那些只要不是對代碼的同一行所作的改動。如果CVS不能安全的處理這些改動,開發者將不得不手工合并它們。從此去往何處。
有大量在許多平臺上可用的CVS附加工具,它們給CVS增加了功能或使得CVS更容易使用。
使用好處
修改軟件時可能會不知不覺混進一些bug,而且可能過了很久你才會察覺到它們的存在。有了 cvs,你可以很容易地恢復舊版本,并從中看出到底是哪個修改導致了這個bug。有時這是很有用的。
cvs 用一種聰明的辦法把一個文件的所有版本保存在一個文件里,僅僅保存不同版本之間的差異。
cvs 最初由 Dick Grune 在 1986 年 12 月以 shell腳本的形式發布在 comp.sources.unix 的新聞組第 6 卷里;1989 年 4 月,Brian Berliner 設計了 cvs 并編寫了代碼。之后 Jeff Polk 幫助 Brian 設計了 cvs 模塊和銷售商分支支持。
cvs 不能指導你如何構造什么。它只是將你所設計的一種樹結構文件保存下來以備恢復之用。
cvs 不能決定如何在一個檢出工作目錄使用磁盤空間。如果你在每一個目錄中都寫下 Makefile 或腳本,且必須知道其它一切的相對位置,有時不得不檢出整個倉庫。
如果你將你的工作模塊化,并且建立了一個共享文件的 build 系統(通過links,mounts,Makefiles 里的 VPATH 等),你就可以隨意安排磁盤的使用。
你應該在 cvs 下放一個工具來支持這樣一個構造系統(腳本、Makefile 等等)。
有些變化發生在 cvs 范圍之外時,要想想什么文件需要重建。一個傳統的方法是用 make 來構造,并用一些自動化的工具來產生 make 所用的相關文件。
到此,關于“linux中的cvs是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注本站網站,小編會繼續努力為大家帶來更多實用的文章!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
(資料圖片)1、丁子高,原名丁浩霖,1979年7月31日出生于中國,中國香港流行樂男歌手。2、1999年,參加全球華人新秀歌唱大賽,曾經是樂隊組合VRF成員,但VRF最后在2002年拆伙。3、2004年,丁子高于IPS傳藝公關廣告公司擔任項目總監一職;2011年創立RM Workshop公關公司;2013年,與Conrad Ng合伙創立Collaboration Group,為公司創辦人及總監。文...
(資料圖片僅供參考)隨著社會越來越發達,大家都選擇在網絡上汲取相關知識內容,比如四庫全書寫的是什么,為了更好的解答大家的問題,小編也是翻閱整理了相應內容,下面就一起來看一下吧!《四庫全書》全稱《欽定四庫全書》。是在乾隆皇帝的主持下,由紀昀等360多位高官、學者耗時十三年編成的叢書。分經、史、子、集四部,故名四庫?!端膸烊珪钒凑諆热莘诸惙纸?、史、子、集四部分。1、經部收錄儒家“十三經”及相關著作,...
什么是貨幣型基金?貨幣型基金指由基金管理人運作,聚集社會閑散資金,同時基金托管人保管資金的一種開放式基金。貨幣型基金有三個主要的特點,分別是高安全性、高流動性和穩定收益性,同時具備“準儲蓄”的特征。市場上有很多的貨幣基金,用戶在選擇投資時可以查看以往的收益情況,然后選擇收益高的貨幣基金投資,這樣可以獲得較多的收益。一、貨幣型基金和債券型基金的區別1、投資范圍不同。貨幣型基金...