Centos6.3搭建SVN服务器

2024-03-11 10:58
文章标签 服务器 搭建 svn centos6.3

本文主要是介绍Centos6.3搭建SVN服务器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、简介

       SVN作为新一代代码版本管理工具,有很多优点,管理方便,逻辑明确,安全性高,代码一致性高。SVN数据存储有两种方式,BDB(事务安全表类型)和FSFS(一种不需要数据库的存储系统),为了避免在服务器连接中断时锁住数据,FSFS是一种更安全也是更多人使用的方式。SVN的运行方式也有两种,一种是独立服务器,另一种是借助apache服务,即svn://或http://。

       目前绝大多数开源软件都使用svn作为代码版本管理软件。Subversion支持linux和windows,但较多安装在linux下。

二、详解

1、svn的基本工作原理

        svn的基本工作原理: 在一台服务器上建立一个源代码库,库里可以存放许多不同项目的源程序。有源代码库管理员统一管理这些源程序。每个用户在使用源代码库之前,首先要把源代码库里的项目文件下载到本地,然后开发人员可以在本地修改,修改完成后用svn命令进行提交,由源代码库统一管理修改。
       版本控制解决了:(1)代码管理混乱(2)解决代码冲突困难(3)在代码整合期间引发bug(4)无法对代码的拥有者进行权限控制(5)项目不同版本的发布困难。

          SVN工作原理示意图:

          subversion目录说明:

(1)dav目录:是提供apache与mod_dav_svn使用的目录,让他们存储内部数据
(2)db目录:就是所有版本控制的数据存放文件
(3)hooks目录:放置hook脚本文件的目录
(4)locks目录:用来放置subversion见艰苦锁定数据的目录,用来追踪存取文件库的客户端
(5)format文件:是一个文本文件,里面只放了一个整数。表示当前文件库配置的版本号
(6)conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)

2、svn的安装

#yum install subversion
判断是否安装成功
#svnserve --version

3、svn的配置

(1)建立svn版本库

#mkdir -p/svn/project/repos     //创建版本库所在文件夹

#svnadmin create --fs-typefsfs/svn/project/repos  //创建版本库,如果需要使用bdb方式存储,则将fsfs改成bdb即可

执行上面的命令后,自动在repos下建立多个文件, 分别是conf、 db、format、hooks、locks、README.txt

        其中文件夹conf下有authz, passwd, svnserve.conf配置文件,authz 是权限控制,   passwd是设置用户和密码的,    svnserve是设置svn相关的操作。

(2)配置passwd

#vim /svn/project/repos/conf/passwd

[users]
# harry = harryssecret
# sally = sallyssecret
hello=123
用户名=密码,建立了hello用户, 密码 123

(3)配置权限authz

#vim /svn/project/repos/conf/authz

[/]
hello=rw
hello用户对所有的目录有读写权限,可以限定。

(4)配置svnserve.conf

#vim /svn/project/repos/conf/svnserve.conf

[general]
anon-access = none           # 使非授权用户无法访问
auth-access = write          # 使授权用户有写权限
password-db = <span style="font-size:14px;">/svn/project/repos/conf/passwd</span>
authz-db = <span style="font-size:14px;"><span style="font-size:14px;">/svn/project/repos/conf/<span style="font-size:14px;">authz</span></span></span>   # 访问控制文件
必须在general目录下,采用默认配置. 以上语句都必须顶格写, 左侧不能留空格, 否则会出错.

总:通过以上配置,svn就可以使用。

4、svn的启动使用

(1)启动svn服务:

#svnserve --/svn

如果已经有svn在运行,可以换一个端口运行,这样同一台服务器可以运行多个svnserver。
#svnserve --/svn--listen-port 3391
(2)初始化版本库目录

#svnimport /var/www/html file:///svn/project/repos --message "one"    //将 /var/www/html/下的文件

也可采用创建临时目录
# mkdir project project/server project/client project/test (建立临时目录)
# svn import project/ file:///svn/project -m "initialization"
# rm -rf project (删除临时建立的目录)

导入版本库

#svn list --verbose file: ///svn/project/repos             //查看导入的文件

#svn info  file:///svn/project/repos              //查看svn信息


(3)重启svn
注意:如果修改了svn配置,需要重启svn服务,步骤如下:
# ps -aux|grep svnserve
# kill -9 ID号
# svnserve -d -r /svn

5、客户端连接

(1)连接svn服务器

   在局域网主机安装TortoiseSVN 连接地址为: svn://192.168.40.125/project/repos (如果指定端口需要添加端口号:端口号)。

#svn co svn://192.168.40.125/project/repos

输入上面设置的用户名和密码:


(2)上传提交文件

#cd repos

#vim main.c

#svn add main.c

#svn commit main.c -m "upload file"

(3)客户端查看信息

6、配置SVN服务器的HTTP支持

svn作为独立服务器或借助apache服务的两种方式,可同时使用。

(1)转换SVN服务器的密码

   因为svn密码为明文,http不支持明文.需要生成一个webpasswd文件,首次创建new的webpass文件用-c。

#cd /svn/project/repos/conf

#htpasswd -c webpasswd hello

目录下会多一个webpasswd文件

注意如果需要,多次加入用户,则用htpasswd -m
#htpasswd -m webpasswd hello2

(2)配置apache

#vim /etc/httpd/conf.d/subversion.conf

在最后添加如下信息:

<Location /svn>
DAV svn
SVNPath /svn/project/repos/
AuthType Basic
AuthName "svn for project"
AuthUserFile /svn/project/repos/conf/webpasswd
AuthzSVNAccessFile /svn/project/repos/conf/authz
Satisfy all
Require valid-user
</Location>
(3)重启httpd

#/etc/init.d/httpd restart
出现Unknown DAV provider: svn的错误,是因为系统没有安装mod_dav_svn它是Subversion与Apache之间的接口(通过它,Apache就可以访问版本库,可以让客户端也使用HTTP的扩展协议 WebDAV/DeltaV进行访问)

#yum install mod_dav_svn    //使subversion与dav模块通信的功能

#yuminstallmod_authz_svn  //实现权限控制功能

再重启即可。

(4)使用浏览器访问http://192.168.40.125/svn/

若单独设置端口号,网址为http://IP地址:端口/svn。

出现<m:human-readable errcode="13">的错误,请检查cat /etc/sysconfig/selinux设置SELINUX=disabled,需重启系统,

或使用setenforce 0临时禁止。


总:现在就可以通过svn co svn://192.168.40.125/project/repos和http://192.168.40.125/svn/两种方式访问svn服务器了。

四、总结

(1)svn设置权限的时候authz和webpasswd不能弄反,否则用户无法登录。

(2)暂时没有涉及到多用户和用户权限分别设置的内容,以后使用时可自行设置。

(3)svn还有与邮箱同步、与数据库同步等内容。

(4)本人思路有限,若有更好的设计建议,也可发邮件沟通,在此先感谢!邮箱地址aoyang888@qq.com。

这篇关于Centos6.3搭建SVN服务器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/797612

相关文章

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

Windows Server 2025 搭建NPS-Radius服务器的步骤

《WindowsServer2025搭建NPS-Radius服务器的步骤》本文主要介绍了通过微软的NPS角色实现一个Radius服务器,身份验证和证书使用微软ADCS、ADDS,具有一定的参考价... 目录简介示意图什么是 802.1X?核心作用802.1X的组成角色工作流程简述802.1X常见应用802.