svn是什么

子凡 问答 2019-03-26 15:17:44 阅读(...)

Apache Subversion(简称SVN)一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。简而言之SVN就是用于多个人共同开发同一个项目,共用资源的目的。

Apache Subversion(简称 SVN)一个开放源代码版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。互联网上很多版本控制服务已从 CVS 转移到 Subversion。说得简单一点 SVN 就是用于多个人共同开发同一个项目,共用资源的目的。

Subversion SVN

SVN 服务器有 2 种运行方式:独立服务器和借助 apache 运行。两种方式各有利弊,用户可以自行选择。SVN 存储版本数据也有 2 种方式:BDB(一种事务安全型表类型)和 FSFS(一种不需要数据库的存储系统)。因为 BDB 方式在服务器中断时,有可能锁住数据,所以还是 FSFS 方式更安全一点。

SVN 相关历史

CollabNet 于 2000 年创建 SVN 项目,意在写出一款近似 CVS 操作方式的版本控制系统。只不过,此款产品针对 CVS 的 bug 和一些缺失的功能,进行了修正和补充。

2000 年 2 月,他们联系了 Open Source Development with CVS(Coriolis, 1999)的作者 Karl Fogel,问他是否愿意为这个新项目工作。巧的是这时 Karl 已经在和他的朋友 Jim Blandy 讨论一个新的版本控制系统的设计。在 1995 年,两人开了一家提供 CVS 技术支持的公司,叫作 Cyclic Software。虽然公司已经卖掉了,他们仍然在日常工作中使用 CVS。在使用 CVS 时受到的束缚已经让 Jim 开始仔细思考管理版本化数据的更好的路子。他不仅已经起好了名字“Subversion”,而且有了 Subvesion 资料库的基本设计。当 CollabNet 打来电话时,Karl 立刻同意为这个项目工作。Jim 征得他的老板 RedHat Software 的同意,让他投入这个项目,而且没有时间限制。CollabNet 雇用了 Karl 和 Ben Collins-Sussman,从 5 月份开始详细设计。由于 Greg Stein 和 CollabNet 的 Brian Behlendorf 和 Jason Robbins 作了恰当的推动,Subversion 很快吸引了一个活跃的开发人员社群。这说明了许多人有相同的受制于 CVS 的经验,他们对终于有机会对它做点什么表示欢迎。

最初的设计团队设定了几个简单的目标。他们并不想在版本控制方法论上有新突破。他们只想修补 CVS。他们决定 Subversion 应该与 CVS 相似,保留相同的开发模型,但不复制 CVS 最明显的缺点。虽然它不一定是 CVS 的完全的替代品,但它应该和 CVS 相似,从而任何 CVS 用户可以不费什么力气的转换过来。

经过 14 个月的编码,在 2001 年 8 月 31 号,Subversion 可以“自我寄生”了。就是说,Subversion 开发人员停止使用 CVS 管理 Subversion 的源代码,开始使用 Subversion 代替。

虽然 CollabNet 发起了这个项目,而且仍然资助一大部分的工作(它为一些专职的 Subversion 开发人员发薪水)。但是 Subversion 像大部分开放源码的项目一样运作,由一个松散透明,鼓励能者多劳的规则管理。CollabNet 的著作权许可证和 Debian FSG 完全兼容。换句话说,任何人可以免费下载,修改,按自己的意愿重新分发 Subversion,而不必得到来自 CollabNet 或其他任何人的许可。

2009 年 11 月,Subversion 被 Apache Incubator 项目所接收。

2010 年 1 月,正式成为 Apache 软件基金会的一个顶级项目。

1个人收藏头像 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • TortoiseSVN

    TortoiseSVN是什么

    TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器。
  • VCS 版本控制系统 version control system

    版本控制系统是什么

    版本控制系统(VCS)是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。用的比较多的如svn,git等。
  • TortoiseGit

    TortoiseGit是什么

    TortoiseGit 简称 tgit,中文名海龟Git,是TortoiseSVN的Git版本,TortoiseGit是一个Git版本控制客户端,只支持神器 Windows 系统。
  • 码云 gitee

    Gitee是什么

    码云(Gitee)是 OSCHINA 推出的代码托管协作开发平台,支持 Git 和 SVN,提供免费的私有仓库托管。2016 年推出企业版,提供企业级代码托管服务,成为开发领域领先的 SaaS 服务提供商。
  • subversion是什么

    subversion是什么

    SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。
  • 开源 open source

    开源操作系统是什么

    开源操作系统(open source operating system) 就是公开源代码的操作系统软件,可以遵循开源协议(GNU)进行使用、编译和再发布。在遵守GNU协议的前提下,任何人都可以免费使用,随意控制软件的运行方式。