介绍subversion自带的服务器(svnserve),实现从远程计算机访问你的项目检出和提交代码。
主要介绍:
subversion服务器的基本配置;
运行环境:
系统:ubuntu 10.04 lts;
hostname:192.168.1.118;
启动subversion服务器(svnserve)
首先,需要启动subversion服务器。执行下面命令的时候,请输入project1的绝对路径。
复制代码 代码示例:
sudo svnserve -d -r /home/demo/repository
这样就可以通过默认端口3690,在远程访问到project1的版本库。
iptables配置
如果有防火墙的,请允许访问3690端口,可以通过修改下面文件实现:
复制代码 代码示例:
sudo nano /etc/iptables.test.rules
添加防火规则:
复制代码 代码示例:
# Allows svnserve connections from anywhere
-A INPUT -p tcp --dport 3690 -j ACCEPT
赋予root的权限:
复制代码 代码示例:
sudo -i
激活防火规则:
复制代码 代码示例:
iptables-restore< /etc/iptables.test.rules
检测规则是否配上去了:
复制代码 代码示例:
iptables -L
...
ACCEPT tcp -- anywhere anywhere tcp dpt:svn
看到显示正确,保存并退出root的权限:
复制代码 代码示例:
iptables-save > /etc/iptables.up.rules
...
exit
检出(checkout)版本库
让检出project1(这个IP地址就是访问project1代码库的):
复制代码 代码示例:
svn co svn://192.168.1.118/project1
配置svnserve的权限
虽然能够通过远程访问到svnserve,但是如果提交修改的内容就会出现’svn: Authorization failed’ 的报错。需要为project1设置读写权限,但是有不想让每一个能够修改提交或者检出。
需要编辑svnserve的配置文件:
复制代码 代码示例:
sudo nano /home/demo/repository/conf/svnserve.conf
首先,发现很多都是注释掉的,编辑:
复制代码 代码示例:
# svnserve configuration
[general]
password-db = /home/demo/repository/conf/passwd
anon-access = read
auth-access = write
realm = Project1
这个设置是不想让匿名用户访问你的project1:
复制代码 代码示例:
anon-access = none
再次打开passwd 文件:
复制代码 代码示例:
sudo nano /home/demo/repository/conf/passwd
输入用户名和密码:
复制代码 代码示例:
[users]
project1admin = mypassword
远程提交(remote commit)
在本地的工作目录那里做修改,然后提交:
复制代码 代码示例:
mkdir goodbye
svn add goodbye
...
svn commit -m "Added goodbye folder" --username project1admin
输入刚才设置的密码,输出结果:
复制代码 代码示例:
svn commit -m "Added goodbye folder" --username project1admin
Authentication realm: <svn://192.168.1.118:3690> Project1
Password for 'project1admin':
Adding trunk/goodbye
Committed revision 4.
svnserve的选项
查看更多svnserve的选项,请输入:
复制代码 代码示例:
sudo svnserve --help
修改svnserve访问的端口:
复制代码 代码示例:
sudo svnserve -d -r --listen-port 2122 /home/demo/repository
或者只影响特定的IP:
复制代码 代码示例:
sudo svnserve -d -r --listen-host 192.168.1.118 /home/demo/repository
这个配置当你有一个固定IP地址的时候可以这样作。
开机重启自动启动svnserve
在机器启动的时候自动开启svnserve,添加下面crontab:
复制代码 代码示例:
crontab -e
@reboot svnserve -d -r /home/demo/repository
svn的安全性