SVN簡介

一、SVN簡介

   SVN是Subversion的簡稱,是一個開放源代碼的版本控制系統,是近年來崛起的版本管理工具,

SVN是一個跨平臺的開源的版本控制系統,Subversion管理着隨時間而改變的數據。這些數據放置在一箇中央資料

檔案庫(repository)中,這個檔案庫很像一個普通的文件服務器,不過它會記錄每一次文件的變動。這樣就可以

實現把檔案恢復到舊的版本,或者瀏覽文件的變動歷史。

  SVN:不但可以管理程序源代碼,還可以管理任何類型的文件,如:文本,圖片,視頻等等。

     相關站點:http://subversion.tigris.org/

          http://subversion.apache.org/

  

二、SVN訪問方式:

    服務端訪問方式: 1.獨立服務器     例如:svn://svn.etiantian.org/sadoc

                2.藉助apache     例如:http://svn.etiantian.org/sadoc

3.本地直接訪問   例如:file://svn.etiantian.org/sadoc

    SVN客戶端訪問方式:

 Subversion可以通過多種方式訪問以本地磁盤訪問,或各種各樣不同的網絡協議,但一個版本庫地址

 永遠都是一個URL,URL方案反映了訪問方法。

            訪問方法

 file://   直接版本庫訪問(本地磁盤或者網絡磁盤)

 http://   通過webDAV協議訪問支持Subversion的Apache服務器

 https://  與http://(ˇ?ˇ) (ˇ?ˇ) 類似,但是用SSL加密

 svn://    通過未認證的TCP/IP自定義訪問svnserver服務器

 svn+ssh://  通過認證的TCP/IP自定義訪問svnserver服務器

 

三、SVN數據格式:

       SVN存儲版本數據也有2種方式:BDB(一種事物安全型表類型)和FSFS(一種不需要數據庫的存儲系統)。因爲BDB方式

  在服務器中斷時,有可能鎖住數據,所以還是FSFS方式更安全一點。

  

  CVS是個基於RCS文件的版本控制系統,每個CVS文件都不過是普通文件,加上一些額外信息。這些文件會簡單的重複本地文件的樹

  結構,因此,不必擔心有什麼數據損失,如果有必要可以手動修改RCS文件。

SVN是基於關係數據庫的(BerkleyDB)或一系列二進制文件的(FS_FS)。一方面這解決了許多問題(例如:並行讀寫共享文件)

以及添加了許多新功能(例如運行時事物特性)。然而另一方面,數據存儲由此變得不透明。


四、svn架構原理圖

    commandline                  GUI 

client app                client apps

   命令行客戶端          圖形界面客戶端

-----------------------------------------------client interface 客戶端接口


Working Copy    client LIbrary

management  客戶端庫

 library

  

               Repository ACCESS 

                DAV  SVN  Local   

    

http方式         svn方式      本地訪問

APACHE          svnserver

調用mod_dav模塊       

  mod_dav_svn

  

         subversion Repository

 

   Berkeley DB             FSFS

   

   

五、工作流程

  工作流程 

編輯 集中式管理的工作流程如下圖:

集中式代碼管理的核心是服務器,所有開發者在開始新一天的工作之前必須從服務器獲取代碼,然後開發,最後解決衝突,提交。所有的版本信息都放在服務器上。如果脫離了服務器,開發者基本上可以說是無法工作的。下面舉例說明:

開始新一天的工作:

 1、從服務器下載項目組最新代碼。

 2、進入自己的分支,進行工作,每隔一個小時向服務器自己的分支提交一次代碼(很多人都有這個習慣。因爲有時候自己對代碼改來改去,最後又想還原到前一個小時的版本,或者看看前一個小時自己修改了哪些代碼,就需要這樣做了)。

 3、下班時間快到了,把自己的分支合併到服務器主分支上,一天的工作完成,並反映給服務器。

這就是經典的svn工作流程,從流程上看,有不少缺點,但也有優點。

  優缺點 

所有的文檔都顯示SVN可以取代CVS,同時SVN的問題和缺點都被隱藏了。不幸的是,我們並不認爲SVN是CVS的替代品,儘管很多缺陷都被修改了。更有甚者,它甚至讓人重回CVS。CVS和SVN的比較類似於比較C++和Java。很明顯CVS和SVN都遠比SourceSafe強大的多,如同C++和Java比Basic強大的多。CVS代表了幾乎代碼控制系統的所有功能項,儘管有時他的實現並不很方便。SVN修正並添加了一些CVS並不擁的有功能。例如,創建標誌和分支dubious,你在編輯文件時其他人不會有任何通知。SVN並不是CVS的替代品,只是個不同的系統,類似於CVS。它有些特有的功能,足以作爲採用它的理由。這些功能使他更適合於開發環境,例如對PowerBuilder。下面你可以找到兩者的相對優勢、劣勢。   

   


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章