您好,登錄后才能下訂單哦!
這篇文章主要介紹“linux中的cvs是什么”,在日常操作中,相信很多人在linux中的cvs是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”linux中的cvs是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
在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是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。