1 Linux下創建svn倉庫
1.1 啓動SVN服務
svnserve -d -r /SVNRootDirectry
其中SVNRootDirectry是你的SVN 根目錄,例如192.85.1.2上的是:/SVN。-d 表示以後太服務方式執行,-r就表示root
1.2 創建倉儲
1.2.1 在SVN根目錄下建立版本倉庫
svnadmin create study
命令 :svnadmin create msm
其中msm是版本倉庫的名字,倉庫建立好了以後會有出現一個倉庫名字的文件夾,文件夾下面有conf等幾個目錄和文件,
如下圖。接下來就需要設置版本倉庫的權限了。這裏說明一下:版本庫之間是獨立的。
文件目錄如下:
其中conf文件夾下的目錄爲:
1.2.2 增加用戶
修改conf文件夾下的authz文件:
指令簡介:此配置文件採用“基於路徑的授權”策略,中括號裏指定路徑,以下列出對各用戶的授權。
包括只讀r,讀寫rw。沒有列出的用戶,則不允許訪問。還可以對用戶分組,具體請參考svn手冊,以下是簡單例子:
<!--[if !supportLineBreakNewLine]--> 用戶組格式:
[groups]
<用戶組名> = <用戶1>,<用戶2>
其中,1個用戶組可以包含1個或多個用戶,用戶間以逗號分隔。
版本庫目錄格式:
[<版本庫>:/項目/目錄]
@<用戶組名> = <權限>
<用戶名> = <權限>
其中,方框號內部分可以有多種寫法:
/,表示根目錄(倉儲目錄)及以下。根目錄是svnserve啓動時指定的,我們指定/opt/svndata。這樣,/就是表示對全部版本庫設置權限。
權限主體可以是用戶組、用戶或*,用戶組在前面加@,*表示全部用戶。權限可以是w、r、wr和空,空表示沒有任何權限。
在[groups]下增加你的用戶組(記得等號前後留空格)
在[/]下面增加對用戶或者用戶組的權限設置;最後如下圖:
1.2.3 修改用戶密碼
添加了用戶以後就需要給用戶設置密碼了,打開conf/passwd文件:
輸入以下內容:
[users]
<用戶1> = <密碼1> admin = admin
<用戶2> = <密碼2> username2 = password2
可以添加多個,此爲用戶名密碼對。
取消[users]的註釋,並在下面加上你的用戶的密碼設置(記得等號左右的空格),如下圖:
1.2.4 對啓動SVN對用戶權限、密碼的控制
需要啓動SVN對用戶權限、密碼的控制,不然的話你就只能讀而不能寫了。
修改svnserve.conf文件,
各參數功能在配置文件的註釋中有說明, 此處配置如下:
[general]
anon-access = none # 使非授權用戶無法訪問
auth-access = write # 使授權用戶有寫權限
password-db = /opt/svndata/repos/conf/passwd # 指明密碼文件路徑
authz-db = /opt/svndata/repos/conf/authz # 訪問控制文件
realm = /opt/svndata/repos # 認證命名空間,subversion會在認證提示裏顯示,
並且作爲憑證緩存的關鍵字。
取消下面幾條前面的#號註釋就OK了:
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
重新啓動svn服務 :
啓動svn服務命令 svnserve -d -r /svn
如果報:svnserve: Can't bind server socket: Address already in use
解決辦法:
使用 “ ps -e|grep svnserve ” 找到服務對應進程編號 ,使用kill 命令,之後再使用啓動命令 ,如圖
使用地址訪問,如果出現“svnserve.conf:12: Option expected”,導致原因是:subversion讀取配置文件
svnserve.conf時,無法識別有前置空格的配置文件
修改改爲
1.2.5 給SVN 倉儲空間中的 DB目錄分配寫權限
cd /svn
sudo chmod 777 -R 倉儲名稱
不然不能提交文件
2 SVN標準目錄結構
2.1 目錄結構概述
2.1.1 目錄 trunk
trunk是主分支,是日常開發進行的地方,一般包含 :
0-Src 源碼
1-DevelopDoc 開發文檔
2-ProductDoc 產品文檔
3-ThirdPartyTools 第三方工具(插件)
4-Testing 測試
5-DeployDoc 部署文檔
2.1.2 目錄branches
ranches是分支。一些階段性的release版本,這些版本是可以繼續進行開發和維護的,則放在branches目錄中。
又比如爲不同用戶客製化的版本,也可以放在分支中進行開發。
2.1.3 目錄 tags
tags目錄一般是隻讀的,這裏存儲階段性的發佈版本,只是作爲一個里程碑的版本進行存檔。