SVN + apache

15 篇文章 0 订阅

SVN版本控制服务
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。也是就是CVS的接班人!
CVS是一个C/S系统,是一个常用的代码版本控制软件。主要在开源软件管理中使用。与它相类似的代码版本控制软件有subversion。多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。CVS版本控制系统是一种GNU软件包,主要用于在多人开发环境下的源码的维护。但是由于之前CVS编码的问题,现在大多数软件开发公司都使用SVN替代了
CVS。
官方网站:http://subversion.apache.org/
Windows客户端 TortoiseSVN:http://tortoisesvn.net/
常见的版本控制软件
CVS,逐渐被SVN取代,是CVX重写版和改写版
SVN,Subversion
Git,Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds (林纳斯·托瓦兹)为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件

GitLab版本管理
GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找

SVN存储数据的方式
BDB,Berkeley DB,一种事务安全型表类型
FSFS,“FSFS” 采用文件系统的方式, 替代原来的基于Berkeley DB的实现.
因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。
SVN的运行方式及端口
独立服务器 3690端口 访问方式SVN:// C/S模式
借助apache运行 80端口 访问方式 http://
工作流程
集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上可以说是无法工作的。下面举例说明:开始新一天的工作:
1、从服务器下载项目组最新代码。
2、进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码
(很多人都有这个习惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修改了哪些代码,就需要这样做了)。
3、下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。
这就是经典的svn工作流程.
SVN+Apache运行原理
SVN搭配Apache的时候,Apache需要使用mod_dav_svn这个模块,他的运行机制如下:
在这里插入图片描述
在一台服务器上建立一个源代码库,库里可以存放许多不同项目的源程序。有源代码库管理员统一管理这些源程序。
每个用户在使用源代码库之前,首先要把源代码库里的项目文件下载到本地,然后开发人员可以在本地修改,然后用svn命令进行提交,由源代码库统一管理修改。
mod_dav_svn 可以让版本库通过http协议实现网站展现

下面实验步骤:
简单的在本机上实验
本次实验关闭防火墙以及Linux内核
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# mkdir /media/cdrom
[root@localhost ~]# mount /dev/cdrom /media/cdrom/ //采用的是本地yum源
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# yum install -y subversion //安装服务
[root@localhost ~]# mkdir /web //创建存放版本库的主目录
创建两个版本库
[root@localhost ~]# svnadmin create /web/www.bdqn.com
[root@localhost ~]# svnadmin create /web/www.accp.com
查看版本库
在这里插入图片描述
dav目录:是提供apache与mod_dav_svn使用的目录,让他们存储内部数据,刚开始新建时此目录没有
db目录:就是所有版本控制的数据存放文件
hooks目录:放置hook脚本文件的目录
locks目录:用来放置subversion监控锁定数据的目录,用来追踪存取文件库的客户端
format文件:是一个文本文件,里面只放了一个整数。表示当前文件库配置的版本号
conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等),也是我们要关注的配置文件
[root@localhost www.accp.com]# cd conf/ //修改权限等
在这里插入图片描述
[root@localhost conf]# vim authz //按照一下修改即可
在这里插入图片描述
SVN目录格式:
[/目录名] 直接一个 / 代表是在当前目录下
@用户组名 =权限 r 读 w写
用户名 =权限
*= 表示上面以外的都是没有权限的
[groups] #此行默认存在了
Check = zhangsan,lishi #定义组,在[groups]下面添加
#用户组格式 用户组名 = 用户1,用户2
#一个组可以包含多个用户,英文逗号间隔,用户名必须是在passwd中存在的
[root@localhost conf]# vim svnserve.conf //我这是删掉不需要后的配置信息
在这里插入图片描述
[general]
anon-access = read #原先注释掉了,匿名用户可以读,使用none的话就是匿名用户不可以访问
auth-access = write #这几行都要取消注释,认证用户可以写,可以是read,write,none
password-db = passwd #密码库文件,默认使用的是同一目录下的passwd文件作为用户密码库
authz-db = authz #认证权限文件
realm = www.bdqn.com #登陆提示信息 //可以随便修改
注意:此配置文件的所有内容必须顶格,否则会报错

[root@localhost conf]# vim passwd //用户密码
在这里插入图片描述
将配置文件复制给www.bdqn.com一份 工作实际中不要这样 我这只是图个方便
[root@localhost conf]# cp * /web/www.bdqn.com/conf/
cp:是否覆盖"/web/www.bdqn.com/conf/authz"? yes
cp:是否覆盖"/web/www.bdqn.com/conf/passwd"? yes
cp:是否覆盖"/web/www.bdqn.com/conf/svnserve.conf"? yes

[root@localhost ~]# svnserve -d -r /web/ //启动svn服务
-d=daemon (守护进程) -r=root of directory of save指定根目录
上面的是启动了web里面所有的版本库,如果只需要某一个版本库,后面添加/web/www.bdqn.com/的版本库即可

下面是如何使用SVN 但是这只是在本机上使用 现实中都是下载客户端:
使用svn导入测试代码
导入测试代码格式: svn [选项] 源码 svn://server ip/项目名
常见的选项:
import:将未版本化的文件纳入版本控制并提交
checkout:从版本库中检出一个修订版
update:更新工作拷贝
add,delete,copy,move:增、删、复制、移动文件或目录
status:检查状态差异
diff:检查文件行级详细差异
revert:恢复
resolve:解决冲突
switch:切换工作拷贝对应的版本库分支
log:查看历史记录
list:显示文件目录
cat:查看某个文件内容

操作如下:
[root@localhost ~]# mkdir daima //创建一个本地代码在这里插入图片描述
[root@localhost ~]# svn import /root/daima/ file:///web/www.bdqn.com -m “first edit”
创建代码存放位置在这里插入图片描述
[root@localhost conf]# svn checkout svn://192.168.10.101/www.bdqn.com/ down //下载代码
在这里插入图片描述down:指定代码下载位置 自动创建 如果不指定位置是你当前的目录下面
上传代码:
有用户权限的上传
[root@localhost ~]# cd down1
[root@localhost down1]# ls
1.html 2.php
[root@localhost down1]# echo 3333 jsp > 3.jsp
[root@localhost down1]# ls
1.html 2.php 3.jsp
[root@localhost down1]# svn add 3.jsp
A 3.jsp

[root@localhost down1]# svn commit -m “sec1”
在这里插入图片描述
没有用户权限的上传
[root@localhost ~]# cd down/
[root@localhost down]# ls
1.html 2.php
[root@localhost down]# touch 3.jsp
[root@localhost down]# svn add 3.jsp
A 3.jsp
[root@localhost down]# svn commit -m “sec”
在这里插入图片描述

下面结合APAche来实现网页SVN+apache

[root@localhost ~]# yum -y install mod_dav_svn httpd //继续上面的来做
Httpd: 肯定是要安装的
Mod_dav_svn : 是一个模块 首先让SVN与apache 之间互联
SVN+Apache
SVN+Apache的需要subversion的两个动态库支持,同时我们需要密码的验证支持!
查看apache对svn模块的支持
[root@localhost ~]# vim /etc/httpd/conf.modules.d/10-subversion.conf
#有下面svn相关库,就证明安装成功
在这里插入图片描述
[root@localhost ~]# ls /etc/httpd/modules/mod_dav_svn.so /etc/httpd/modules/mod_authz_svn.so
/etc/httpd/modules/mod_authz_svn.so
/etc/httpd/modules/mod_dav_svn.so
#两个模块对应的物理路径

[root@localhost ~]# vim /etc/httpd/conf.d/subversion.conf //添加一下东西
在这里插入图片描述

添加 htpasswd 用户
在这里插入图片描述
第一次 -c 就可以了 不然会覆盖
[root@localhost ~]# vim /web/svn/authz

在这里插入图片描述
[root@localhost ~]# systemctl start httpd //启动http
在网页访问效果
在这里插入图片描述

下面是windows使用的方法
Windows客户端下操作
Windows下使用TortoiseSVN工具来配置,官方网站:http://tortoisesvn.net/downloads.html
选择适应版本,32位或者64位
软件安装配置
从官方下载,直接安装,然后建立本地的源码存储目录,自己新建,如这里我们建立SVN这个目录,然后进入这个目录,右键:
在这里插入图片描述
配置:
在这里插入图片描述
输入用户名和密码:
在这里插入图片描述
新建代码上传
在这里插入图片描述在这里插入图片描述
在SVN目录右键这个源码文件
在这里插入图片描述

然后再次右键这个文件,选择SVN Commit
在这里插入图片描述

输入注释,OK
在这里插入图片描述

接下来点击OK即可,有可能需要一个有写入权限的用户,还需要注意将仓库文件修改为apache权限
[root@localhost ~]# chown -R apache.apache /web/www.bdqn.com
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值