重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
這篇文章主要介紹“svn與cvs的區(qū)別有哪些”,在日常操作中,相信很多人在svn與cvs的區(qū)別有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”svn與cvs的區(qū)別有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
渦陽網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、自適應(yīng)網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)公司2013年開創(chuàng)至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
區(qū)別:1、CVS的版本號是基于文件的自增序列號,而SVN的是基于全局的自增序列號,不僅針對文件,還包括目錄;2、CVS是基于RCS文件的,而SVN是基于關(guān)系數(shù)據(jù)庫或一系列二進(jìn)制文件的;3、CVS允許任意的滾回,而SVN不允許遞交后滾回;4、SVN支持“零或一”事務(wù)原則,而CVS不支持;5、CVS不支持本地文件重命名提交,而SVN支持;6、CVS有四種權(quán)限,而SVN只有三種權(quán)限。
本教程操作環(huán)境:windows7系統(tǒng)、Subversion 1.14版、Dell G3電腦。
CVS(Concurrent Versions System):
是開發(fā)源碼的并發(fā)版本系統(tǒng) 。它可用于各種平臺,包括 Linux 、Unix和 Windows NT/2000/XP等。CVS免費(fèi)開源,對項(xiàng)目進(jìn)行版本管理。
功能介紹:
1、 代碼統(tǒng)一管理,保存所有代碼文件更改的歷史記錄。對代碼進(jìn)行集中統(tǒng)一管理,可以方便查看新增或刪除的文件,能夠跟蹤所有代碼改動痕跡。可以隨意恢復(fù)到以前任意一個(gè)歷史版本。并避免了因?yàn)榘姹静煌氲纳顚覤UG。
2、 完善的沖突解決方案,可以方便的解決文件沖突問題,而不需要借助其它的文件比較工具和手工的粘貼復(fù)制。
3、 代碼權(quán)限的管理。可以為不同的用戶設(shè)置不同的權(quán)限。可以設(shè)置訪問用戶的密碼、只讀、修改等權(quán)限,而且通過CVS ROOT目錄下的腳本,提供了相應(yīng)功能擴(kuò)充的接口,不但可以完成精細(xì)的權(quán)限控制,還能完成更加個(gè)性化的功能。
4、 支持方便的版本發(fā)布和分支功能。
SVN(Subversion):
SVN全名Subversion,即版本控制系統(tǒng)。SVN是Subversion的簡稱,是一個(gè)開放源代碼的版本控制系統(tǒng),相較于RCS、CVS,它采用了分支管理系統(tǒng),它的設(shè)計(jì)目標(biāo)就是取代CVS。互聯(lián)網(wǎng)上很多版本控制服務(wù)已從CVS遷移到Subversion。
SVN是一種集中式文件版本管理系統(tǒng)。
集中式代碼管理的核心是服務(wù)器,所有開發(fā)者在開始新一天的工作之前必須從服務(wù)器獲取代碼,然后開發(fā),最后解決沖突,提交。所有的版本信息都放在服務(wù)器上。如果脫離了服務(wù)器,開發(fā)者基本上是不可以工作。
(SVN)集中式管理的工作流程:
集中式代碼管理的核心是服務(wù)器,所有開發(fā)者在開始新一天的工作之前必須從服務(wù)器獲取代碼,然后開發(fā),最后解決沖突,提交。所有的版本信息都放在服務(wù)器上。如果脫離了服務(wù)器,開發(fā)者基本上是不可以工作。
管理流程如下圖:
svn與cvs的區(qū)別
CVS | SVN | |
關(guān)于版本號 | 基于文件的自增序列號。 | 基于全局的自增序列號,而不僅僅針對文件,還包括目錄等。 |
存儲類型格式 | CVS是個(gè)基于RCS文件的版本控制系統(tǒng)。每個(gè)CVS文件都不過是普通的文件,加上一些額外信息。這些文件會簡單的重復(fù)本地文件的樹結(jié)構(gòu)。因此,不必?fù)?dān)心有什么數(shù)據(jù)損失,如果必要的話你可以手工修改RCS文件。 | SVN是基于關(guān)系數(shù)據(jù)庫的(BerkleyDB)或一系列二進(jìn)制文件的(FS_FS)。一方面這解決了許多問題 (例如,并行讀寫共享文件)以及添加了許多新功能(例如運(yùn)行時(shí)的事務(wù)特性。)。然而另一方面,數(shù)據(jù)存儲由此變得不透明,或是說并不那么用戶友好了。那就是為什么工具軟件,對倉庫 (數(shù)據(jù)庫)變得那么重要了。 |
訪問速度 | 比較慢;因?yàn)樗趩蜗颍ǚ?wù)端-->客戶端)差異化文件傳輸 | 整體而言,由于架構(gòu)實(shí)現(xiàn)的不同, SVN的確比CVS快很多;因?yàn)椴捎秒p向差異化文件傳輸。 在網(wǎng)絡(luò)上它只傳輸很少的信息并支持更多的離線模式的功能。但這也是有代價(jià)的。速度的代價(jià)就是巨大的存儲(完全備份所有的工作文件)。 |
元數(shù)據(jù) | 只允許存儲文件 | 允許一個(gè)文件有任意都的可命名屬性。功能十分完全,但不知到底有什么用 |
文件類型 | 最初是為文本文件存儲而設(shè)計(jì)的。因此其他文件類型(二進(jìn)制,統(tǒng)一碼)文件的支持幾乎沒有如需要的話則要有其他信息,并且客戶端服務(wù)器端都要調(diào)整。 | SVN會關(guān)心所有的文件類型,不需要你來手工操作;因?yàn)樗拇鎯κ腔诙M(jìn)制的 |
滾回 | CVS允許任意的滾回,在任意一個(gè)已遞交的版本上,盡管著要華些時(shí)間(所有的文件都要分別處理)。 | SVN不允許遞交后滾回。我們建議把倉庫里好的狀態(tài)版本加到末尾,覆蓋掉損壞的版本。而損壞的版本無論如何也是會存在數(shù)據(jù)庫里的。 |
事務(wù) | CVS中的 “零或一”事務(wù)原則根本沒有實(shí)現(xiàn)。如果檢入幾個(gè)文件的話(加到服務(wù)器上),很有可能部分文件完成了,而另幾個(gè)沒有。最為一個(gè)潛規(guī)則,手工糾正這些并且對余下的文件 (而不是所有文件)一一重復(fù)檢入。這樣這些文件將在兩階段中被檢入。但至今為止,因?yàn)檫@個(gè)功能缺少而導(dǎo)致的數(shù)據(jù)倉庫損壞的案例還沒有出現(xiàn)過。 | 支持“零或一”事務(wù)原則,這是SVN的一大優(yōu)勢 |
架構(gòu)、代碼、可擴(kuò)展性 | CVS是個(gè)古老的系統(tǒng)。起初CVS只是一些運(yùn)用RCS的腳本文件。后來這些腳本被組成一個(gè)單個(gè)應(yīng)用程序,但內(nèi)部結(jié)構(gòu)仍然有待改進(jìn)。直到今天,仍有人企圖從頭開始,重寫一遍CVS,但都不成功。我們曾經(jīng)嘗試國重寫客戶端代碼以期更好的集成效果,但是,不成功。現(xiàn)在我們都不認(rèn)為CVS在功能上能走到多遠(yuǎn)了。 | Subversion的開發(fā)員的確花了許多時(shí)間在內(nèi)部架構(gòu)上。我們?nèi)匀徊恢肋@些決策有多大的正確性等等。但有一點(diǎn)可以肯定,代碼有良好的可擴(kuò)展性,增強(qiáng)工作也在進(jìn)行著。 |
重命名、刪除操作 | 不支持本地文件重命名提交; 刪除分remove和erase兩種前者把本地和庫中文件都刪除,后者只是刪除本地文件; 不能刪除文件夾 | 支持文件重命名提交系統(tǒng)會提示刪除舊文件,創(chuàng)建新文件 刪除本地文件提交 庫中文件也被刪除 |
用戶訪問權(quán)限 | 有read、write、creat、none這四種權(quán)限,任何人不能刪除文件夾(admin也只能跑到服務(wù)器上把相應(yīng)文件夾殘忍刪除?我暫時(shí)只知道這個(gè)方法……) | 只有read、write、none三種權(quán)限 creat和delete權(quán)限好象和write是捆綁在一起的 |
創(chuàng)建分支與基線 | CVS 在創(chuàng)建分支的時(shí)候,需要對所有進(jìn)行分支的文件進(jìn)行依次的操作,因此分支的建立成本(主要是建立分支所需的時(shí)間,或消耗的計(jì)算資源)與參與分支的文件數(shù)量成比例,項(xiàng)目越大,版本庫越大,文件越多,分支的建立成本越高;基線(tag)的建立與此類似。 | SVN 的分支和基線是通過執(zhí)行“拷貝”來建立的:回想一下在沒有引入版本管理工具的時(shí)候我們是如何進(jìn)行所謂的“分支”和“基線”管理的?答案顯然是“拷貝” — 我們通過“拷貝”或“備份”來建立基線;同樣,為支持多個(gè)開發(fā)人員可以同時(shí)進(jìn)行開發(fā),我們?yōu)槊總€(gè)開發(fā)人員創(chuàng)建一份“拷貝”。 |
到此,關(guān)于“svn與cvs的區(qū)別有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!