subversion(简称svn)是近年来崛起的版本管理软件,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。

与CVS对比

  在SVN之前,CVS是使用最广泛的版本管理软件。SVN与CVS对比的优点如下:

  * 统一的版本号。CVS是对每个文件顺序编排版本号,在某一时间各文件的版本号各不相同。而Subversion下,任何一次提交都会对所有文件增加到同一个新版本号,即使是提交并不涉及的文件。所以,各文件在某任意时间的版本号是相同的。版本号相同的文件构成软件的一个版本。

  * 原子提交。一次提交不管是单个还是多个文件,都是作为一个整体提交的。在这当中发生的意外例如传输中断,不会引起数据库的不完整和数据损坏。

  * 重命名、复制、删除文件等动作都保存在版本历史记录当中。

  * 对于二进制文件,使用了节省空间的保存方法。(简单的理解,就是只保存和上一版本不同之处)

  * 目录也有版本历史。整个目录树可以被移动或者复制,操作很简单,而且能够保留全部版本记录。

  * 分支的开销非常小。

  * 优化过的数据库访问,使得一些操作不必访问数据库就可以做到。这样减少了很多不必要的和数据库主机之间的网络流量。

使用情况

  虽然在 2006年 时 Subversion 的使用族群仍然远少于传统的 CVS,但已经有许多开放原码团体决定将 CVS 转换为 Subversion。已经转换使用 Subversion 的包括了 FreeBSD、Apache Software Foundation、KDE、GNOME、GCC、Python、Samba、Mono 以及许多团体。

  许多开发团队换用 Subversion 是因为 Trac、SourceForge、CollabNet、CodeBeamer等专案协同作业软件以及Eclipse、NetBeans等IDE提供 Subversion的支援整合。 除此之外,一些自由软件开发的协作网如SourceForge.net除了提供 CVS 外,现在也提供专案开发者使用 Subversion 作为原码管理系统, JavaForge、Google Code以及 BountySource 则以 Subversion 作为官方的原码管理系统。

  2009年,绝大多数CVS服务已经改用SVN。CVS已经停止维护。

客户端

  Subversion的客户端有两类,一类是websvn等基于web的,一种是以TortoiseSVN为代表的客户端软件。前者需要web服务器的支持,后者需要用户在本地安装客户端,两种都有免费开源软件供使用。

服务器

  Subversion支持linux和windows,更多是安装在linux下。

  svn服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊。

  svn存储版本数据也有2种方式:BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。

不足

  只能设置目录的访问权限,无法设置单个文件的访问权限。

版本控制工具——subversion相关推荐

  1. 分布式版本控制工具:git与Mercurial(zz)

    分布式版本控制工具:git与Mercurial [收藏此页] [打印] 作者:cyfdecyf  2007-12-26 内容导航: 第1页 [IT168 技术文档]    说到版本控制工具,很多人可能 ...

  2. 版本控制工具Git 常用操作命令

    2019独角兽企业重金招聘Python工程师标准>>> Git 是用于Linux 内核开发的版本控制工具.与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式 ...

  3. 版本控制工具历史的10个里程碑

    导读:作者Eric Raymond在flourish上发表的一篇<Astonishments, ten, in the history of version control>,文中总结了版 ...

  4. 版本控制工具(CVS、SVN、GIT)简介

    2019独角兽企业重金招聘Python工程师标准>>> 版本控制工具:  提供完备的版本管理功能,用于存储.追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是软件公司的基 ...

  5. 项目管理实践之版本控制工具SVN在Windows平台下的平台搭建

    通过<项目管理实践之版本控制工具SVN>我们知道,在windows平台下,如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装SVN Server为 ...

  6. 项目管理实践之版本控制工具SVN

    SVN,即Subversion,是一个自由开源的版本控制系统,可以将数据恢复到早期版本,或者检查数据修改的历史,这些数据可以是源代码,也可以是其他类型的文件. 在SVN出现之前,CVS是开源世界版本控 ...

  7. 【SVN版本控制工具】

    目录 一.SVN是什么? 二.SVN有什么作用? 2.1备份 2.2还原代码 2.3多人协同修改 2.4追溯问题 2.5权限控制 三.下载安装 3.1客户端下载 3.2服务端下载 3.3客户端安装 3 ...

  8. 【尚硅谷Java笔记+踩坑】Git(分布式版本控制工具)

    用于复习快速回顾 目录 1.Git 1.0.提交项目到GitHub简洁版 1.2.版本控制 1.3.版本控制工具 1.4.Git简史 1.5.Git工作机制 1.6.Git和代码托管中心 2.Git安 ...

  9. 多人开发SVN版本控制工具安装

    SVN版本控制工具安装 1. Beyond Compare 这是一个方便进行文件之间差异对比的工具,可以方便的对文件中的内容进行合并,甚至是文件夹中的内容也可以进行差异对比 直接点击安装即可,除了选择 ...

  10. java代码管理工具_java源码管理与版本控制工具,图文详解

    近些年社会科学技术水平的发展越来越快速了,这也促进了人们对于新技术新知识的学习.尤其是java的应用也越来越广泛.今天就来为大家介绍一下,java源码管理与版本控制工具,一起来了解一下吧. java项 ...

最新文章

  1. 程序出错后,程序员给测试人员的20条高频回复
  2. linux进程状态浅析
  3. 每晚有1700万人逛淘宝但什么都不买,马云:我们仍可以靠他们赚钱
  4. 18、led驱动程序的实现
  5. 阿里腾讯极其看重的数据中台,我用大白话给你解释清楚了
  6. linux g++ 链接,Linux G++将64位共享库代码链接到静态库
  7. 计算机视觉三大会议——ICCV、ECCV和CVPR
  8. spring boot 教程(二)模板依赖
  9. 课后实践4:以支付宝为例,使用商业画布分析一款产品
  10. C语言 AES加解密
  11. Flutter—— 仿自如APP裸眼3D效果
  12. OTL,OCL,BTL电路的性能特点和差别
  13. Lost connection to MySQL server during query的几种可能分析
  14. c语言编写51单片机中断程序,执行过程是怎样的?
  15. qbo_webi: cherry server 有效url
  16. ecshop商品页面附件下载,京东淘宝购买,自定义按钮自定义连接
  17. Windows访问共享文件 smb samba
  18. Jconsole和VisualVM使用指南
  19. java命令执行jar包main方法指定相关依赖
  20. 当IOS系统遇上XP系统没“化学反应”咋办

热门文章

  1. 协同过滤算法:在线推荐系统如何工作?
  2. 线性判别分析(LDA), 主成分分析(PCA)
  3. “按字典序输出方案” 解决方法
  4. 【POJ 3469】Dual Core CPU【最小割】
  5. 引入log4j日志包为何会自动导入额外两个包(门面模式)
  6. 62.不同的路径(力扣leetcode) 博主可答疑该问题
  7. Tomcat一直启动不成功,连接不到8080(持续更新带图解释并总结了其他博文)
  8. 1个系统节拍 c语言_【课程】乐理知识讲重点第九课(节拍与节奏)
  9. 天涯明月刀龙吟曲服务器维护,青龙大区合服公告 12月11进行数据互通
  10. JDK ThreadLocal解析