Mercurial

Mercurial是跨平台的分布式版本控制软件,主要由Python语言实现,但也包含用C语言实现的二进制比较工具。Mercurial一开始的主要运行平台是Linux,现在Mercurial已经移植到Windows、Mac OS X和大多数的类Unix系统中。Mercurial主要由命令行程序组成,现在也有了图形用户界面。对Mercurial的所有操作都由用不同的关键字作为参数调用程序“hg”来实现,Hg是参考水银的化学符号而取的名字。

Mercurial的主要设计目标包括高性能、可扩展性、分散性、完全分布式合作开发、能同时高效地处理纯文本和二进制文件,以及分支和合并功能,以此同时保持系统的简洁性。Mercurial也包括一个集成的Web界面。

Mercurial的创建者和主要开发人员是Matt Mackal。其源代码采用GNU通用公共许可证第二版为授权,确保了Mercurial是一个自由软件。

技术细节
Mercurial采用SHA-1散列算法来识别修订版本。Mercurial使用一个基于HTTP的协议来接入网络中的版本库,旨在减少往返的提交、连接数和数据传输。Mercurial也可以工作在ssh环境下,其协议和基于HTTP的协议非常相似。

文档
Bryan O'Sullivan已写作了一个全面的参考手册:Mercurial:权威指南。该手册根据开放出版许可协议免费提供。

历史
Mackall在2005年4月19日第一次发布了Mercurial。其动机是当月Bitmover公司宣布撤销其免费版本的BitKeeper。

2005年时BitKeeper已经被用于Linux内核的项目版本控制。Mackall决定为Linux内核开发写一个分布式的版本控制软件来替代BitKeeper。在该项目启动数天前,Linus Torvalds基於類似的目的開始了另一個現在相當知名的版本控制軟體Git。

Linux内核开发项目决定使用Git而不是Mercurial,但Mercurial也使用于在很多其他的项目中(见下文)。

相关软件
Mercurial图形用户界面有:Hgk*(Tcl/Tk)。该程序作为Mercurial的插件而开发,现在被直接包含于正式版本中。界面可以通过命令命令'hg view'来调用(如果安装了该扩展的话)。hgk最初来源于名为gitk的类似工具。hgk有一个名为[http://www.logilab.org/project/name/hgview hgview] 是纯Python编写的替代软件,同时提供GTK和QT界面。
合并用的工具包括(h)gct(Qt)和Meld
*转换插件可以将CVS、、Git、GNU arch、Monotone、、GNU Bazaar和Subversion的版本库转换为Mercurial的版本库。
*从第6版Mercurial开始支持NetBeans。
*TortoiseHg提供了一个面向Windows的基于右键菜单的友好界面,也用于GNOME的Nautilus文件管理器。

其他
代码托管
以下网站提供免费的Mercurial版本库托管:

采用Mercurial的项目
这些项目(部分)使用了Mercurial作为版本控制

  • Mozilla
  • OpenJDK
  • OpenSolaris
  • Symbian OS
  • The Xen hypervisor
  • Adblock Plus
  • Adium
  • Aldrin
  • Audacious
  • CubicWeb
  • Dovecot IMAP server
  • GNU Octave
  • Growl
  • LinuxTV/Video4Linux
  • LuxRender 3D Render Engine
  • MoinMoin wiki software
  • Mutt (email client)
  • Netbeans
  • NxOS
  • Nuxeo
  • SAGE
  • x265

参见
*版本控制
*分布式版本控制
*版本控制软件列表
*版本控制软件的比较

参考文献
外部链接
*[https://web.archive.org/web/20091006231438/http://mercurial.selenic.com/wiki 官方Mercurial项目wiki]
*[http://hg-scm.org/ 非官方的Mercurial主页]
*[http://hgbook.red-bean.com/ Mercurial:权威指南] ,Bryan O'Sullivan 2009年通过O'Reilly出版,免费在网上发布
*Mercurial: an alternative to git from LWN.net
*[http://genunix.org/wiki/index.php/Mercurial_for_TeamWare_users TeamWare用户]
*[http://video.google.com/videoplay?docid=-7724296011317502612 Google TechTalk on Mercurial]
*[https://web.archive.org/web/20130603051821/http://www.javaworld.com/javaworld/jw-09-2007/jw-09-versioncontrol.html?page=1 Subversion还是CVS、Bazaar或者Mercurial?比较四个开源版本控制系统]

评论 (0)

  • 还没有评论,来抢沙发吧。