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有一个名为hgview （页面存档备份，存于互联网档案馆）是纯Python编写的替代软件，同时提供GTK和QT界面。 合并用的工具包括（h）gct(Qt)和Meld。 转换插件可以将CVS、Darcs（英语：Darcs）、Git、GNU arch、Monotone、Perforce（英语：Perforce）、GNU Bazaar和Subversion的版本库转换为Mercurial的版本库。 从第6版Mercurial开始支持NetBeans。 TortoiseHg提供了一个面向Windows的基于右键菜单的友好界面，也用于GNOME的Nautilus文件管理器。 以下网站提供免费的Mercurial版本库托管： Bitbucket Google Code JavaForge Project Kenai by Sun Microsystems SourceForge GNU Savannah Alioth by Debian BerliOS 在Mercurial wiki中列出的其他网站 CodePlex （页面存档备份，存于互联网档案馆） 这些项目（部分）使用了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 自由软件主题 版本控制 分布式版本控制 版本控制软件列表 版本控制软件的比较 Matt Mackall, Towards a Better SCM: Revlog and Mercurial （页面存档备份，存于互联网档案馆）, Ottawa Linux Symposium Proceedings, 2006. Bryan O'Sullivan. Mercurial: The Definitive Guide. 2007-01-01 [2009-10-07]. （原始内容存档于2019-10-25）.  Mackall, Matt. Mercurial v0.1 - a minimal scalable distributed SCM. Linux kernel (邮件列表). 2005-04-20 [2009-10-07]. （原始内容存档于2008-10-10）.  Mackall, Matt. Re: Mercurial 0.4b vs git patchbomb benchmark. Linux kernel (邮件列表). 2005-04-29 [2009-10-07]. （原始内容存档于2012-07-09）.  Google Code Blog: Mercurial Now Available to All Open Source Projects. 2009-05-28 [2009-10-07]. （原始内容存档于2012-12-01）.  MercurialEclipse 1.6.0: Enterprise Codebases with Ease. [2010-06-17]. （原始内容存档于2010-05-14）.  一些使用Mercurial的项目. [2009-10-07]. （原始内容存档于2009-04-22）.  J. Paul Reed. Version Control System Shootout Redux Redux. 2007-04-12 [2009-10-07]. （原始内容存档于2009-03-21）.  James Gosling. James Gosling on Open Sourcing Sun's Java Platform Implementations, Part 1. 访谈 with Robert Eckstein. October 2006 [2009-10-07]. （原始内容存档于2009-03-01）.  OpenSolaris SCM Project History. 2006-10-05 [2009-10-07]. （原始内容存档于2009-09-25）.  David Wood. We decided in the end to use Mercurial rather than Git.. 2009-04-06 [2009-05-07]. （原始内容存档于2010-12-06）.  Ian Pratt. mercurial now live. Xen-devel (邮件列表). 2005-07-01 [2009-10-07]. （原始内容存档于2009-02-18）.  Timo Sirainen. CVS to Mercurial switch. Dovecot-news (邮件列表). 2007-05-19 [2009-10-07]. （原始内容存档于2015-09-23）.  Switch to hg.netbeans.org completed. January 2008 [2009-10-07]. （原始内容存档于2012-09-18）.  x265: log. [2014-06-18]. （原始内容存档于2020-11-30）.  （英文）官方Mercurial项目wiki （英文）非官方的Mercurial主页 （页面存档备份，存于互联网档案馆） （英文）Mercurial：权威指南 （页面存档备份，存于互联网档案馆），Bryan O'Sullivan 2009年通过O'Reilly出版，免费在网上发布 Mercurial: an alternative to git from LWN.net TeamWare用户 （页面存档备份，存于互联网档案馆） Google TechTalk on Mercurial （页面存档备份，存于互联网档案馆） Subversion还是CVS、Bazaar或者Mercurial？比较四个开源版本控制系统