ubuntu服务器搭建SVN服务端

什么是subversion

Apache Subversion 是一个功能齐全的版本控制系统,最初旨在成为更好的 CVS。 此后,Subversion 已经超越了取代 CVS 的最初目标,但它的基本模型、设计和界面仍然受到该目标的严重影响。 即使在今天,CVS 用户仍然应该对 Subversion 感到非常熟悉。

客户端TortoiseSVN

TortoiseSVN 是一个 Apache™ Subversion (SVN)® 客户端,实现为 Windows shell 扩展。 它直观且易于使用,因为它不需要 Subversion 命令行客户端来运行。 即使在商业环境中,它也可以免费使用。 简直就是(子)版本控制的最酷接口!

服务器端

linux windows(VisualSVN Server)

VisualSVN Server:适用于 Windows 的企业级 Subversion 服务器。 linux:apt源上的svn server

安装前的准备

购买轻量级服务器 添加防火墙规则并放行SVN服务的默认端口3690

安装svn

sudo apt-get install subversion

查看版本

svnserve --version

配置SVN

1创建版本库根目录。

mkdir /var/svn

2创建版本库

svnadmin create /var/svn/svnrepos

3查看自动生成的版本库文件。

cd svnrepos
ls

版本库下的各个目录

db 存放所有的版本控制数据文件。 hooks 放置hook脚本文件。 locks 用来追踪存取文件库的客户端。 format 一个文本文件,文件中只包含一个整数,表示当前文件库配置的版本号。 conf SVN版本库的配置文件(版本库的访问账号、权限等)

4设置SVN版本库的账号和密码

cd conf

编辑passwd文件 移动光标至[users]下,添加用户账号和密码

5设置账号的读写权限

编辑 authz 移动光标至文件末尾,并添加如下代 [/] username=rw

6修改SVN服务配置

编辑svnserve.conf 打开SVN服务配置文件

anon-access = read #匿名用户可读,您也可以设置 anon-access = none,不允许匿名用户访问。设置为 none,可以使日志日期正常显示
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/svnrepos #认证空间名,版本库所在目录

7启动SVN版本库

svnserve -d -r /var/svn/svnrepos/       客户端只能checkout到svn://x.x.103.x/,不能checkout到具体的仓库

svnserve -d -r /var/svn/				客户端可checkout到svn://x.x.103.x/svnrepos

8查看SVN是否启动

ps -ef |grep svn

9关闭SVN

kill -9 pid

常见错误及解决方法;

错误1

不能查看log:请先确保网络畅通,之后改anon-access = none。

错误2:

checkout的仓库不存在,确保svnserve -d -r /var/svn/,而不是svnserve -d -r /var/svn/svnrepos/

错误3:

语法错误 请确保修改的所有配置文件的每行最前面没有空格。

经验分享 程序员 微信小程序 职场和发展