`
touchmm
  • 浏览: 1068079 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

分布式版本控制(一)

阅读更多

虽然我使用传统SCM(软件配置管理,或者叫RCS——版本控制系统)软件已经有很多年,从那个垃圾一般的VSS到功能强大的CVS和SVN都用过 一段时间,短则半年(VSS),长则数年(SVN)。但是对于分布式版本控制系统(DRCS),我也是刚接触不久,发现它们的确很不错,相比传统SCM来 说,是一种质的变化。

所谓DRCS是相对于传统集中式的SCM而言的。对于传统SCM来说,Repository是集中在唯一的一个地方, 所有的用户进行commit或update以及其它的相关操作基本上都需要能够直接连接到这个Repository才能进行。这就会存在一些比较麻烦的问 题,就我个人的体会来说,常见的麻烦事在于(以下仅以CVS和SVN为例,至于VSS——不能为rubbish浪费时间):

1、并不是所有的开发者都总能连接到Repository服务器,比如在没有网络连接或是网络连接受限的情况——当然SVN提供的HTTP访问方式部分解决了这种困难,但仍然不够。

2、在团队协作开发中,当变更冲突增加以后,处理起来会比较麻烦。

3、分支管理方面的功能还较弱。

4、安全性问题。不论是用独立服务器方式还是HTTP方式,用户认证方式都相对简单,当然也可以配置得更安全,但比较麻烦。

5、最后一个小问题就是:不论是CVS还是SVN,都会在工作目录的每个子目录里创建一个隐藏目录记录本地状态信息,比较烦人。

而DRCS的目标就是尽可能解决传统SCM存在的不足之处——包括但不限于我上面所说的那些。就我目前试用过的两个DRCS——Bazaar和Mercurial——来说,上面的问题都解决得比较好:

1、都可以在本地提供全部的版本控制功能,可以只在必要的时候合并更新到公共Repository中。

2、因为是针对分布式开发设计,变更合并功能强大。

3、分支管理功能同样强大。

4、Bazaar支持SFTP方式的push,而Mercurial支持SSH方式的push,二者都是基于安全的通讯协议并且使用系统的用户管理机制,在保证安全性的同时保持了使用上的简单性。

5、只在工作目录的顶层生成一个隐藏目录——就是本地Repository,保持了工作目录的清爽。

显然,DRCS天生是为了开源项目而量身定制的——因为开源项目的开发者往往都是在地理上极度分散的,但又需要对源码进行有效的版本管理。但是对于其它的软件项目来说,DRCS也同样是个好东西,特别是其变更合并功能和分支管理功能。

后面我会简单介绍一下我最近试用过的两款比较流行的DRCS——Bazaar和Mercurial。

其实这两款DRCS在命令定义方面都是继承传统的,所以学习起来并没有太大的复杂性,并且具有很多的共性——二者除了程序名不一样以外,常用的命令和参数定义都几乎是完全一样的,甚至一些配置文件都是类似的。

(未完待续)
分享到:
评论

相关推荐

    Git是一个开源的分布式版本控制系统 64位

    作为一个开源的分布式版本控制系统,Git的核心设计理念在于让开发者能够轻松地追踪代码的变化,协作开发,并且能够回溯到任何历史版本,这对于团队合作和代码维护至关重要。 Git的分布式特性意味着每个开发者的本地...

    分布式版本控制系统

    Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。[1] Git的读音为/gɪt/。 Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。[2] Git 是 ...

    分布式版本控制系统-Git详解

    `Git`作为一款优秀的分布式版本控制系统,其设计目标和技术特点使其成为了众多开发者的选择: - **速度**:`Git`的设计注重操作的快速响应,即使是处理大规模项目也能保持高效的性能。 - **简单的设计**:尽管功能...

    分布式版本控制系统_Mercurial

    #### 一、分布式版本控制系统概览 在软件开发领域,版本控制系统的存在至关重要,它不仅帮助开发者追踪代码的变更历史,还支持多人协作,确保代码的一致性和完整性。传统的集中式版本控制系统(Centralized Version ...

    Git安装包(分布式版本控制系统)

    Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    分布式版本控制系统Git教程

    Git 是一个开源的分布式版本控制系统,用于敏捷高效地处 理任何或小或大的项目。Git 易于学习,占地面积小,性能 极快。它具有廉价的本地分支,方便的暂存区域和多个工作 流分支等特性。 本文对 Git 进行详细的语法...

    分布式版本控制系统Git.docx

    - **分布式版本控制系统**:如Git,每个客户端都是一个完整的仓库,包括完整的提交记录和分支管理等,这使得Git在离线状态下也可以进行大部分操作,并且提供了更高的安全性和灵活性。 #### 二、Git简介 Git是由...

    基于C和Shell的开源分布式版本控制系统设计源码 - Git

    本源码提供了一个基于C和Shell的开源分布式版本控制系统的设计。项目包含4467个文件,其中包括1225个Shell文件、897个文本文件、579个C文件、316个H文件、87个Expect文件、72个Test文件、55个PO文件、41个Tcl文件、...

    Git分布式版本控制实现机制探讨.pdf

    Git是一种分布式版本控制系统,它通过特定的机制实现对代码的版本管理。这些机制主要体现在版本库本地化、快照保存、基于内容的寻址、快照合并等方面,下面我将一一介绍这些知识点。 1. 版本控制的重要性:在软件...

    Mercurial(分布式版本控制系统) v5.0.2.zip

    Mercurial是一款专业好用的轻量级分布式版本控制系统。软件采用Python 语言,基于 GNU General Public License (GPL) ,更加方便你的管理和使用,有更优秀的系统,而且对网络的依赖程度也降低了非常多。如果您对目前...

    分布式版本控制系统 版本管理 git的介绍和使用教程

    Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何大小项目的版本管理。以下是一个详细的Git使用教程,包括Git的下载与安装、基本使用、远程仓库操作、分支管理等。 一、Git下载及安装 1.下载Git:访问...

    【版本控制系统】Git分布式版本控制工具详解:软件开发源代码管理与操作指南Git这一分布式版本

    内容概要:本文详细介绍了Git这一分布式版本控制工具的基础知识与操作方法。首先阐述了Git的基本概念,包括本地仓库和远程仓库的区别及常见远程仓库网站。接着讲解了Git的常用命令,如配置全局参数、获取本地仓库的...

    分布式版本控制系统git

    总之,Git作为一款强大的分布式版本控制系统,不仅提供了高效的数据管理,还支持灵活的开发流程。无论是个人项目还是大型团队协作,Git都能提供可靠的支持,确保代码的安全性和版本的可控性。掌握Git是现代开发者的...

    分布式版本控制系统入门.pdf

    分布式版本控制系统(DVCS,Distributed Version Control System)是一种先进的软件工具,用于管理和跟踪文件的变更历史。与传统的集中式版本控制系统(CVCS)不同,DVCS的核心特性是每个开发者的本地工作副本都是一...

    分布式版本控制Tortoisehg使用的简单说明

    **Tortoisehg**是一款基于Mercurial的图形化分布式版本控制工具,它为用户提供了一个简单直观的操作界面,使得即使是初学者也能快速上手。Mercurial是一种强大的分布式版本控制系统,被广泛应用于各种软件开发场景中...

    十四、Git(分布式版本控制)

    Git 是一种高度先进的分布式版本控制系统,由Linux内核开发者Linus Torvalds创建。它的核心优势在于其高效、安全和灵活性。Git 的出现解决了传统集中式版本控制系统如CVS和SVN所面临的一些问题,如网络依赖性、文件...

    Git分布式版本控制系统1

    Git 是一款强大的开源分布式版本控制系统,由 Linux 之父 Linus Torvalds 在 2005 年为管理 Linux 内核开发而创建。相较于传统的集中式版本控制系统如 CVS 和 SVN,Git 提供了一种全新的、分布式的协作模式。 在...

    git分布式版本控制工具安装包

    Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。它可以跟踪文件的变化、记录历史版本、方便团队协作开发以及实现代码的备份和恢复。 分布式架构: 与传统的集中式版本控制系统不同,...

    Git 笔记整理 Git 构建分布式版本控制系统.zip分享给需要的同学

    Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。它是目前世界上最先进的分布式版本控制系统之一。Git的优势在于其分布式架构,每个开发者都有一个完整的代码库,包括完整的历史记录和...

Global site tag (gtag.js) - Google Analytics