天天看點

svn的概述與使用

一、svn概述

1、版本控制

(1)版本控制(Revision Control):

是維護工程藍圖的标準做法,能追蹤工程藍圖從誕生一直到定案的過程。是一種記錄若幹檔案内容變化,以便将來查閱特定版本修訂情況的系統。也是一種軟體工程技巧,籍以在開發的過程中,確定由不同人所編輯的同一檔案都得到更新。

2、版本控制軟體

(1)CVS(Concurrent Versions System)

代表協作版本系統或者并發版本系統,是一種版本控制系統,友善軟體的開發和使用者協同工作。

(2)VSS ( Visual Source Safe )

隻能在windows下,作為 Microsoft Visual Studio 的一名成員,它主要任務就是負責項目檔案的管理

(3)Git

是用于Linux核心開發的版本控制工具。它采用了分布式版本庫的方式,不必伺服器端軟體支援,使源代碼的釋出和交流極其友善。Git的速度很快,這對于諸如Linux kernel這樣的大項目來說自然很重要。Git最為出色的是它的合并跟蹤(merge tracing)能力。

(4)SVN(Subversion )

是一個開放源代碼的版本控制系統,采用了分支管理系統,它的設計目标就是取代CVS。

2、svn特點

(1)統一的版本号。CVS是對每個檔案順序編排版本号,在某一時間各檔案的版本号各不相同。而Subversion下,任何一次送出都會對所有檔案增加到同一個新版本号,即使是送出并不涉及的檔案。是以,各檔案在某任意時間的版本号是相同的。版本号相同的檔案構成軟體的一個版本。

(2)原子送出。一次送出不管是單個還是多個檔案,都是作為一個整體送出的。在這當中發生的意外例如傳輸中斷,不會引起資料庫的不完整和資料損壞。

(3)重命名、複制、删除檔案等動作都儲存在版本曆史記錄當中。

(4)對于二進制檔案,使用了節省空間的儲存方法。(簡單的了解,就是隻儲存和上一版本不同之處)

(5)目錄也有版本曆史。整個目錄樹可以被移動或者複制,操作很簡單,而且能夠保留全部版本記錄。

(6)分支的開銷非常小。

(7)優化過的資料庫通路,使得一些操作不必通路資料庫就可以做到。這樣減少了很多不必要的和資料庫主機之間的網絡流量。

(8)支援中繼資料(Metadata)管理。每個目錄或檔案都可以定義屬性(Property),它是一些隐藏的鍵值對,使用者可以自定義屬性内容,而且屬性和檔案内容一樣在版本控制範圍内。

(9)支援FSFS和Berkeley DB兩種資料庫格式。

(10)不足:

隻能設定目錄的通路權限,無法設定單個檔案的通路權限。

3、svn體系結構

svn的概述與使用

二、svn操作

三、svn權限

四、myeclipse svn插件

繼續閱讀