查ICP網:全新的綜合網站備案信息查詢網
Copyright ? 2008-2028 www.mshuangcha.com [ 查icp] All Rights Reserved.
SVN是subversion的縮寫,是一個開放源代碼的版本控制系統,通過采用分支管理系統的高效管理,簡而言之就是用于多個人共同開發同一個項目,實現共享資源,實現最終集中式的管理。
SVN采用客戶端/服務器體系,項目的各種版本都存儲在服務器上,程序開發人員首先將從服務器上獲得一份項目的最新版本,并將其復制到本機,然后在此基礎上,每個開發人員可以在自己的客戶端進行獨立的開發工作,并且可以隨時將新代碼提交給服務器。當然也可以通過更新操作獲取服務器上的最新代碼,從而保持與其他開發者所使用版本的一致性。 [3]
SVN的客戶端有兩類,一類是基于Web的WebSVN等,另一類是以Tortoise SVN為代表的客戶端軟件。前者需要Web服務器的支持,后者需要用戶在本地安裝客戶端,兩種都有免費的開源軟件供使用。SVN存儲版本數據也兩種方式:BDB(一種事務安全型表類型)和FSFS(一種不需要數據庫的存儲系統)。因為BDB方式在服務器中斷時,有可能鎖住數據,所以還是FSFS方式更安全一點。
svn的特性
統一的版本號。CVS是對每個檔案順序編排版本號,在某一時間各檔案的版本號各不相同。而Subversion下,任何一次提交都會對所有檔案增加到同一個新版本號,即使是提交并不涉及的檔案。所以,各檔案在某任意時間的版本號是相同的。版本號相同的檔案構成軟體的一個版本。
原子提交。一次提交不管是單個還是多個檔案,都是作為一個整體提交的。在這當中發生的意外例如傳輸中斷,不會引起資料庫的不完整和數據損壞。
重新命名、復制、刪除檔案等動作都儲存在版本歷史記錄當中。
對于二進制檔案,使用了節省空間的儲存方法(簡單的理解,就是只儲存和上一版本不同之處)。
目錄也有版本歷史。整個目錄樹可以被移動或者復制,操作很簡單,而且能夠保留全部版本記錄。
分支的開銷非常小。
最佳化過的資料庫存取,使得一些操作不必存取資料庫就可以做到。這樣減少了很多不必要的和資料庫主機之間的網路流量。
支援元資料(Metadata)管理。每個目錄或檔案都可以定義屬性(Property),它是一些隱藏的鍵值對,使用者可以自訂屬性內容,而且屬性和檔案內容一樣在版本控制范圍內。
支援FSFS和Berkeley DB兩種資料庫格式。