本文概述
版本控制系统是一种软件, 该软件可以跟踪一段时间内对一个文件或一组文件的更改, 以便你以后可以调用特定的版本。它还允许你与其他程序员一起工作。
版本控制系统是一组软件工具, 可帮助团队管理源代码中的更改。它使用一种特殊的数据库来跟踪对代码的每次修改。
开发人员可以将早期版本的代码与早期版本的代码进行比较, 以解决错误。
版本控制系统的好处
版本控制系统对软件开发非常有帮助和有益;不使用版本控制来开发软件是不安全的。它提供了不确定性的备份。版本控制系统为开发人员提供了快速的界面。它还允许软件团队根据团队规模(包括更多开发人员)来保留效率和敏捷性。
拥有版本控制系统的一些关键好处如下。
- 完整的文件更改历史记录
- 同时工作
- 分支与合并
- 可追溯性
版本控制系统的类型
- 本地化版本控制系统
- 集中式版本控制系统
- 分布式版本控制系统
本地化版本控制系统
本地化版本控制方法由于其简单性而成为常用方法。但是这种方法导致更高的错误机会。用这种方法, 你可能会忘记你所在的目录, 并意外地将其写入错误的文件或将其复制到不需要的文件上。
为了解决此问题, 程序员开发了具有简单数据库的本地VCS。这样的数据库将对文件的所有更改都保留在修订控制下。本地版本控制系统保留文件的本地副本。
本地VCS的主要缺点是它具有单点故障。
集中式版本控制系统
开发人员需要与其他系统上的其他开发人员进行协作。在这种情况下, 本地化版本控制系统失败。为了解决这个问题, 开发了集中版本控制系统。
这些系统具有包含版本文件的单个服务器, 以及一些用于从中央位置检出文件的客户端。
集中式版本控制系统具有许多优点, 尤其是相对于本地VCS。
- 系统上的每个人都具有有关其他人在项目上正在进行的工作的信息。
- 管理员可以控制其他开发人员。
- 使用集中式版本控制系统比本地化版本控制系统更容易。
- 本地版本控制系统通过服务器软件组件来促进工作, 该服务器软件组件存储和管理文件的不同版本。
它也具有与本地版本控制系统相同的缺点, 即它也具有单点故障。
分布式版本控制系统
集中式版本控制系统使用中央服务器来存储所有数据库和团队协作。但是由于单点故障(这意味着中央服务器出现故障), 开发人员不喜欢它。接下来, 开发了分布式版本控制系统。
在分布式版本控制系统(例如Git, Mercurial, Bazaar或Darcs)中, 用户具有存储库的本地副本。因此, 客户端不仅可以检出文件的最新快照, 甚至可以完全镜像存储库。本地存储库包含主存储库中存在的所有文件和元数据。
DVCS允许自动管理分支和合并。除了推动和拉动, 它可以加快大多数操作的速度。 DVCS增强了脱机工作能力, 并且不依赖单个位置进行备份。如果任何服务器停止并且其他系统正在通过它进行协作, 则该服务器可以恢复任何客户端存储库。每次签出都是所有数据的完整备份。
这些系统不必依赖中央服务器来存储项目文件的所有版本。
集中版本控制系统与分布式版本控制系统的区别
集中版本控制系统是使用客户端/服务器体系结构的系统。在集中式版本控制系统中, 一个或多个客户端系统直接连接到中央服务器。相反, 分布式版本控制系统是使用对等体系结构的系统。
同时使用版本控制系统有很多优点和缺点。让我们看一下集中式和分布式版本控制系统之间的一些重要区别。
集中式版本控制系统 | 分布式版本控制系统 |
---|---|
在CVCS中, 资源库放置在一个地方, 并将信息传递给许多客户端。 | 在DVCS中, 每个用户都有一个本地存储库副本, 以代替服务器端的中央存储库。 |
它基于客户端-服务器方法。 | 它基于客户端-服务器方法。 |
它是基于中央存储库概念的最直接的系统。 | 它是灵活的, 并且出现了每个人都有其存储库的概念。 |
在CVCS中, 服务器为全球所有客户端提供最新代码。 | 在DVCS中, 每个用户都可以签出代码快照, 并且可以完全镜像中央存储库。 |
CVCS易于管理, 并且对用户以及服务器从一处进行的访问具有额外的控制权。 | 与CVCS相比, DVCS快速进行, 因为你不必为每个命令都与中央服务器进行交互。 |
CVCS的流行工具是SVN(Subversion)和CVS。 | DVCS的流行工具是Git和Mercurial。 |
CVCS对初学者来说很容易理解。 | DVCS对于初学者来说有一些复杂的过程。 |
如果服务器发生故障, 则任何系统都无法从另一个系统访问数据。 | 如果任何服务器发生故障并且其他系统正在通过该服务器进行协作, 则该服务器可以还原任何客户端存储库 |
评论前必须登录!
注册