1. 程式人生 > >SVN工作原理

SVN工作原理

菜鳥教程

SVN伺服器是版本控制管理工具,其核心是集中式程式碼管理。
開發者在開始新一天工作之前必須現在本地update一下程式碼,然後開發、解決衝突、合併。所有的版本資訊都放在SVN上面。

SVN使用

一、執行方式
svn伺服器有兩種執行方式:獨立伺服器、藉助apache執行。
1、獨立伺服器訪問
如:svn://svn.test.com/test

2、藉助Apache等http服務
如:http://svn.test.com/test
(1)單獨安裝Apache+svn
(2)CSVN(Apache+SVN)是一個單獨的整合的軟體,帶web介面管理的SVN軟體

3、本地直接訪問
訪問地址如:file:///application/svndata/test

SVN客戶端訪問方式
svn客戶端可以通過多種方式訪問伺服器端,例如:本地磁碟訪問,或各種各樣的網路協議訪問,但是一個版本庫地址永遠都是隻有一個URL,

URL反映了訪問方法:
(1)file:/// 直接通過本地磁碟或者網路磁碟訪問版本庫
(2)http:// 通過WebDAV協議訪問支援Subversion的Apache伺服器
(3)https:// 與http://相似,但是用SSL加密訪問
(4)svn:// 通過TCP/IP自定義協議訪問是SVN伺服器
(5)svn+ssh:// 通過認證並加密的TCP/IP自定義協議訪問svn伺服器

二、資料儲存
svn儲存版本資料有兩種方式:BDB(一種事務安全型表型別)、FSFS(一種不需要資料庫的儲存系統)。因為BDB方式在伺服器中斷時,有可能鎖住資料,所以還是FSFS方式更安全一點。

(1)BDB
伯克利DB(Berkeley DB),版本庫可以使用的一種經過充分測試的後臺資料庫實現,不能再通過網路共享的檔案系統上使用,伯克利DB是Subversion1.2版本以前的預設版本庫格式。
(2)FSFS
一個專用於Subversion版本庫的檔案系統後端,可以使用網路檔案系統(例如:NFS或SMBFS)。是1.2版本及以後的預設版本庫格式。

svn是基於關係型資料庫的BDB或一系列二進位制檔案的FSFS。這解決了許多問題(如:並行讀寫共享檔案)以及添加了許多新功能(如:執行時的事物特性)。然而另一方面,資料儲存由此變得不透明,不能像ftp,samba,nfs等能看到實體的檔案。

三、工作原理
SVN是一個增量式的版本控制,它不會講各個版本的副本都完整的儲存下來,而只會記錄下版本之間的差異,然後按照順序更新或者恢復特定版本的資料。這使得服務端的儲存量會非常低。

](https://img-blog.csdnimg.cn/2018110911330271.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3BvdGF0bzUxMg==,size_16,color_FFFFFF,t_70)

在這裡插入圖片描述

在這裡插入圖片描述