1
用惯了svn,但你知道怎么在linux上搭建svn服务器吗,本文将介绍如何在linux上创建一个svn服务器

安装

zypper in subversion

我的服务器是openSUSE,所以安装命令是zypper,如果是centos,那么是yum,不同的linux发行版有不同的安装命令,请自行查阅。
完了之后,看看是否安装成功:

rpm -qi subversion

clipboard.png

事情进展得很顺利,接下来就要搞事情了,首先,我们得创建一个仓库,用于存放我们的项目

创建svn仓库

比如我要为72mask这个项目创建一个仓库:

clipboard.png

完了之后,我们发现仓库里面已经有了一些东西了,如下:

clipboard.png

这和windows上通过本地创建create repository here作用是一样的

配置

有了仓库,但不能任何人都能访问吧,我们还得给其设定一些条件,用于限定访问权限等。进入到conf文件夹,如下:

clipboard.png

里面有三个文件很重要,作用如下:

  • passwd:负责账号和密码的用户名单管理
  • authz:负责账号权限的管理,控制账号是否读写权限
  • svnserve.conf:svn服务器配置文件

首先,用vi进入passwd,加入一个用户larry,给其设定密码

clipboard.png

再进入authz,将larry的权限设置为rw

clipboard.png

[/]中用于限定用户的权限目录范围,这里配置/表示72mask这个仓库下的所有资源larry这个用户都有读写权限。
假设除72mask仓库外,服务器上还有一个仓库hrAdmin,该仓库中有一个用户moddx,但想限制moddx只能访问hrAdmin仓库下的web目录,无法访问app等其他目录,可以这样设置:

clipboard.png

或这样:

clipboard.png

这样,用户moddx就只有hrAdmin仓库中web目录下的权限了,其他目录的权限就没有了。
最后,修改svnserve.conf文件

clipboard.png

clipboard.png

这个文件需要注意以上五项,其中各项功能如下:

  • anon-access: 控制非鉴权用户访问仓库的权限
  • auth-access: 控制授权用户访问仓库的权限
  • password-db: 指定用户名口令文件名
  • authz-db: 指定权限配置文件名
  • realm: 指定版本库的认证域,即在登录时提示的认证域名称(可以随便填,最好起一个有意义的名字,比如72mask等,在登录密码和管理密码中方便查找)

开启服务

万事俱备只欠东风,用svnserve命令将服务开启,如下

clipboard.png

然后,在本地用svn连接一下吧,在svn的url中输入svn://yourip/72mask

图片描述

弹框会让你输入用户名和密码,完成后进入到仓库,可以看见仓库是空的,我们把这个空仓库checkout下来,就可以在其中提交了。

项目结构(推荐)

最后,存放代码的目录下,通过create folder创建trunk,tags,branches的三个目录,开发代码放在trunk上,预览和线上版本可以放在tags目录下,bug修复等可以放在branches中,如下:

clipboard.png

参考

svnserver配置文件详解


moddx
1.3k 声望70 粉丝

勤能补拙是良训