轉載自:http://witmax.cn/subversion-summary.html
什麼是 Subversion/SVN ?
Subversion(簡稱SVN)是一個自由/開源的版本控制系統。在Subversion管理下,檔案和目錄可以超越時空。Subversion将檔案存放在中心版本庫裡。這 個版本庫很像一個普通的檔案伺服器,不同的是,它可以記錄每一次檔案和目錄的修改情況。于是我們就可以籍此将資料恢複到以前的版本,并可以檢視資料的更改 細節。
Subversion 的版本庫可以通過網絡通路,進而使使用者可以在不同的電腦上進行操作。從某種程度上來說,允許使用者在各自的空間裡修改和管理同一組資料可以促進團隊協作。因 為修改不再是單線進行(單線進行也就是必須一個一個進行),開發進度會進展迅速。此外,由于所有的工作都已版本化,也就不必擔心由于錯誤的更改而影響軟體品質。如果出現不正确的更改,隻要撤銷那一次更改操作即可。
Subversion軟體下載下傳
官方下載下傳:
- 伺服器和程式下載下傳 : http://subversion.tigris.org/getting.html#binary-packages
- Windows常用用戶端TortoiseSVN:http://tortoisesvn.net/downloads
- AnkhSVN(Visual Studio插件):http://ankhsvn.open.collab.net/
- Subclipse(Eclipse插件):http://subclipse.tigris.org/
- SCPlugin(Mac OS x用戶端):http://scplugin.tigris.org/
更多用戶端和工具可以看下表或者到官方網站察看:http://subversion.tigris.org/links.zh.html#clients
Subversion伺服器安裝
根據平台不同從上面軟體下載下傳中選擇一個進行下載下傳安裝,安裝完成。
安裝完成後,在Subversion伺服器上運作以下指令:
svnadmin create –fs-type bdb C:\svn_repository\test
其中–fs-type bdb參數訓示版本庫資料儲存格式,C:\svn_repository\test為建立版本庫對應的實體路徑,庫名為test的版本庫的資料和配置都将被儲存在該路徑下。Subversion用戶端可用通過svn:\\主機名或主機IP\test來通路該版本庫。
版本庫路徑下的conf目錄中保持了該版本庫的配置資訊。其中svnserve.conf儲存的是Subversion服務相關的配置,可以設定匿名通路和登入通路的預設權限、使用者資料庫及授權資料庫,一般情況下删除前面的原始配置語句行首的#即可,如啟用使用者資料庫隻需将行# password-db = passwd前的#删除即可。在passwd中設定登入使用者名和登入密碼。在authz中配置使用者權限。是以增加使用者隻需修改以上配置檔案,再重新開機一下Subversion服務即可。
在Windows下,如果預設安裝沒有将Subversion服務安裝為系統服務,可以再指令行中允許以下指令:
sc create svnserve binpath= “\”C:\Program Files\Subversion\bin\svnserve.exe\”–service –root c:\repos” displayname= “Subversion” depend= tcpip start= auto
sc description svnserve “Subversion server (svnserve)”
其中第一條指令是增加系統服務,第二條指令是增加服務描述。注意第一條指令中參數名=後需要有一個空格再接參數值。
删除、運作、停止Subversion服務指令依次對應為一下三條指令:
sc delete svnserve
net start svnserve
net stop svnserve
Subversion用戶端使用
Windows平台下建議使用TortoiseSVN,因為TortoiseSVN已與資料總管內建,版本庫管理下的代碼檔案圖檔增加了不同的圖檔訓示,友善辨認,而且操作內建到了右鍵菜單使用很友善,另外TortoiseSVN提供了中文語言包和使用者使用手冊,具體使用時可參看。

資料總管右鍵TortoiseSVN菜單
Linux平台采用指令行進行操作,具體使用可參考文章《svn在linux下的使用(svn指令)》。
常見問題
SVN用戶端無法連接配接到主機的問題,如TortoiseSVN的失敗提示“無法連接配接到主機”XXX”: 由于目标機器積極拒絕,無法連接配接”。如下圖所示:
TortoiseSVN提示無法連接配接到主機
問題是伺服器未啟動Subversion服務,或改變端口所緻。Windows下通過任務管理器檢視svnserve.exe程序是否運作,如有則記錄PID,然後在指令行中運作netstat -ano,檢視對應PID的端口号(Subversion服務的預設端口号為3690)。如是端口改變,則需要在SVN檢出URL中增加端口号。如是服務為運作則參考上文中提到的指令,增加并運作Subversion服務。
關于更多sc安裝svn服務的資訊可參考http://svn.collab.net/repos/svn/tags/1.4.0/notes/windows-service.txt