Linux下配置使用SVN

from: http://yangsq.javaeye.com/blog/162649

 

平時的團隊開發,少不了要用一個協作工具。對於以前,無疑cvs是個無錯的選擇(像IBM的全球代碼維護)。但是,科技在發展嗎,現在有了更好的svn了,所以直接就是svn吧。有關svn的具體信息可以上它的官網或www.subversion.org.cn

網上關於svn的也不少,不過感覺大都出自一處,也不知道quote的人真的試過沒有。當然,學習嗎,但個人感覺學完人家的東西一定要有自己的體會。下面是我的一個簡單的配置過程。

 

首先,肯定是svn的安裝,這個很簡單:

sudo apt-get install subversion

sudo apt-get install libapache2-svn(這個是和apache配合使用的,apache的安裝就不說了)

完成安裝後,給系統添加一個用戶組(如svn),把想要加入這個組的加一下(至少要把你自己加進吧)。

顯然,像代碼維護,版本控制這種東西,肯定是cs結構的。所以下面先從svn服務器的配置說起。

 

svn服務器的配置和簡單管理

svn服務器端的配置主要是一個資源庫的創建,這個資源庫可以就一個,也可以是一個樹狀結構的(不建議使用森林結構)。我想創建一個test資源庫,並把它放在/usr/local/svn下(資源庫一般都放在/usr/local or /home下):

$cd /usr/local/

$sudo mkdir svn

$sudo mkdir svn/test

$sudo chown -R root:svn svn/

$sudo chmod -R g+rws svn/

準備工作做好了,下面就是創建資源庫了:

$sudo svnadmin create /usr/local/svn/test

好了,這樣一個資源庫就建好了,很簡單,如果你要ls /usr/local/svn/test一下,就會發現出現了一些文件和文件夾(如,conf db等),它們的作用就不說了,去org上看吧。

別急,這時你還要做些工作

$sudo chown -R root:svn svn/

$sudo chmod -R g+rws svn/

如果沒有這個,接下來就可能會出錯,除非你是root。

還有一些好使的工具,如svnlook,svnadmin,svndumpfilter,他們涉及到svn資源庫管理的方方面面,很強大,這裏不介紹了,用的時候就查吧www.subversion.org.cn/svnbook。需要注意的是,這些管理工具的使用,後面跟的是絕對路徑,不要和下面客戶端的所使用路徑混淆。

 

svn客戶端的使用

svn客戶端就是用來訪問操作資源庫資源的,它有多方式,如直接的file訪問,自帶協議的訪問,http,https等待。這裏只介紹兩種,即file直接訪問和自帶協議的訪問。

 

直接訪問

所謂直接訪問就是通過命令行直接對資源庫進行訪問。下面是一些例子:

我在我的家目錄下有個workspace文件夾,下面有個用eclipse創建的簡單工程叫com.sun.yangsq。我想把他維護到資源庫中

$cd workspace

$svn  import com.sun.yangsq  file:///usr/local/svn/test/com.sun.yangsq/trunk -m "test import"

這樣,這個工程就被import到資源庫了。

如果想查看一下資源庫的信息,可以使用

$svn list file:///usr/local/svn/test/ 

如果想查看log信息,可以使用

$svn log file:///usr/local/svn/test/

此外,svn還有好多的命令可以使用,如checkout(co),diff,move,delete,add等等,上網查去吧。

 

自帶協議(svn://)的使用

subversion自帶了一種訪問協議,很好用。但是,如果要使用這種協議,需要啓動svnserve,這也很簡單,如下:

$svnserve -d

這樣就把本地的所有資源發到了網上,默認3690端口。訪問時使用的路徑如:

svn://ip/usr/local/svn/test/..... (這個ip不用帶端口)

如果只想發佈某個資源,可以使用

$svnserve -d -r /usr/local/svn/test

訪問時使用的路徑如:

svn://ip/com.sun.yangsq

如果要checkout,可以

$svn checkout svn://ip/com.sun.yangsq

需要注意的是,客戶端在使用類似svn,http://這種網絡協議訪問資源時(即通過svnserve進程),會通過一定的權限驗證,這種驗證是通過資源的一些配置文件設定的。如在本例中,這些配置文件放在了/usr/local/svn/test/conf/下,包括三個authz,passwd,svnserve.conf。這三個文件的配置就不詳談了。另外的幾種客戶端方式如http也不介紹了,svnbook上去看,都有。

 

如果想通過網絡方式,即svn,http等訪問(推薦使用這種方式,而不是file://方式),必須要把svnserve進程啓動,如果你不小心把機器重新啓動了,一定要手動把它再啓動一邊。

 

svn確實很好使,eclipse也有它的插件(叫sublipse),很方便。但是,如果要想使好,還得好好琢磨琢磨。

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