樹莓派上搭建svn

0. svn軟件下載

sudo apt-get install subversion

1. 創建代碼倉庫

由於樹莓派本身運行在SD卡中,一開始我將倉庫部署在家目錄中,後來發現svn爲了完整的保存代碼開發的每一個版本,其容量是越用越大的,無論是刪除文件還是修改文件,都是增量的,所以後來買了個移動硬盤掛在了樹莓派上用作存儲用途,目錄爲 /media/pi/Tron_Service

pi@raspberry:~> cd /media/pi/Tron_Service
pi@raspberry:/media/pi/Tron_Service> mkdir svnrepo
pi@raspberry:/media/pi/Tron_Service/svnrepo> svnadmin create ./project

2. 配置代碼倉庫

svnrepo用作svn的根目錄存儲路徑,svnadmin create ./project用來建立project文件夾,並建立版本控制。
進入project文件夾裏面有一些用於權限控制和版本控制的文件夾,conf是配置文件夾,db裏面放的是版本控制的數據。

pi@raspberry:/media/pi/Tron_Service/svnrepo/project/conf> vim svnserve.conf
[general]
#匿名訪問的權限,可以是read,write,none,默認爲read
anon-access = none
#認證用戶的權限,可以是read,write,none,默認爲write
auth-access = write
#密碼數據庫的路徑,去掉前面的#
password-db = passwd
#權限數據庫的路徑
authz-db = authz

裏面是一串這種配置,我的樹莓派只是給自己用,匿名訪問我去掉了。
password-db後面跟的是密碼數據庫的路徑,默認是同目錄下的passwd文件。
authz-db同理。
2. 配置用戶名和密碼

pi@raspberry:/media/pi/Tron_Service/svnrepo/project/conf> vim passwd
[users]
tron = *********

在這個文件中配置svn的登陸用戶名和密碼,都是明文的,*號那裏換上自己的密碼,一行一個用戶。
3. 配置權限

pi@raspberry:/media/pi/Tron_Service/svnrepo/project/conf> vim authz
[groups]
[/]
tron = rw

[/]用來設置根目錄權限,如果設置其他目錄的權限,加上子目錄就可以了,這裏的根目錄應該指的是project這個目錄,而非svnrepo目錄(還沒試過,只是猜測)。
4. 啓動svn服務

pi@raspberry:/media/pi/Tron_Service/svnrepo/project/conf> killall svnserve
pi@raspberry:/media/pi/Tron_Service/svnrepo/project/conf> svnserve -d -r /media/pi/Tron_Service/svnrepo

-d參數用於指定後臺運行,
-r參數用於指定根目錄,也就是客戶端訪問 svn://ip:port/ 這個目錄的真實地址。

由於我們的根目錄不在版本控制內,所以輸入 svn://ip:port/ 會出現訪問不了的情況,但可以通過輸入 svn://ip:port/project 來訪問project版本控制文件夾。

如果要使得客戶端輸入 svn://ip:port/ 即訪問project文件夾,則設置根目錄時應該將project設置成根目錄:

pi@raspberry:/media/pi/Tron_Service/svnrepo/project/conf> svnserve -d -r /media/pi/Tron_Service/svnrepo/project

5. 客戶端軟件

推薦使用TortoiseSVN吧,簡單實用。

6. 後記

樹莓派的空間小,在上面部署svn是種極大的浪費,而且svn一旦部署是沒有辦法將版本控制撤銷或是隻保留當前版本的,除非將項目導出後刪除project文件夾,然後重新部署,才能得到一個純淨的工程,所以強烈建議買個移動硬盤掛載,用於存儲,後續如果要部署其他文件共享類的服務,也應如此。

移動硬盤最好再買個帶供電的數據線,一般的移動硬盤太吃電流了,樹莓派可能帶不動,就算勉強帶動(比如我的希捷移動硬盤),樹莓派也會動不動出現黃色閃電標識,顯示供電不穩,導致樹莓派容易死機等問題。

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