subversion 简介

Subversion是一个自由开源的版本控制系统。在Subversion管理下,文件和目录可以超越时空。 
Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况,这样就可以借此将数据恢复到以前的版本,并可以查看数据的更改细节。正因为如此,许多人将版本控制系统当作一种神奇的“时间机器”。
subversion 官网:http://subversion.apache.org/
subversion 安装

安装subversion
[root@linuxprobe~]# yum -y install subversion 
1
创建源仓库,以“/var/svn/repos/project”为例
[root@linuxprobe ~]# mkdir -p /var/svn/repos/project
[root@linuxprobe ~]# svnadmin create /var/svn/repos/project   # 创建源仓库
[root@linuxprobe ~]# svn mkdir file:///var/svn/repos/project/trunk -m "create" 
Committed revision 1.
[root@linuxprobe ~]# svn mkdir file:///var/svn/repos/project/branches -m "create" # 创建分支
Committed revision 2.
[root@linuxprobe ~]# svn mkdir file:///var/svn/repos/project/tags -m "create" # 创建标签 
Committed revision 3.

导入已存在的代码文件到SVN仓库,导入/home/project目录的文件
[root@linuxprobe ~]# ll /home/project/
total 0
-rw-r--r-- 1 root root 0 Nov  1 11:57 index.go
-rw-r--r-- 1 root root 0 Nov  1 11:57 index.html
-rw-r--r-- 1 root root 0 Nov  1 11:57 index.php
-rw-r--r-- 1 root root 0 Nov  1 11:58 index.py
-rw-r--r-- 1 root root 0 Nov  1 11:58 info.php
[root@linuxprobe ~]# svn import /home/project file:///var/svn/repos/project/trunk -m "initial import"
Adding         /home/project/index.html
Adding         /home/project/index.go
Adding         /home/project/index.php
Adding         /home/project/index.py
Adding         /home/project/info.php
Committed revision 4.
# 确认
[root@linuxprobe ~]# svn list file:///var/svn/repos/project/trunk
index.go
index.html
index.php
index.py
info.php

启动svnserver,svnserve监听TCP 3690,防火墙开启端口通信
# svn server 端
[root@linuxprobe ~]# systemctl start svnserve
# svn client 端
[root@vdevops ~]# yum -y install svn
[root@vdevops ~]# svn list svn://linuxprobe.org/repos/project
branches/
tags/
trunk/
# 导出代码到本地
[root@vdevops ~]# svn checkout svn://linuxprobe.org/repos/project
A    project/tags
A    project/trunk
A    project/trunk/info.php
A    project/trunk/index.html
A    project/trunk/index.go
A    project/trunk/index.php
A    project/trunk/index.py
A    project/branches
Checked out revision 4.

如果没有启动svnserve,通过端口无法连接到svn server,可以通过ssh的方式连接到svn server
# svn server 端
[root@linuxprobe ~]# systemctl stop svnserve
# svn client端
[root@vdevops ~]# svn list svn+ssh://root@linuxprobe.org/var/svn/repos/project
root@linuxprobe.org's password: 
branches/
tags/
trunk/

subversion 访问控制

设置访问控制“/var/svn/repos/project”
[root@linuxprobe ~]# vi /var/svn/repos/project/conf/svnserve.conf
# line 9: add (prohibit anonymous access)
[general]
anon-access = none
# line 28: uncomment
password-db = passwd
# line 35: uncomment
authz-db = authz
[root@linuxprobe ~]# vi /var/svn/repos/project/conf/passwd
# define username and password for this repository
[users]
shaon= password
wang = password
devops = password
[root@linuxprobe ~]# vi /var/svn/repos/project/conf/authz
# define groups and users
[groups]
developer = devops,wang
# allow read/write on document root for developer group
[/]
@developer = rw
# allow read on trunk folder for fedora user
[/trunk]
shaon = r

svn client 客户端测试
[root@vdevops trunk]# svn --username shaon list svn://linuxprobe.org/repos/project/trunk
Authentication realm: <svn://linuxprobe.org:3690> LinuxProbe Repository
Password for 'shaon':

-----------------------------------------------------------------------
ATTENTION!  Your password for authentication realm:

<svn://linuxprobe.org:3690> LinuxProbe Repository  # 仓库名称

can only be stored to disk unencrypted!  You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible.  See the documentation for details.

You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/root/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? yes #记住密码
index.go
index.html
index.php
index.py
info.php

Subversion : Windows 客户端

在window10下安装TortoiseSVN ,TortoiseSVN 下载地址:http://tortoisesvn.net/downloads.html
安装TortoiseSVN后,移动到一个工作文件夹,点击右键,选择“SVN Checkout”,指定存储库的URL,然后单击“确定”

如果在存储库上设置访问控制,则需要进行身份验证,如下所示,继续使用有效的用户和密码。

完成结帐后,单击确定按钮

只是完成从存储库检出。它可以从这个应用程序操作存储库
Subversion HTTP Access

安装httpd参考:http://blog.csdn.net/wh211212/article/details/52982917
安装依赖包
[root@linuxprobe~]# yum -y install mod_dav_svn 
1
为HTTP访问配置Subversion,例如,为存储库“/var/svn/repos/project”
[root@linuxprobe run]#  vi /etc/httpd/conf.d/subversion.conf
# create new
<Location /project>
    DAV svn
    AuthType Basic
    AuthName "DAV SVN"
    AuthUserFile /var/svn/.svnpasswd
    Require valid-user
    SVNPath /var/svn/repos/project
</Location> 
[root@linuxprobe run]# htpasswd -c /var/svn/.svnpasswd wang
New password: 
Re-type new password: 
Adding password for user wang
[root@linuxprobe run]# chown -R apache. /var/svn/repos 
[root@linuxprobe run]# systemctl restart httpd 
[root@linuxprobe run]# systemctl status httpd

配置访问控制
[root@linuxprobe ~]# vi /var/svn/repos/project/conf/authzsvn.conf 
# define group
[groups]
developer = wang,devops
operator = shaon
# everyone can Read access
[/]
* = r
# only developer group can Read/Write under the trunk
[project:/trunk]
@developer = rw
# only operator can Read/Write under the branches

[project:/branches]
@operator = rw
# only operator can Read/Write under the tags

[project:/tags]
@operator = rw
[root@linuxprobe~]# vi /etc/httpd/conf.d/subversion.conf
<Location /project>
    DAV svn
    AuthType Basic
    AuthName "DAV SVN"
    AuthUserFile /var/svn/.svnpasswd
    Require valid-user
    SVNPath /var/svn/repos/project
    AuthzSVNAccessFile /var/svn/repos/project/conf/authzsvn.conf
</Location> 
[root@linuxprobe ~]# systemctl restart httpd

从客户端访问如下
[root@vdevops ~]# svn --username wang list http://linuxprobe.org/project
Authentication realm: <http://linuxprobe.org:80> DAV SVN
Password for 'wang':

-----------------------------------------------------------------------
ATTENTION!  Your password for authentication realm:

<http://linuxprobe.org:80> DAV SVN

can only be stored to disk unencrypted!  You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible.  See the documentation for details.

You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/root/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? no
branches/
tags/
trunk/

CentOS 7.2 安装Subversion(SVN)相关推荐

  1. Linux 通过yum源安装subversion(svn)服务端

    目录 前言 通过yum源安装subversion(svn)服务端 基本的SVN服务端配操作 确定一个SVN目录 新建SVN仓库 给SVN仓库添加用户 给SVN仓库的用户授权 SVN仓库配置 启动服务器 ...

  2. Linux 利用yum源安装subversion(svn)客户端

    前言 CentOS 7 subversion(svn) 安装过程 yum 方式安装 shell> yum install subversion 检查是否安装成功 shell> svn -- ...

  3. Centos 5.6 安装subversion总结

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

  4. linux-centos下源代码安装subversion (svn)

    1.svn的源代码 1.1 可以在官方下载,官方地址 :svn 1.6.17源码包  http://subversion.tigris.org/servlets/ProjectDocumentList ...

  5. Linux版本的SVN客户端,linux 下安装 subversion(svn) 客户端

    svn server 为只支持http://协议的windows; test web server 为as4,现需安装svn客户端方便同步代码 网上找了下都是讲如何安装svn server的,我只需要 ...

  6. linux svn 安装信息,linux 下安装 subversion(svn) 客户端

    svn server 为只支持http://协议的windows; test web server 为as4,现需安装svn客户端方便同步代码 网上找了下都是讲如何安装svn server的,我只需要 ...

  7. svn linux版本下载,linux 下安装 subversion(svn) 客户端

    svn server 为只支持http://协议的windows; test web server 为as4,现需安装svn客户端方便同步代码 网上找了下都是讲如何安装svn server的,我只需要 ...

  8. 配置通过Apache(httpd)访问Subversion(SVN)1.7资源库

    2019独角兽企业重金招聘Python工程师标准>>> 前面写过一篇 <CentOS下编译安装Subversion 1.7+配置+自启动(非Apache方式)> ,实现了 ...

  9. Linux/CentOS下安装Apache/SVN/Subversion图文详解教程

    Linux(CentOS)下安装Apache+Subversion(图文教程) 服务器版本和安装软件 服务器版本: RedHatCentOS 5.5 32 bit 安装软件: apr-1.3.5.ta ...

最新文章

  1. 【转】Flex Application 初始化顺序
  2. 十三五乐山全力推进智慧城市和新能源汽车等项目
  3. How to check table locks
  4. 开课提醒 | 听顶会大佬透析前沿算法,解密人脸识别技术
  5. 机器学习实战的P264中代码对应的公式推导
  6. 玩转带外触发的单目相机之一
  7. Java修炼之路——基础篇——枚举
  8. UC浏览器PC版新版有什么特点
  9. 又一尴尬问题!不少用户反馈iPhone 12屏幕特别“黄”
  10. [转载] java中对象作为参数传递给一个方法,到底是值传递,还是引用传递
  11. 怎么解绑 微信公众号 小程序 开发平台 开发者
  12. 合工大计算机与信息学院保研,合肥工业大学计算机与信息学院(专业学位)计算机技术保研细则...
  13. 软件研发部门的基础设施
  14. 不用验证,下载wmp10
  15. java 多线程 实现死锁问题
  16. 服务器BMC管理工具ipmitool的安装和使用
  17. mysql减五元,[MySQL]處理字元編碼的一些心得
  18. 游戏暴击(随机数和if判断)
  19. 2017年搜狗校招Java研发笔试编程题
  20. 出现无法解析的外部符号 LZ4_decompress_safe等问题

热门文章

  1. 什么是TMD格式?TDM格式详细介绍
  2. 蚂蚁金服推出 BaaS 平台:巨头角逐之下,商业机会正快速来临
  3. GitHub上20多万张不可描述图片的数据集
  4. 数据库基础及常用SQL语句
  5. android generated java files,Android protobuf-javalite 实践
  6. Zerg虫族的传说[官方资料]
  7. Quartus Prime 软件 USB-blaster 驱动安装失败【已解决】
  8. 层次softmax (hierarchical softmax)理解
  9. 华为mate30怎么更换鸿蒙系统,怎么升级到鸿蒙2.0系统呀
  10. winrar 百度网盘_不冲百度网盘会员,如何在手机上打开网盘里的压缩包?