svn简介

Subversion是一个免费/开源的版本控制系统, Subversion 可以跨越时间地对文件和目录, 以及它们的修改进行管理. 这就允许你恢复 数据的旧版本, 或检查数据的修改历史. 由于这个特点, 很多人把版本控制系统 看成是一种 “时间机器”.

Svn的组件

  1. svn 客户端命令行工具
  2. svnversion 用于报告工作副本状态 (就项目的版本号而言) 的工具
  3. svnlook可以直接检查仓库的工具
  4. svnadmin 用于创建, 调整或修复 Subversion 仓库的工具
  5. mod_dav_svn Apache HTTP 服务器插件, 该插件允许用户通过网络访问仓库
  6. svnserve 一个定制的, 可独立运行的服务器程序, 可以以守护进程方式运行, 也可以被 SSH 调用, 这是另一种允许用户通过网络访问仓库的方法
  7. svndumpfilter 过滤 Subversion 仓库转储数据流的程序
  8. svnsync 可以跨越网络对仓库进行增量镜像备份的程序
  9. svnrdump 可以跨越网络对仓库历史进行转储和加载的程序
  10. svnmucc 该工具支持在没有工作副本的情况下, 在一个单独的提交中对多个 仓库执行基于 URL 的操作

简单点来说,版本控制就是数据仓库,它可以记录你对文件的每次更改。这样,就算你在昏天黑地的改了几个月后老板说不要了,还是按照过去那样,你也不会抓狂,简单的恢复版本操作就搞定一切

常见版本控制软件 :

CVS  由于之前CVS编码的问题,现在大多数软件开发公司都使用SVN替代了CVS

SVN  集中式版本控制器

git    分布式版本控制器

Svn 服务端运行方式

  • 独立服务器访问s svn://IP/svn_test
  • 借助apache等http服务 http://IP/svn_test
  • 本地文件 file:///svn_test

搭建svn 服务器+ apache 实现版本控制服务器

安装svn服务器,apache, mod_dav_svn 软件包

[root@svn ~]# yum -y install subversion  httpd  mod_dav_svn
# mod_dav_svn模块是http服务的插件,可以让版本库通过http协议,在网站上展现

创建版本库目录,并修改相应权限

[root@svn ~]# mkdir /var/repos
[root@svn ~]# svnadmin create /var/repos/damowang.cn
[root@svn ~]# ls /var/repos/damowang.cn
conf db format hooks locks README.txt
[root@svn ~]# svnserve -d -r /var/repos/ # 开启服务
# -d 表示以daemon方式(后台运行)运行 -r 指定svn根目录是/var/repos
[root@svn ~]# netstat -antup|grep
tcp 0.0.0.0: 0.0.0.0:* LISTEN /svnserve

配置Apache

查看apache支持subversion两个动态库有没有安装成功

[root@svn ~]# find / -name mod_dav_svn.so
/usr/lib64/httpd/modules/mod_dav_svn.so
[root@svn ~]# find / -name mod_authz_svn.so
/usr/lib64/httpd/modules/mod_authz_svn.so

配置apache通过mod_dav_svn模块访问SVN服务器

[root@svn ~]# vim /etc/httpd/conf.d/subversion.conf    # 文件存在就直接修改 , 不存在就手写

<Location /svn>
DAV svn
SVNParentPath /var/repos
AuthType Basic
AuthName " SVN server of damowang!"
AuthUserFile /home/svn/passwd
AuthzSVNAccessFile /home/svn/auth
Require valid-user
</Location>

注释:

<Location /svn>    apache的虚拟目录  后期通过链接:http://192.168.94.111/svn 来访问

DAV svn

       SVNParentPath /var/repos   存放仓库的路径 :damowang.cn的绝对路径

        AuthType Basic

        AuthName " SVN server of damowang!"    apache认证时弹出的消息

        AuthUserFile /home/svn/passwd     passwd存储用户名和密码

        AuthzSVNAccessFile /home/svn/auth   存放用户的权限

        Require valid-user

</Location>

建立本地访问控制文件/home/svn/passwd,#后期通过httpd服务器访问svn时,会使用这个文件中的用户信息验证用户和密码

[root@svn ~]# mkdir /home/svn
[root@svn ~]# htpasswd -c /home/svn/passwd damowang
New password:
Re-type new password:
Adding password for user damowang
# -c 只在第一次创建用户密码文件时使用 创建/home/svn/passwd文件 会提示你输入密码,默认是MD5加密
[root@svn ~]# cat /home/svn/passwd
damowang:$apr1$rk05bgL7$H2xOG1YwZQpFLucpmutUu0

建立本地项目版本库权限控制文件

[root@svn ~]# vim /home/svn/auth

[/]             #  这个表示在所有仓库的根目录下
damowang =rw # 表示damowang用户对所有仓库根目录下的软件版本库有rw权限
[root@svn ~]# chown -R apache.apache /var/repos/
[root@svn ~]# systemctl start httpd

svn的访问地址是 http://192.168.94.111/svn/damowang.cn

SVN客户端

subversion windows客户端TortoiseSVN配置:

http://tortoisesvn.net/about.zh.html

下载与系统对应的包

安装之后在Windows上新建一个文件夹

填写用户名和密码就可以了

上传和下载

把文件放到文件夹里

选择上传的文件后点击ok

再访问网页

damowang用户有rw权限 点击文件名可以看到文件内容

在Linux下测试客户端 :

[root@svn repos]# svn checkout http://192.168.94.111/svn/damowang.cn
认证领域: <http://192.168.94.111:80> SVN server of damowang!
“root”的密码:
认证领域: <http://192.168.94.111:80> SVN server of damowang!
用户名: damowang
“damowang”的密码: -----------------------------------------------------------------------
注意! 你的密码,对于认证域: <http://192.168.94.111:80> SVN server of damowang! 只能明文保存在磁盘上! 如果可能的话,请考虑配置你的系统,让 Subversion
可以保存加密后的密码。请参阅文档以获得详细信息。 你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,
来避免再次出现此警告。
-----------------------------------------------------------------------
保存未加密的密码(yes/no)?no
A damowang/server.crt
取出版本 。
[root@svn repos]# cd damowang
[root@svn damowang]# ls
server.crt

CentOS 7 使用SVN+Apache搭建版本控制服务器的更多相关文章

  1. svn+apache搭建版本控制服务器

    Centos7(linux)搭建版本控制服务器(svn+apache) 1.简介: 版本控制服务器: 版本控制(Revision control)是一种软体工程技巧,籍以在开发的过程中,确保由不同人所 ...

  2. 实战:使用SVN+apache搭建一个版本控制服务器

    今天讲的内容: 实战:使用SVN+apache搭建一个版本控制服务器 每天: 10:00 晚上:21:00 服务端:xuegod63.cn   IP:192.168.10.63 服务概述: SVN(s ...

  3. 在Linux上用Apache搭建Git服务器

    在Linux上用Apache搭建Git服务器   最近在学Linux,终于在Linux上用Apache搭建起了Git服务器,在此记录一下. 服务器:阿里云服务器 Linux版本:CentOS 6.5 ...

  4. CentOS 6.5下快速搭建ftp服务器[转]

    CentOS 6.5下快速搭建ftp服务器 1.用root 进入系统 2.使用命令 rpm -qa|grep vsftpd 查看系统是否安装了ftp,若安装了vsftp,使用这个命令会在屏幕上显示vs ...

  5. CentOS 6.5下快速搭建ftp服务器

    来源:Linux社区 作者:Linux CentOS 6.5下快速搭建ftp服务器 1.用root 进入系统 2.使用命令 rpm -qa|grep vsftpd 查看系统是否安装了ftp,若安装了v ...

  6. CentOS 7下简答搭建DNS服务器

    一.DNS相关介绍 DNS(Domain Name System)域名系统协议,作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用挨个记住IP地址.通过主机名,最终得到 ...

  7. windows下svn+apache搭建svn服务器

    使用软件: apache_2.0.55-win32-x86-no_ssl.msi Setup-Subversion-1.5.3.msi TortoiseSVN-1.5.10.16879-win32-s ...

  8. Virtual Box + CentOS Minimal + Apache搭建Web服务器

    本文并不介绍关于Virtual Box, CentOS, Apache的安装, 主要针对安装后相关的配置, 使宿主机(Host)可以访问客户机(Guest: CentOS in Virtual Box ...

  9. CentOS 6.3 + Subversion + Usvn 搭建版本管理服务器

    一. Subversion 简介 Subversion是一个自由,开源的版本控制系统.在Subversion管理下,文件和目录可以超越时空.Subversion将文件存放在中心版本库里.这个版本库很像 ...

随机推荐

  1. Windows server 2008普通用户不能远程登录问题

    1.查登录权限 如果文件服务器没有为用户授权,那么用户自然就不能远程登录服务器系统了,为此笔者决定先仔细检查一下文件服务器系统是否为自己使用的登录账号,授予了远程登录权限.在进行这种检查时,笔者先是在 ...

  2. HTML 01 请求过程

    与 HTTP 关系密切的协议, IP, TCP, DNS IP协议的作用是把各种数据包传送给对方, 而要保证确实传送到对方那里, 需要满足各种条件. 其中两个最重要的条件是 IP地址 和 MAC 地址 ...

  3. 01Spark的TopN问题

    和hadoop的目的一样,给你数据,然后取TopN.数据如下: 取出数据在排名前十的数据. 代码如下: package com.test.book; import java.util.ArrayLis ...

  4. winrar压缩过滤文件及文件夹

    代码: .git .git\* .svn .svn\* .git~\* .git~ build\* build vsout\* vsout *.obj *.sdf *.opensdf game目录: ...

  5. mysql 命令行 备份 恢复数据

    找到mysql启动位置 whereis mysql 备份指定数据库 包括表结构和数据 使用命令mysqldump 数据库名 -u 用户名 -p > 存储文件路径 [root@izm5e16gjd ...

  6. JPA唯一索引更新删除的问题

    本来的功能是更新,我的做法是先删除再新增.表设置了字段A和字段B的唯一主键,先删除这个字段再新增一一模一样的值(包含字段A和字段B)时会报唯一主键的值重复了,百度了下,没找到原因,于是就不删除记录了, ...

  7. mysql之表格的关联关系

    1.’基本模式有多对一,多对多,一对一.关联的两个基本组建为外键列和参照列 典型的多对一模式,很普遍,如部门表和员工表,即一个部门可以有多个员工. 对于多对多的模式,就需要建立中间表,将其转换为多对一 ...

  8. Java课程寒假之《人月神话》有感之一

    一.焦油坑 以前上课的时候,老师讲过早期的程序由于工作量不大,大多只需要几个人完成,随着软件规模的不断扩大,代码量直线上升,仅仅一两个人可能没有办法完成这样的任务,多以开始形成了团队的规模,焦油坑说的 ...

  9. git 的相关知识

    参考文章 git checkout HEAD <file> :  master/HEAD -> index -> work directory index 暂存区有两行信息.分 ...

  10. 【漏洞复现】Tomcat CVE-2017-12615 远程代码执行漏洞

    漏洞描述 [漏洞预警]Tomcat CVE-2017-12615远程代码执行漏洞/CVE-2017-12616信息泄漏 https://www.secfree.com/article-395.html ...