写点什么

什么是 SVN(Subversion)?

  • 2022 年 8 月 02 日
  • 本文字数:2129 字

    阅读完需:约 7 分钟

什么是SVN(Subversion)?

Subversion 是一种集中式的版本控制系统,一般被简称为 SVN。作为目前可用的众多版本控制选项之一,SVN 依旧存在着分支功能弱、集中式导致服务器压力大等问题。


如果您的需求已经超过 SVN 所提供的功能范围应该怎么办?龙智将在系列文章中为您提供其他版本控制软件的实践参考。我们将从为什么使用 SVN、命令备忘录清单、托管储存库、如何使用客户端等角度对比 Perforce Helix Core、SVN 与 Git,让您能够深入了解各个版本控制软件的优缺点。


作为 DevSecOps 研发安全运营一体化解决方案供应商,龙智持续关注 DevSecOps 领域的动态与发展,集成世界主流工具,帮助企业实现研发安全运营一体化。


Subversion 是目前可用的众多版本控制选项之一。Subversion 是一种集中式版本控制系统,用于管理版本化文件,如源代码。它通常缩写为 SVN。


Subversion 的定义

Subversion 用途是什么?


Subversion 用于维护项目的当前版本和历史版本。它是一个开源的集中式版本控制系统。它是根据 Apache 授权的,也被称为软件版本修订控制系统。


什么是 SVN?


SVN 代表 Subversion。所以,SVN 和 Subversion 是一样的。SVN 用于管理和跟踪跨项目的代码和资产的更改。


Subversion 还在被使用吗?


Subversion 曾经是最流行的系统之一,但 受欢迎程度正在逐渐下降。但是,其中仍然存储了数百万行。它甚至继续被积极维护,尽管是由一个小型开源社区维护的。


什么是 SVN 储存库?


SVN 储存库是指包含完整更改历史的文件集合。


Subversion (SVN) 是分布式版本控制系统吗?


SVN 实际上是一个集中的版本控制系统。它不同于分布式系统,比如 Git。


SVN 服务器解释


集中式版本控制意味着版本历史存储在中央服务器中。当开发人员想要对某些文件进行更改时,他们会将文件从该中央服务器拉到他们自己的计算机上。开发人员进行更改后,他们将更改的文件发送回中央服务器。


Subversion 工具


什么是 Subversion 工具?


有许多常用的 Subversion 工具和客户端。例如,TortoiseSVN 是最流行的 Subversion 工具之一。

您还可以考虑托管 Subversion 的工具,例如 Helix TeamHub。


Subversion 工具是如何工作的?


SVN 最初被设计为命令行界面。这意味着您需要打开终端并输入文本命令。

要使 Subversion 正常工作,SVN 设置需要满足两个主要条件:

  • 拥有所有源文件的所有版本的服务器

  • 确保文件的本地副本存储于您的计算机中


存储于计算机中的文件称为工作文件,用户可以对这些文件进行编辑。然后,用户将变更后的文件提交至 SVN 服务器。


每次用户提交更改时,SVN 都会通过创建一个新版本来管理和记录更改。与大多数版本控制选项一样,用户通常使用最新版本。但如果需要旧版本,也可以恢复至早期版本。


你应该在 SVN 中使用版本控制吗?


使用 SVN 进行版本控制很流行。但这对您的团队来说是正确的选择吗?以下是您在使用 SVN 进行版本控制时将面临的一些挑战。


SVN 有一个繁琐的分支模型


SVN 繁琐的分支模型是最受用户诟病的问题。SVN 分支模型允许您同时处理多个版本的代码。在 SVN 中,分支被创建为为服务器内部的目录,很多开发人员不喜欢这种目录结构。但挑战不止于此。


SVN1.6 版引入了一个称为树冲突的概念。树冲突是因目录结构变更而引起的冲突,并且会经常发生。由于 SVN 不允许您在发生树冲突时提交变更信息,所以这增加了在 SVN 中实现分支策略的复杂性。


SVN 需要连接到中央储存库


为了提交更改,SVN 要求您连接到中央储存库。


在这里,不得不提到一个流传已久的关于版本控制的说法:“尽早提交;经常提交”。


考虑到这一点,使用 SVN 而不连接中央储存库是毫无意义的。例如,如果您进行离线编码,例如在飞行期间,SVN 不允许您在恢复连接之前提交到中央储存库。


如果您有多个存储库,则这一连接过程会变得更加复杂。


SVN 需要手动解决冲突


合并是 SVN 被开发人员所诟病的另一重大问题。如果您正在处理一个历史记录,其中一组进行了变更并提交,然后进行了另一变更(即线性变更)并提交,则合并将会非常容易实现。


当两名或更多的开发人员在同一个代码库上工作,并且需要合并时,事情就会变得复杂起来。在这种情况下,SVN 合并失败,开发人员需要手动解决冲突,这一手动解决过程可能需要花费数个小时,浪费了开发人员的宝贵时间。


那么,为什么要使用 Subversion?


SVN 会带来一些挑战。那么,为什么依然使用 SVN?两大的原因:成本和惯性。


  • 成本:SVN 是开源的,这意味着它可以“免费使用”。进一步了解 SVN 的实际成本。

  • 惯性:一旦建立了数据规模庞大的代码库后,就很难切换 VCS。SVN 自 2004 年问世以来,已有很多企业利用 SVN 管理数百万行代码信息。


Subversion 是成熟的工具吗?


如果您的需求已经超过 SVN 所提供的功能范围,Perforce 可为您提供企业级版本控制软件 Helix Core,让您无限制地扩展。


Perforce Helix Core 是集中式版本控制工具,具有 SVN 所有优点,并且功能强大,可以轻松解决问题。

您将获得:


  • 一个集中的服务器,创建一个单一事实来源。

  • 易于使用的工具。

  • 高效且强大的分支管理功能。

  • 易于提交更改,还可以跨多个存储库提交更改。

  • 自动解决合并冲突。


Perforce Helix Core非常适合协作,因其具有可扩展性和灵活性。完整版本的 Perforce Helix Core 最多可供 5 个用户和 20 个工作区免费使用。


文章来源:https://bit.ly/3oEhPXc


如需免费试用 Perforce Helix Core,请立即联系Perforce授权合作伙伴——龙智

电话:400-775-5506

邮箱:marketing@shdsd.com


用户头像

还未添加个人签名 2021.05.18 加入

还未添加个人简介

评论

发布
暂无评论
什么是SVN(Subversion)?_svn_龙智—DevSecOps解决方案_InfoQ写作社区