搜尋
首頁常見問題svn與cvs的差別是什麼

svn與cvs的差別是什麼

Jun 21, 2022 am 11:40 AM
svn

區別:1、CVS的版本號是基於文件的自增序號,而SVN的則是基於全域的自增序號,不僅針對文件,還包括目錄;2、CVS是基於RCS文件的,而SVN是基於關聯式資料庫或一系列二進位檔案的;3、CVS允許任意的滾回,而SVN不允許遞交後滾回;4、SVN支援「零或一」事務原則,而CVS不支援; 5.CVS不支援本機檔案重新命名提交,而SVN支援;6、CVS有四種權限,而SVN只有三種權限。

svn與cvs的差別是什麼

本教學操作環境:windows7系統、Subversion 1.14版、Dell G3電腦。

CVS(Concurrent Versions System):

是開發原始碼的並發版本系統 。它可用於各種平台,包括 Linux 、Unix和 Windows NT/2000/XP等。 CVS免費開源,對專案進行版本管理。

功能介紹:

1、 程式碼統一管理,保存所有程式碼檔案變更的歷史記錄。對程式碼進行集中統一管理,可以方便查看新增或刪除的文件,能夠追蹤所有程式碼改變痕跡。可以隨意恢復到以前任一個歷史版本。並避免了因為版本不同引入的深層BUG。

2、 完善的衝突解決方案,可以方便的解決文件衝突問題,而不需要藉助其它的文件比較工具和手工的貼上複製。  

3、 程式碼權限的管理。可以為不同的使用者設定不同的權限。可以設定存取使用者的密碼、唯讀、修改等權限,而且透過CVS ROOT目錄下的腳本,提供了相應功能擴充的接口,不但可以完成精細的權限控制,還能完成更加個人化的功能。 

4、 支援方便的版本發佈和分支功能。

SVN(Subversion):

  • # SVN全名Subversion,即版本控制系統。 SVN是Subversion的簡稱,是一個開放原始碼的版本控制系統,相較於RCS、CVS,它採用了分支管理系統,它的設計目標就是取代CVS。網路上有許多版本控制服務已從CVS遷移到Subversion。

  •  SVN是一種集中式檔案版本管理系統。

  • 集中式程式碼管理的核心是伺服器,所有開發者在開始新一天的工作之前必須從伺服器取得程式碼,然後開發,最後解決衝突,提交。所有的版本資訊都放在伺服器上。如果脫離了伺服器,開發者基本上就是不可以工作。

(SVN)集中式管理的工作流程:

集中式程式碼管理的核心是伺服器,所有開發者在開始新一天的工作之前必須從伺服器取得程式碼,然後開發,最後解決衝突,提交。所有的版本資訊都放在伺服器上。如果脫離了伺服器,開發者基本上就是不可以工作。 

 管理流程如下圖: 

svn與cvs的差別是什麼

#svn與cvs的差異


CVS SVN
關於版本號碼 基於文件的自增序號。 基於全域的自增序號,而不僅僅針對文件,還包括目錄等。
儲存類型格式 CVS是基於RCS檔案的版本控制系統。每個CVS文件都不過是普通的文件,加上一些額外資訊。這些文件會簡單的重複本機文件的樹狀結構。因此,不必擔心有什麼資料損失,如果必要的話你可以手動修改RCS檔案。 SVN是基於關聯式資料庫的(BerkleyDB)或一系列二進位檔案的(FS_FS)。一方面這解決了許多問題 (例如,並行讀寫共享文件)以及添加了許多新功能(例如運行時的事務特性。)。然而另一方面,資料儲存由此變得不透明,或是說並不那麼用戶友好了。那就是為什麼工具軟體,對倉庫 (資料庫)變得那麼重要了。
存取速度 比較慢;因為他基於單向(服務端-->客戶端)差異化檔案傳輸 整體而言,由於架構實現的不同, SVN的確比CVS快很多;因為採用雙向差異化文件傳輸。
在網路上它只傳輸很少的信息並支援更多的離線模式的功能。但這也是有代價的。速度的代價就是龐大的儲存空間(完全備份所有的工作文件)。
元資料 只允許儲存檔案 允許一個檔案有任意都的可命名屬性。功能十分完全,但不知到底有什麼用
檔案類型 最初是為文字檔案儲存而設計的。因此其他文件類型(二進制,統一碼)文件的支援幾乎沒有如需要的話則要有其他信息,並且客戶端伺服器端都要調整。 SVN會關心所有的檔案類型,不需要你來手動操作;因為他的儲存是基於二進位的
滾回 CVS允許任意的滾回,在任意一個已遞交的版本上,儘管著要華些時間(所有的文件都要分別處理)。 SVN不允許遞交後滾回。我們建議把倉庫裡好的狀態版本加到最後,覆蓋掉損壞的版本。而損壞的版本無論如何也是會存在資料庫裡的。
事務 CVS中的 「零或一」事務原則根本沒有實現。如果檢入幾個文件的話(加到伺服器上),很有可能部分文件完成了,而另幾個沒有。最為一個潛規則,手工糾正這些並且對餘下的文件 (而不是所有文件)一一重複檢入。這樣這些文件將在兩階段中被檢入。但至今為止,因為這個功能缺少而導致的資料倉儲損壞的案例還沒有出現過。 支援「零或一」事務原則,這是SVN的一大優勢
架構、程式碼、可擴展性 CVS是個古老的系統。起初CVS只是一些運用RCS的腳本檔。後來這些腳本被組成一個單一應用程序,但內部結構仍有待改進。直到今天,仍有人企圖從頭開始,重寫一遍CVS,但都不成功。我們曾經嘗試國重寫客戶端程式碼以期更好的整合效果,但是,不成功。現在我們都不認為CVS在功能上能走到多遠了。 Subversion的開發員的確花了許多時間在內部架構上。我們仍然不知道這些決策有多大的正確性等等。但有一點可以肯定,程式碼有良好的可擴展性,增強工作也在進行著。
重新命名、刪除操作 不支援本機檔案重新命名提交;
刪除分remove和erase兩種前者把本機和庫中檔案都刪除,後者只是刪除本地文件;
不能刪除資料夾
支援文件重命名提交系統會提示刪除舊文件,創建新文件
刪除本機檔案提交庫中檔案也被刪除
使用者存取權限 #有read、write、creat、none這四種權限,任何人都無法刪除資料夾(admin也只能跑到伺服器上把對應資料夾殘忍刪除?我暫時只知道這個方法…) #只有read、write、none三種權限creat和delete權限好像和write是捆綁在一起的
建立分支與基準 CVS 在建立分支的時候,需要對所有進行分支的檔案進行依序的操作,因此分支的建立成本(主要是建立分支所需的時間,或消耗的計算資源)與參與分支的文件數量成比例,項目越大,版本庫越大,文件越多,分支的建立成本越高;基線(tag)的建立與此類似。 SVN 的分支和基準是透過執行「拷貝」來建立的:回想一下在沒有引入版本管理工具的時候我們是如何進行所謂的「分支」和「基準」管理的?答案顯然是「拷貝」 — 我們透過「拷貝」或「備份」來建立基準;同樣,為支援多個開發人員可以同時進行開發,我們為每個開發人員創建一份「拷貝」。

(學習影片分享:程式設計基礎影片

以上是svn與cvs的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!