ubuntu服务器搭建SVN服务端

  • A+
所属分类:计算机

什么是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 update
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

svn://xx./svnrepos

8查看SVN是否启动

ps -ef |grep svn

9关闭SVN

 kill -9 pid

常见错误及解决方法;

错误1

不能查看log:请先确保网络畅通,之后改anon-access = none。
ubuntu服务器搭建SVN服务端

错误2:

checkout的仓库不存在,确保svnserve -d -r /var/svn/,而不是svnserve -d -r /var/svn/svnrepos/
ubuntu服务器搭建SVN服务端

错误3:

语法错误 请确保修改的所有配置文件的每行最前面没有空格。
ubuntu服务器搭建SVN服务端

错误4

Can't open file '/var/svn/esvurepos/db/txn-current-lock': Permission denied

加控制权限
chmod -R o+rw /home/svn

这里的路径是你项目库的根目录

错误5

ubuntu服务器搭建SVN服务端

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: