zoukankan      html  css  js  c++  java
  • CentOS 7 使用SVN+Apache搭建版本控制服务器

    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 3690
    tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      15492/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
    取出版本 1。
    [root@svn repos]# cd damowang
    [root@svn damowang]# ls
    server.crt
    --求知若饥 虚心若愚
  • 相关阅读:
    利用http协议实现图片窃取
    数字信号处理与音频处理(使用Audition)
    算法--堆排序学习以及模板
    HDInsight-Hadoop实战(一)站点日志分析
    自己动手写缓存Version1
    Xenomai 的模式切换浅析
    JSF学习四 标签
    chrome扩展——Postman
    CSS3:clip-path具体解释
    大型站点的前期规划
  • 原文地址:https://www.cnblogs.com/bigdevilking/p/9438807.html
Copyright © 2011-2022 走看看