名師推薦 SVN使用說明指導
本節向大家簡單介紹一下SVN使用說明問題,從SVN安裝和管理兩方面來介紹,在這里和大家分享一下,歡迎打擊一起來討論SVN使用說明問題。下面是具體的介紹。
SVN安裝(UNIX下):
1.去官方網站下tag.gz文件,tag.gz里包含了svn(subversion的客戶端),svnserve(subversion自己的小型server,用于獨立于apache使用),svnadmin(repository的管理工具)等
2.svn網絡工作模式有兩種:apache+mod_dav_svn和svnserve。
3.新建一個系統用戶svn:svn(username:group)
4../configure這里不用設置path,是希望在任何時候使用svn(或相關的svnserve等)時,可以直接用到,因為默認的安裝,將可執行文件放在了/usr/local/bin這個默認的PATH里了
5.make
6.makeinstall至此安裝完畢。
SVN管理:
SVN使用說明有關SVN管理問題介紹。這一部分主要是指管理repository,使用svnadmin等。
首先使用svn登錄系統。下面的操作都在svn的主目錄里進行。
1.使用$svnadminhelp,$svnservehelp
可以查看svnadmin和svnserve的幫助信息。
2.創建repository
2.1可以把所有的項目都放在一個repos里,/path/to/repos/ProjectA,/path/to/repos/ProjectB
然后每個項目下再建立各自的trunk,branch,tag。這樣的好處是對于svn使用時帳號的管理及其他一些hooks等可以共享,管理起來只需一次,代價是靈活性可能不夠或者達到某種靈活性需要復雜配置。也可以每個項目建立獨立的repos
/path/to/ProjectArepos
/path/to/ProjectBrepos
當然每個下面也建自己的trunk,branch,tag等。這種設置的好處顯然就是有足夠的靈活性,但是管理工作就多一些,特別是當有幾個項目的設置相同時,修改了一個,就要修改其他的。
2.2使用$svnadmincreate/path/to/repos
默認創建的是FSFS型的repos,還有BerkerleyDB型的,使用--fs-type來指定類型。
$svnadmincreate--fs-typefsfs/path/to/repos
$svnadmincreate--fs-typebdb/path/to/repos
現在假設項目名稱叫MIS,建立repos如下:
$svnadmincreate–fs-typefsfs/home/svn/mis
這樣svnadmin就生成了mis目錄,其下還有許多輔助目錄。
其中/home/svn/mis/conf是這個repos的配置文件存放的地方,/home/svn/mis/hooks是hooks腳本的存放位置。
3.啟動svnserve。使用$svnserve-d-r/home/svn來啟動svnserve。其中-d參數是讓svnserve以deamon模式運行在后臺,-r參數使得客戶端只能訪問到后面指定的目錄以下的內容(這里是/home/svn下的內容)。
4.設置訪問用戶名和口令
再來看一下SVN使用說明中如何設置訪問用戶名和口令。/home/svn/mis/conf里是mis這個repos的配置文件,svnserve.conf是主配置文件,默認的里面有(記得打開[general]前的注釋,并且讓[general]位于行首)
[general]
anon-access=read
auth-access=write
password-db=passwd等
這里將anon-access的訪問權限從read改為none,然后就可以在passwd(password-db指定的,這里位置為/home/svn/mis/conf/passwd)里配置帳號和口令了。
在/home/svn/mis/conf/passwd里[user]下加入下面一行
deller=dellerpwd
這樣就可以用deller:dellerpwd來訪問了。
關于配置文件的更多信息,可以參考
$mansvnserve.conf
5.項目中repos布局
SVN使用說明中有關項目中repos布局問題。根據實踐經驗,一個項目的生存周期也不是單線的,常常有一些分支(分支劇情?)或者穩定版發布或者特定功能的實驗性加入等事件,repos的布局需要進行一定設計來支持這些“事件”。常見的布局是這樣的
Project/trunk
Project/branches
Project/tags
trunk是項目主體存放位置
branches是項目的各種分支的存放
tag往往用于公開發布的版本的存檔,類似與milestone。
建立這樣的布局的方法有許多,svn-book上說可以用svnmkdir等命令逐一建立,然后提交。還有一個比較便捷的方法如下(使用svnimport):
$mkdirtmpdir
$cdtmpdir
$mkdirtrunk
$mkdirbranches
$mkdirtags…
$svnimport.file:///path/to/repos--message'Initialrepositorylayout'
說明:
a.這里仍然是按照前面的一個項目一個repos來做的,如果是多個項目共用一個repos時,就要在tmpdir下先建立這些項目,再在其下建立各自的trunk等
b.注意最后的svnimport一句中的file://這是不可少的,因為這個操作是在repos的服務器端,這樣做Initialrepositoryimport時,可能svnserve沒有啟動,但是由于svn支持本地直接訪問,所以可以完成,而這時,就是通過“file://”來告訴svn目前是在操作本地repos的,比如linux下,/home/svn/mis為一個repos,那么應該寫為“file:///home/svn/mis”
6.repos的刪除,注意不是清空。可能有svnadmin的命令吧,但其實只要刪掉repos的目錄就完全刪除了,比如$rm-rf/home/svn/mis
7.更多的管理功能包括:repos的查看(svnlook),repos的清除、恢復、備份、遷移(svnadmin)等主題。本節介紹SVN使用說明完畢。
【編輯推薦】