SVN服务器搭建

来源:互联网 发布:正装皮鞋推荐 知乎 编辑:程序博客网 时间:2024/05/29 18:26

一、什么是SVN?

SVN是Subversion的简称,一个开源的版本控制系统,采用分支管理系统。设计目标是取代CVS。其作用简单说就是:多人协同项目开发,共享资源。

二、为什么用SVN?

首先一点,简单,支持中文,学习成本小。这也是优点啊!而且是很大的优点。另外还有的界面统一,操作方便等优点。与热门的Git比起来,SVN也有其独特的优势。通常来讲,SVN更适合公司中的项目管理,团队成员共同维护公司的中心版本。而Git更适合于开源项目,每个参与者都可以维护自己专属的版本。

三、怎么搭建SVN服务器?

前情提要:本文SVN服务器搭建是搭建在Ubuntu14.04系统上的,其他版本大致类似。

1. 首先是安装Subversion Server

安装命令:

$ sudo apt-get install subversion

验证安装是否成功的命令:

$ svn help //查看帮助$ svn --version //svn版本$ svnsever --version //svn服务器版本

例如:输入svn --version命令后输出如下:

svn,版本 1.8.8 (r1568071)   编译于 Aug 20 2015,12:51:30 在 x86_64-pc-linux-gnu版权所有 (C) 2013 Apache 软件基金会。此软件包含了许多人的贡献,请查看文件 NOTICE 以获得更多信息。Subversion 是开放源代码软件,请参阅 http://subversion.apache.org/ 站点。可使用以下的版本库访问模块:* ra_svn : 使用 svn 网络协议访问版本库的模块。  - 使用 Cyrus SASL 认证  - 处理“svn”方案* ra_local : 访问本地磁盘的版本库模块。  - 处理“file”方案* ra_serf : Module for accessing a repository via WebDAV protocol using serf.  - using serf 1.3.3  - 处理“http”方案  - 处理“https”方案

表示安装成功。

2. 创建SVN版本库

创建命令:

$ mkdir /home/svn$ svnadmin create /home/svn/svnname //svnname可以根据自己项目自定义

3.配置SVN

创建版本库后,配置文件会自动生成在/home/svn/svnname/conf目录下。进入该目录后可以发现有创建好的一些文件。其中我们需要关注的三个分别是:svnserver.conf、passwd和authz。

1)首先打开svnserver.conf文件

命令:

$ sudo vim svnserve.conf

把以下几项前的注释符(#)和空格( )去掉,注意,一定也把空格也去掉。这个很容易被忽略。

anon-access = read auth-access = writepassword-db = passwdauthz-db = authz

这里顺便解释以下这几项各自的意思,
首先看前两项:

anon-access = read auth-access = write

这两项是用来设置匿名用户和普通用户的权限,很明显read表示可读,write表示可写,还有一个选项是none,表示不可读也不可写。当然,匿名用户你可改为none,不过一般不用管它就行。
接下来两项:

password-db = passwdauthz-db = authz

这两项中,前者是用来设置服务器的用户名和密码的配置文件的位置的,后者是用来设置分组和组权限的配置文件的位置的,可以自定义,但大多数情况下使用默认的就可以。

2)接下来打开passwd文件

命令:

$ sudo vim passwd

文件内容如下所示:

### This file is an example password file for svnserve.### Its format is similar to that of svnserve.conf. As shown in the### example below it contains one section labelled [users].### The name and password for each user follow, one account per line.[users]# harry = harryssecret# sally = sallyssecret

在最后仿照示例添加用户名和密码

user1 = 123456user2 = 123456

等号前面是名字,等号后面是密码。

3)最后修改authz

命令:

$ sudo vim authz

打开之后的文本如下

[groups]# harry_and_sally = harry,sally# harry_sally_and_joe = harry,sally,&joe# [/foo/bar]# harry = rw# &joe = r# * =# [repository:/baz/fuz]# @harry_and_sally = rw# * = r

在最后添加

manager_groups = user1,user2 //组名可以自定义,等号后面跟成员名字,多个成员之间用“,”隔开。staff_groups = user3,user4[/]  //可访问的目录@manager_groups = rw   //在此目录下各组的访问权限。@staff_groups = r   //级别低的组当然权限可以设低点。* = r // 默认的其他人的权限。[svnname:/media]  //某一项目下的组权限设置。@manager_groups = rw...

4. 启动SVN

命令:

$ sudo svnserve -d -r /home/svn

查看是否启动成功的命令:

$ sudo netstat -antp | grep svnserve

如果想关闭服务,可以使用命令:

$ sudo pkill svnserve

5. 设置开机自启动

虽然服务器不会轻易重启,但是总会有一些因素会重启的,重启之后要重新开启SVN服务,很麻烦,接下来介绍如何设置开机自启动。

在/etc/init.d目录下建立一个脚本文件svnd.sh命令如下:
$ sudo cd /etc/init.d$ sudo touch svnd.sh$ sudo +x svn.sh$ sudo vim svnd.sh

在打开的svnd.sh文件中写入一下内容

#!/bin/bash#svnserve startupsvnserve -d -r /home/svn

完成之后保存退出。
然后在更新修改权限:

$ sudo update-rc.d svnd.sh defaults

这样就可以开机自启动了。

原创粉丝点击