SVN是什么

Dec 24, 2018 am 11:24 AM
svn

SVN是什么

什么是SVN(Subversion)?

在2010年之前,Apache Subversion(简称SVN)是最流行的版本控制系统之一。现在,SVN的受欢迎程度正在下降,但仍有数百万行存储在其中。它甚至继续得到积极维护,尽管是一个小型的开源社区。

SVN的诞生

在1990年代后期,Concurrent Versions System(或CVS)被广泛用于开源和商业项目的软件开发。然而,CVS开始受到批评。它对第三方工具的支持很差,并且绝对不支持http / https / ssh协议。它很快变得不合格,需要一个更好的系统。

2000年,SVN的发展开始认真。目标是为CVS创建兼容的后继者。

尽管SVN开发始于2000年,但版本1.0直到2004年2月才发布。它模仿了CVS中的许多功能,但它也引入了CVS缺失的新功能。用户现在可以执行原子命令,并能够重命名和移动版本化文件。

SVN于2009年11月成为Apache项目,当时它被Apache Incubator接受。在SVN被引入世界之后,CVS的采用逐渐消失。

相关文章推荐
1.Git和Svn的区别是什么
2.Svn工具怎么安装
相关视频推荐

1.SVN视频教程(传智播客)

Subversion如何运作?

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

要使Subversion工作,SVN设置需要两个主要元素:

1.该服务器,它具有一切源文件的所有版本

2.一个文件的本地副本,这是您的计算机上。

您计算机上的文件称为工作文件。这些是每个用户进行编辑的文件。然后,用户将其更改提交到SVN服务器,该服务器也称为存储库

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

什么是SVN服务器?(什么是Subversion服务器?)

SVN服务器包含所有源文件以及文件的所有版本。在SVN领域,服务器称为存储库。因此,SVN服务器和SVN存储库是一回事。

文件的本地副本(存储在您的计算机上)称为工作副本

SVN是分布式还是集中式?

版本控制系统大致可分为两类:分布式版本控制系统(DVCS)集中式版本控制系统(CVCS)

SVN是一个集中式版本控制系统。

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

使用Helix Core进行可扩展的集中式版本控制系统。或者使用Helix4Git进行基于Git的分布式工作流程。

SVN面临的挑战

SVN有一个繁琐的分支模型

关于SVN最常见的抱怨是它繁琐的分支模型。分支允许您同时处理代码的多个版本。在SVN中,分支被创建为存储库中的目录。许多开发人员不喜欢这种目录结构。但挑战并不止于此。

SVN 1.6版引入了一个名为树冲突的概念。树冲突是由目录结构的变化引起的冲突,并且它们经常发生。由于SVN不允许您在发生树冲突时提交更改,因此这增加了在SVN中实施分支策略的复杂性。

SVN要求您连接到中央回购

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

使用SVN而不与中央回购连接是毫无意义的。例如,如果您进行离线编码 - 例如在航班期间 - 在恢复连接之前,SVN不允许您提交中央存储库。

SVN要求您手动解决冲突

合并是开发人员经常抱怨SVN的另一个大问题。如果您正在使用历史记录来进行一组更改并进行提交,则会进行另一项更改(即线性)并提交,合并将很容易。

当您有两个或更多开发人员在相同的代码库上工作并且您需要合并时,事情会变得复杂。在这种情况下,SVN失败,开发人员需要手动解决冲突,这会浪费数小时的开发人员时间。

为何使用SVN

几年前,Git和其他商业版控制系统已经超越了SVN。但SVN仍有两个原因:成本和惯性

成本: SVN是开源的,这意味着它是“免费的”。

惯性:一旦构建了大型代码库,就很难切换VCS。SVN自2004年以来一直存在,采用它的组织拥有数百万行代码。

以上是SVN是什么的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PHP开发中如何使用SVN进行版本控制 PHP开发中如何使用SVN进行版本控制 Jun 27, 2023 pm 01:39 PM

PHP开发中如何使用SVN进行版本控制

Java SVN:代码仓库的守护者,确保代码稳定性 Java SVN:代码仓库的守护者,确保代码稳定性 Mar 09, 2024 am 09:20 AM

Java SVN:代码仓库的守护者,确保代码稳定性

详解如何安装和设置EclipseSVN插件 详解如何安装和设置EclipseSVN插件 Jan 28, 2024 am 08:42 AM

详解如何安装和设置EclipseSVN插件

用vimdiff替代svn diff:比较代码的工具 用vimdiff替代svn diff:比较代码的工具 Jan 09, 2024 pm 07:54 PM

用vimdiff替代svn diff:比较代码的工具

SVN在CentOS上的安装及命令行安装 SVN在CentOS上的安装及命令行安装 Feb 13, 2024 am 11:24 AM

SVN在CentOS上的安装及命令行安装

svn与vss的区别是什么 svn与vss的区别是什么 Jun 21, 2022 am 11:23 AM

svn与vss的区别是什么

Linux开发者的必备技能:简单掌握SVN版本控制 Linux开发者的必备技能:简单掌握SVN版本控制 Jan 26, 2024 pm 09:54 PM

Linux开发者的必备技能:简单掌握SVN版本控制

PHP入门指南:SVN版本管理 PHP入门指南:SVN版本管理 May 20, 2023 am 08:29 AM

PHP入门指南:SVN版本管理

See all articles