svnserve入门 svnserve安装与配置

发布时间:2019-11-08编辑:脚本学堂
本文介绍下svnserve的安装与配置方法,作为svnserve的入门教程,希望对大家有所帮助。

介绍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的安全性