分布式版本控制系统_Mercurial.pdf
文本预览下载声明
分布式版本控制系统
——Mercurial
一、分布式版本控制系统介绍
(1)CVCS 与 DVCS
Centralized Version Control Systems 集中式版本控制系统
Distributed Version Control Systems 分布式版本控制系统
分布式版本控制 (DVCS) 是一种不需要中心服务器的管理文件版本的方
法,但是它也可以使用中心服务器。更改可以被合并到 DVCS 的任何其他用户
的系统中,因此可以实现非常灵活的工作流。DVCS 的两个主要优点是:它比
集中的版本控制更灵活,因为它除了支持传统的(集中式)工作流,还支持其他
各种工作流;它比集中式服务器快得多,因为大多数操作在客户机本地进行,而
不需要网络操作。
在 DVCS 和集中式版本控制系统之间有三个关键差异。第一个差异是,
DVCS 通过本地提交支持离线工作,这是由 DVCS 的操作方式决定的。这与集
中式版本控制完全不同,集中式版本控制要求通过到中心服务器的连接执行所有
操作。这种灵活性让开发人员在飞机上也能够像在办公室中一样轻松地工作,可
以一次又一次地进行提交。
第二个差异是 DVCS 比集中式系统更灵活,因为 DVCS 支持许多不同类
型的工作流,从传统的集中式工作流到纯粹的特殊工作流,再到特殊工作流和集
中式工作流的组合。这种灵活性允许通过电子邮件、对等网络和开发团队喜欢的
任何方式进行开发。
第三个差异是 DVCS 比集中式版本控制系统快得多,因为大多数操作在客
户机上进行,速度非常快。另外,在需要进行推(push )操作(与另一个节点
通信)时,速度也更快,因为两个客户机机器上都有完整的元数据。速度差异相
当显著,根据使用本地存储库还是网络存储库,DVCS 比 Subversion 快大约
3-10 倍。
(2)分布式版本控制工作流
①Partner 工作流。按照 Partner 工作流,一个开发人员启动一个项目,然
后进行分支。然后,在不同开发人员工作的分支之间来回合并更改。
②通过本地提交使用集中式服务器。在这种工作流中,开发人员的工作方式
与使用集中式 Subversion 存储库时非常相似,但是他们进行本地提交,然
后把最终更改推到集中式服务器。这种工作流有许多变体,包括与 Partner
工作流结合使用。重要的是,可以采用许多种工作方式,通过使用 DVCS ,
可以灵活地选择最适合自己的工作方式。
二、Mercurial - 分布式版本控制系统
(1) Mercurial 简介
Mercurial 是一种轻量级分布式版本控制系统,采用 Python 语言实现,易
于学习和使用,扩展性强。其是基于 GNU General Public License (GPL) 授权的
开源项目。相对于传统的集中式 Subversion 版本控制,具有如下优点:
更轻松的管理。传统的版本控制系统使用集中式的 repository ,一些和
repository 相关的管理就只能由管理员一个人进行。由于采用了分布式的模型,
Mercurial 中就没有这样的困扰,每个用户管理自己的 repository ,管理员只需协
调同步这些 repository 。
更健壮的系统。分布式系统比集中式的单服务器系统更健壮,单服务器系统
一旦服务器出现问题整个系统就不能运行了,分布式系统通常不会因为一两个节
点而受到影响。
对网络的依赖性更低。由于同步可以放在任意时刻进行,Mercurial 甚至可
以离线进行管理,只需在有网络连接时同步。
(2)
显示全部