SVN版本控制服务器搭建

Svn(subversion)是一个开源代码管理的控制系统,用来管理和存储开发的源代码,基于C/S模式。可以单独提供服务,也可以结合http服务来实现。

运行方式  运行端口  访问方法
svn单独服务 3690 svn://
http结合服务 80 http://

下面开始搭建svn服务

1.环境准备

(1)安装svn 和 apache 服务,其中mod_dav_svn是用来衔接svn和apache的。

yum –y install subversion httpd mod_dav_svn

(2)查看是否注册端口

cat /etc/services | grep svn –color

(3)创建存放版本库

mkdir /web

(4)创建web项目实例

svnadmin create /web/www.demonxian3.cn
svnadmin create /web/www.demonxian2.cn

(5)查看svn版本相关文件

可以在通过svnadmin创建的目录看到会生成一些文件。

目录 作用
dav 提供apache和mod_dav_svn使用的目录,这个要自己手动创建
db 存放版本控制的数据库文件
hooks 存放hook脚本文件
locks 存放svn监控锁定数据的目录,用来追踪存取文件库的客户端
conf 存放配置文件(用户访问账号和权限等)
format 文件 存放一个整数表示当前的文件库配置的版本

下面是conf目录的文件内容

文件 作用 
authz 认证权限的配置
passwd 用户密码的配置
svnserve 服务器相关配置

2.修改配置

(1)修改svnserve服务配置

vim /web/www.demonxian3.cn/conf/svnserve.conf

下面几个字段默认都是注释的,需要把注释去掉

anao-access = read                         #表示匿名用户可读 值有:read write none

auth-access = write                         #表示认证用户可写,值同上

password-db = passwd                    #表示指定密码库的配置文件

authz-db = authz                            #表示指定认证权限配置文件

realm = www.demonxian3.cn           #登录提示信息

注意上面字段必须顶格,即前面不能留空格,否则会报错

(2)修改passwd用户密码配置

vim /web/www.demonxian3.cn/conf/passwd

添加三个用户,密码均为123456

(3) 修改authz权限配置

vim /web/www.demonxian3.cn/conf/authz

在groups域 里定义一个CG组,组员有demon1,dmeon2

在 根域(自己写上的)里定义权限,CG组只有读权限,demon3可写可读,其他人无权限

3.启动服务

svnserve -d -r /web/    #-d 以守护运行 -r 以root用户运行 web 就是自己创建的软件版本库

查看端口

svn常用的命令

import 上传代码
checkout       下载代码
update          更新代码
status            查看状态
diff                差异检测
log                历史记录
list                显示目录
cat                查看内容
resolve         解决冲突
switch           切换版本库
revert           恢复
add 增加  
delete 删除
copy 复制
move  移动

更多请参见http://blog.csdn.net/ithomer/article/details/6187464

4.svn服务简单的使用测试

mkdir local   #创建本地开发目录

touch local/.html local/.html      #创建模拟web页面

svn import /root/local/ file:///web/www.demonxian3.cn/ -m "first edit"  #导入

svn checkout svn://192.168.1.112/www.demonxian3.cn/ download     #取出代码

1.取代码时会弹出身份验证,默认是root用户,回车即可输入用户名和密码。

2.需要注意登录的用户需要有读取权限否则不能下载

3.取出代码后会在当前生成download目录,在里面进行相关的代码开发即可

下面模拟代码开发后的更新。

touch download/.html

echo “hello world” > .html

svn add .html                                #在svn里同步添加新文件

svn commit –m “second edit”        #提交代码,这里也需要用户验证。

如果输入的账号和密码没有写入的权限,会写入失败

下面来搭建http + svn 服务

1.查看apache是否引入svn模块

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

如果看到两个字段则表示引入成功

LoadModule dav_svn_module     modules/mod_dav_svn.so

LoadModule authz_svn_module     modules/mod_authz_svn.so

两个模块的物理路径

/etc/httpd/modules/mod_authz_svn.so

/etc/httpd/modules/mod_dav_svn.so

2.编辑subversion模块配置文件

vim /etc/httpd/conf.d/subversion.conf  #在参照末尾location标签添加下面的内容

<Location /web>

DAV svn

SVNParentPath /web                         #指定svn根目录

AuthType Basic                                 #Basic认证方式

AuthName ”www.demonx.cn”             #认证显示提示信息

AuthUserFile /web/svn/passwd           #用户密码文件

AuthzSVNAccessFile /web/svn/authz   #用户配置文件

Require vaild-user                             #要求用户认证不许匿名

</Location>

3.创建apache访问svn相关配置文件

mkdir /web/svn

创建用户密码文件并配置密码

htpasswd –c /web/svn/passwd dem1    #参数-c表示创建文件

htpasswd /web/svn/passwd dem2

创建权限配置文件

vim /web/svn/authz                        #添加下面的内容

[groups]

all = dem1,dem2

[/]

dem1 = rw

[www.demonxian3.cn:/]

@all = rw

[www.demonxian2.cn:/]

dem1 = rw

dem2 = r

service httpd restart

然后使用浏览器访问,会发现需要用户认证

下面使用小乌龟工具来访问svn

使用小乌龟进行代码的上传和下载,虽然这个是开发人员做的事,但作为运维人员多少也应该了解一点。下面是小乌龟的下载的地址

http://tortoisesvn.net/downloads.html

下载好后会在右键生成svn相关插件

配置相关选项,使用svn服务访问配置如下

注意URL上不能把根目录/web也填写上去了。

输入用户名和密码,不要保存

如果使用httpd服务访问svn版本管理器,配置如下

成功把代码down下来了,提交一样点击右键commit即可,如果有时候上交失败如下

很有可能你的目录权限不够,修改一下即可 如我的:  chmod -R 777 /web

转载请指明出处:http://www.cnblogs.com/demonxian3/p/6910206.html

SVN版本控制系统搭建(+结合http服务)的更多相关文章

  1. SVN版本控制系统搭建(结合http服务)

    SVN版本控制服务器搭建 Svn(subversion)是一个开源代码管理的控制系统,用来管理和存储开发的源代码,基于C/S模式.可以单独提供服务,也可以结合http服务来实现. 运行方式  运行端口 ...

  2. (转)TortoiseSVN与VisualSVN Server搭建SVN版本控制系统

    本片主要介绍如何搭建SVN版本控制系统,主要使用工具: 1 客户端:TortoiseSVN (小乌龟) 2 服务端:VisualSVN Server 搭建出图形化管理,以及右键菜单版本控制管理的SVN ...

  3. TortoiseSVN与VisualSVN Server搭建SVN版本控制系统

    本片主要介绍如何搭建SVN版本控制系统,主要使用工具: 1 客户端:TortoiseSVN (小乌龟) 2 服务端:VisualSVN Server 搭建出图形化管理,以及右键菜单版本控制管理的SVN ...

  4. TortoiseSVN与VisualSVN Server搭建SVN版本控制系统【转】

    转自:http://www.cnblogs.com/xing901022/p/4399382.html 本片主要介绍如何搭建SVN版本控制系统,主要使用工具: 1 客户端:TortoiseSVN (小 ...

  5. SVN版本控制系统

    SVN 版本控制系统 1.SVN作用 防止代码丢失 : 因为没有哪个项目能够一次性开发完成 代码版本回退 : 你可以在开发过程中找到以前上传到服务器上面的所有版本 多人代码整合 : 公司中多个人开发同 ...

  6. SVN版本控制系统最佳实践

    第1章SVN介绍及应用场景 1.1什么是SVN(Subversion) Svn(subversion)是近年来崛起非常优秀的版本管理工具,与CVS管理工具一样,SVN是一个跨平台的开源的版本控制系统. ...

  7. 【山外笔记-工具框架】SVN版本控制系统

    [山外笔记-框架工具]SVN版本控制系统 学习资料: 1.本文打印版下载地址:[山外笔记-框架工具笔记]SVN版本控制工具-打印版.pdf 2.SVN和TortoiseSVN在线中文文档:http:/ ...

  8. SVN版本服务器搭建(服务端+客户端)

    原文地址:http://www.cnblogs.com/warrior1988/p/5359084.html 环境:Win7 32 bit SVN简介:程序员在编写程序的过程中,每个程序员都会生成很多 ...

  9. SVN版本服务器搭建

    windows:        https://blog.csdn.net/lu1024188315/article/details/74082227 SVN 的下载地址如下 http://torto ...

随机推荐

  1. TypeScript入门-函数

    ▓▓▓▓▓▓ 大致介绍 TypeScript为JavaScript函数添加了额外的功能,让我们可以更容易地使用.TypeScript中的函数也包括JavaScript中最常见的两种函数 functio ...

  2. JDK8-十大新特性-附demo

    JDK原计划17年上半年就发版,但未成功发版.才发现JDK8的特性还没总结过,特此总结. 一.十大特性. 1.Lambda表达式 2.Stream函数式操作流元素集合 3.接口新增:默认方法与静态方法 ...

  3. ssh相关命令

    ssh命令 ssh命令是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器. 语法ssh(选项)(参数)选项 -1:强制使用ssh协议版本1: -2:强制使用ssh协 ...

  4. AIX误删除LV后如何进行现场保护和数据恢复工作

    在AIX环境下,若因维护误操作.存储mapping错误等,不小心将LV误删除,这种损失通常是巨大的.删除后的不当保护及恢复操作可能使数据无法恢复,也可能增加处理的时间与算法复杂度.如何有效保护现场,并 ...

  5. 把上传Github的代码添加Cocoapods支持

    开始 这里我将从最初的开始进行介绍,包括Github上创建项目已经上传项目,到最后的支持Cocoapods. 步骤如下: 代码上传Github 创建podspec文件,并验证是否通过 在Github上 ...

  6. Python中使用with语句同时打开多个文件

    下午小伙伴问了一个有趣的问题, 怎么用 Python 的 with 语句同时打开多个文件? 首先, Python 本身是支持同时在 with 中打开多个文件的 with open('a.txt', ' ...

  7. Java中多线程同步类 CountDownLatch

    在多线程开发中,常常遇到希望一组线程完成之后在执行之后的操作,java提供了一个多线程同步辅助类,可以完成此类需求: 类中常见的方法: 其中构造方法:CountDownLatch(int count) ...

  8. HDU 2080 夹角有多大II (数学) atan(y/x)分类求角度

    夹角有多大II Problem Description 这次xhd面临的问题是这样的:在一个平面内有两个点,求两个点分别和原点的连线的夹角的大小.注:夹角的范围[0,180],两个点不会在圆心出现. ...

  9. 【python的基本数据类型及进制扫盲】

    一.进制 1.进制简介 进制就是进位制,是人们规定的一种进位方法.计算机底层的数据运算和存储都是二进制数据.计算机语言就是二进制,计算机能直接识别二进制数据,其它数据都不能直接识别. 2.常用进制 对 ...

  10. Telegram学习解析系列(二):这我怎么给后台传输数据?

    写在前面: 在iOS开发的过程中,有很多时候我们都在和数据打交道,最基本的就是数据的下载和上传了,估计很多很多的小伙伴都在用AFNetworking与后台数据打交道,可有没有想过,哪天AFNetwor ...