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文件夾,然後重新部署,才能得到一個純淨的工程,所以強烈建議買個移動硬盤掛載,用於存儲,後續如果要部署其他文件共享類的服務,也應如此。
移動硬盤最好再買個帶供電的數據線,一般的移動硬盤太吃電流了,樹莓派可能帶不動,就算勉強帶動(比如我的希捷移動硬盤),樹莓派也會動不動出現黃色閃電標識,顯示供電不穩,導致樹莓派容易死機等問題。