树莓派上搭建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文件夹,然后重新部署,才能得到一个纯净的工程,所以强烈建议买个移动硬盘挂载,用于存储,后续如果要部署其他文件共享类的服务,也应如此。

移动硬盘最好再买个带供电的数据线,一般的移动硬盘太吃电流了,树莓派可能带不动,就算勉强带动(比如我的希捷移动硬盘),树莓派也会动不动出现黄色闪电标识,显示供电不稳,导致树莓派容易死机等问题。

你可能感兴趣的:(raspberry)