1、首先安裝SVN這個軟體
sudo apt-get install subversion
2、在lankou使用者的home目錄下建立一個名為svn的檔案夾(檔案夾的名字随便起)
mkdir /home/lankou/svn
(也可以sudo mkdir /home/svn,此時svn檔案夾的所有者是root)
3、建立資料倉庫(可以根據需要建立多個)
svnadmin create /home/lankou/svn/test-repo
這個test-repo就是存放項目的倉庫了
4、啟動svn網絡服務
svnserve -d -r /home/lankou/svn
其中:
-d 參數讓 svnserve 運作在背景;
-r 參數限定了資料倉庫,在網絡上可以通路的位址。
/home/lankou/svn 指定svn資料倉庫存放的目錄位置,這時該目錄是svn的根目錄
5、設定svn: 方式的通路權限
在每個資料倉庫目錄下都有一堆目錄,其中conf 存放的配置檔案,
hooks下的鈎子程式用于同步倉庫的代碼到工作副本(www),很友善測試,這塊後文會有講述。
Ubuntu下搭建SVN伺服器(Subversion)
authz 用于配置賬号對項目乃至于項目下各部分檔案夾的權限,注意指定無法細到某個檔案
passwd 配置賬号和密碼
svnserve.conf是svn服務的功能權限配置
進入 conf 并打開 svnserve.conf 這個檔案,找到以下幾行,
并把前面的注解符号 ‘#’ 去掉,注意千萬在每行的前面别留任何空格。
anon-access = read
auth-access = write
password-db = passwd
Ubuntu下搭建SVN伺服器(Subversion)
其中 anon-access 和 auth-access 分别為匿名和有權限使用者的權限,預設給匿名使用者隻讀的權限。
但如果想拒絕匿名使用者的通路,隻需把 anon-access的read 改成 none 就能達到目的。
password-db 後的 passwd 則為定義使用者名及密碼的檔案路徑。這個檔案預設跟 snvserve.conf 在
同一個目錄,下面看看怎麼配置 passwd檔案中的内容。
[user]
# harry = harryssecret
# sally = sallyssecret
harry 和 sally 這兩行分别定義了可以對 repo 進行寫入的使用者的使用者名和密碼。我們可以在下面加上
自己的使用者名和密碼,比如:svn = 123456
Ubuntu下搭建SVN伺服器(Subversion)
這樣就給了 賬号svn 往 repo 中寫的權限。注意,這裡的賬号svn并不是系統使用者!
而是你commit和checkout代碼時需要的使用者名和密碼,并且可以随意定義。
存盤退出後,svn 伺服器就算正式可以運作了!
把所有需要管理的項目都放在 /home/lankou/svn這個目錄下,像正常那樣用 svnadmin create 指令建立資料倉庫。
這樣就可以使用svn用戶端通過 “svn co svn://IP位址/資料倉庫目錄” 的方式把伺服器上的資料倉庫拉到本地了。
不過我一般使用TortoiseSVN用戶端。
備注:本文很大程度參考了http://blog.163.com/liu_wen_xin123/blog/static/112248632201412285556662/,隻是結合我的實際操作多做一些解釋。