您的位置:首页 > 运维架构 > Linux

CentOS下的SVN服务器搭建过程以及分析

2015-12-30 16:16 691 查看

原文地址:http://www.centoscn.com/CentosServer/ftp/2014/0306/2505.html

1.yum安装svn

[plain]view plaincopyprint?




yum install -y subversion    

等待一会儿,显示下边的内容。

[plain]view plaincopyprint?




Dependency Installed:  

 gnutls.i686 0:2.8.5-10.el6_4.2               libproxy.i686 0:0.3.0-4.el6_3                    

 libproxy-bin.i686 0:0.3.0-4.el6_3            libproxy-python.i686 0:0.3.0-4.el6_3            

 neon.i686 0:0.29.3-3.el6_4                   pakchois.i686 0:0.4-3.2.el6                      

 perl-URI.noarch 0:1.40-2.el6                  

Complete!  

2.验证是否安装完成

[plain]view plaincopyprint?




svnserve --version  

这是我的显示内容。

[plain]view plaincopyprint?




svnserve,版本 1.6.11 (r934486)  

  编译于 Apr 11 2013,17:28:04  

版权所有 (C) 2000-2009 CollabNet。  

Subversion 是开放源代码软件,请参阅 http://subversion.tigris.org/ 站点。  

此产品包含由 CollabNet(http://www.Collab.Net/) 开发的软件。  

下列版本库后端(FS) 模块可用:  

* fs_base : 模块只能操作BDB版本库。  

* fs_fs : 模块与文本文件(FSFS)版本库一起工作。  

Cyrus SASL 认证可用。  

3.创建svn版本库

[plain]view plaincopyprint?




mkdir /var/svn #我这里把版本库放在了var目录下的svn文件夹,方便管理  

svnadmin create /var/svn/repo0 #我这里将svn作为所有版本库的目录,并创建了一个名为repo0的版本库

4.配置当前的版本库

创建版本库后,在当前版本库目录中会生成下面的文件,其中我们关心的是配置文件。

[plain]view plaincopyprint?




[root@localhost svn]# ls  

repo0  

[root@localhost svn]# cd repo0  

[root@localhost repo0]# ls  

conf  db  format  hooks  locks  README.txt  

[root@localhost repo0]# pwd  

/var/svn/repo0  

[root@localhost repo0]# cd conf  

[root@localhost conf]# ls -a  

.  ..  authz  passwd  svnserve.conf  

说明:

           (1)svnserve.conf:  svn服务综合配置文件。

           (2)passwd: 用户名口令文件。

           (3)authz: 权限配置文件。

4.1 修改passwd文件

[plain]view plaincopyprint?




### 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  

repouser0 = user0passwd  

rock=rockpasswd  

其中对应的是 用户名=密码 ,其中等号两边的空格不是必须的。

4.2修改authz文件

[plain]view plaincopyprint?




[aliases]  

# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average  

#这里实现了别名的定义  

[groups]  

# harry_and_sally = harry,sally  

# harry_sally_and_joe = harry,sally,&joe  

team0=erpouser0 #将上面创建的分成两个组  

team1=rock  

# [/foo/bar]  

# harry = rw  

# &joe = r #上面的别名定义在这里实现 &在这里理解为指针就很容易了  

# * =  

# [repository:/baz/fuz]  

# @harry_and_sally = rw  

# * = r  

[repo0:/]  

@team0=r  

@team1=rw  

# 第一个小组只有读取的权限,第二个小组有读写的权限  

# 单个版本库的权限配置在这个文件中实现  

4.3 修改svnserve.conf

[plain]view plaincopyprint?




vim svnserve.conf  

[plain]view plaincopyprint?




[general]  

### These options control access to the repository for unauthenticated  

### and authenticated users.  Valid values are "write", "read",  

### and "none".  The sample settings below are the defaults.  

anon-access = none #没有登录的用户不能访问  

auth-access = write #登录的用户可以写入  

### The password-db option controls the location of the password  

### database file.  Unless you specify a path starting with a /,  

### the file's location is relative to the directory containing  

### this configuration file.  

### If SASL is enabled (see below), this file will NOT be used.  

### Uncomment the line below to use the default password file.  

password-db = passwd #密码文件为当前目录下的passwd  

### The authz-db option controls the location of the authorization  

### rules for path-based access control.  Unless you specify a path  

### starting with a /, the file's location is relative to the the  

### directory containing this file.  If you don't specify an  

### authz-db, no path-based access control is done.  

### Uncomment the line below to use the default authorization file.  

authz-db = authz #验证文件为当前目录下的authz  

5 停止和启动svn

5.1启动svn

[plain]view plaincopyprint?




svnserve -d -r /var/svn/  

5.2关闭svn

[plain]view plaincopyprint?




ps -aux |grep svn  

kill -9 进程id  

6 导入工程

[plain]view plaincopyprint?




$ mkdir MyProject    

$ mkdir MyProject/trunk    

$ mkdir MyProject/branches    

$ mkdir MyProject/tags    

svn import MyProject svn://192.168.1.109/repo0/MyProject -m "first import project"  

7导出工程

[plain]view plaincopyprint?




svn co svn://192.168.1.109/repo0/MyProject  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  SVN centos