SVN兩種存儲方式BDB和FSFS的比較,以及svn上傳和下載文件

SVN中兩種存儲方式的比較(BDB vs. FSFS)

轉載 2010年05月13日 20:44:00

From:http://www.ibm.com/developerworks/cn/java/j-lo-apache-subversion/php

 

Subversion 的版本庫(repository),就是位於服務器端,統一管理和儲存數據的地方。本文中,咱們以 Linux 爲例,介紹在服務器端配置和管理 Subversion 版本庫的基本方法。java

要建立一個版本庫,首先要肯定採用哪一種數據存儲方式。在 Subversion 中,版本庫的數據存儲有兩種方式,一種是在 Berkeley DB 數據庫中存放數據;另外一種是使用普通文件,採用自定義的格式來儲存,稱爲 FSFS。數據庫

兩種存放方式各有優缺點,讀者能夠參考 http://svnbook.org/ 上面的文檔來了解二者詳細的比較和區別,這裏,咱們僅引用上述文檔當中的簡單對照表,給出一個簡明的比較。apache

特性 Berkeley DB FSFS
對操做中斷的敏感 很敏感;系統崩潰或者權限問題會致使數據庫「塞住」,須要按期進行恢復。 不 敏感
可只讀加載 不能 可 以
存儲平臺無關 不能 可 以
可從網絡文件系統訪問 不能 可 以
版本庫大小 稍大 稍 小
擴展性:修訂版本樹數量 無限 制 某些本地文件系統在處理單一目錄包含上千個條目時會出現問題。
擴展性:文件較多的目錄 較慢 較慢
檢出最新代碼的速度 較快 能夠
大量提交的速度 較慢,但時間被分配在整個提交操做中 較 快,但最後較長的延時可能會致使客戶端操做超時
組 訪問權處理 對於用戶的 umask 設置十分敏感,最好只由一個用戶訪問。 對 umask 設置不敏感
功能成熟時間 2001 年 2004 年

肯定了具體的數據存儲類型,只要在命令行當中執行 svnadmin 命令就能夠建立一個 Subversion 版本庫,命令以下:服務器

 

[c-sharp]  view plain  copy
 
  1. # 建立文件夾  
  2. $ mkdir /etc/svn/  
  3. $ mkdir /etc/svn/repos  
  4. # 運行建立版本庫的命令,指定數據存儲爲 FSFS,若是要指定爲 Berkeley DB,則將 fsfs 替換爲 bdb  
  5. $ svnadmin create --fs-type fsfs /etc/svn/repos  

 svn上傳文件的存儲:網絡

上傳的文件放在SVN服務器的哪一個目錄下

SVN服務器版本庫有兩種格式,

一種爲FSFS,

一種爲BDB

把文件上傳到SVN版本庫後,上傳的文件再也不以文件原來的格式存儲,而是被svn以它自定義的格式壓縮成版本庫數據,存放在版本庫中。
若是是FSFS格式,這些數據存放在版本庫的db目錄中,裏面的revs和revprops分別存放着每次提交的差別數據和日誌等信息

首先 svn help 能夠看到 svn 所支持的所有命令:

命令很少,若是用過Tortoise SVN的客戶端,從字面上也不難理解這些命令所表明的含義。svn

首先我須要把個人項目 Checkout 出來。這個過程使用的命令是 svn checkout 或者 svn co工具

提交代碼post

對代碼進行修改後,須要提交代碼到SVN中,這時要用到 svn commit / svn ci 命令。提交的時候,最好使用 –m 帶上註釋,這樣從此查看的時候也比較方便。編碼

更新文件

每次開始編碼前,最好更新一下代碼,看看其餘人是否修改過代碼。更新的命令爲: svn update / svn up

能夠切換到但願更新的目錄,直接執行 svn update 而沒必要跟特定的文件或目錄,也能夠本身指定須要更新的文件或目錄。

查看日誌

這個功能在發現代碼發生了變化,須要瞭解都有哪些變化的時候特別有用,前提是每一次的更新你們都寫了註釋。

使用命令 svn log :

[root@localhost config]# svn log config.php 
------------------------------------------------------------------------ 
r79832 | shiqiang | 2010-06-29 11:16:35 +0800 (Tue, 29 Jun 2010) | 1 line

Change Config 
------------------------------------------------------------------------ 
r76996 | shiqiang | 2010-06-22 13:51:33 +0800 (Tue, 22 Jun 2010) | 1 line

active $Id$s

 

基本上SVN的經常使用命令有這兩個就能夠開始工做了,可是SVN其實功能特別強大,在DIFF和Conflict處理方面,尚未研究過Linux下如何進行解決,另外還有Tag和Branch的功能。用好了SVN能夠對於項目管理提供一個很是好的工具。

相關文章
相關標籤/搜索