
Mercurial
![]() | |
開發者 | Matt Mackall |
---|---|
穩定版本 | 5.6.1 (2020年12月3日 ) |
預覽版本 | 5.6rc0 (2020年10月20日 ) |
源代码库 | ![]() |
编程语言 | Python和C语言 |
操作系统 | 类Unix, Windows, Mac OS X |
类型 | 版本控制 |
许可协议 | GPL v2 |
网站 | www.mercurial-scm.org |
Mercurial是跨平台的分布式版本控制软件,主要由Python语言实现,但也包含用C语言实现的二进制比较工具。Mercurial一开始的主要运行平台是Linux,现在Mercurial已经移植到Windows、Mac OS X和大多数的类Unix系统中。Mercurial主要由命令行程序组成,现在也有了图形用户界面。对Mercurial的所有操作都由用不同的关键字作为参数调用程序“hg”来实现,Hg是参考水银的化学符号而取的名字。
Mercurial的主要设计目标包括高性能、可扩展性、分散性、完全分布式合作开发、能同时高效地处理纯文本和二进制文件,以及分支和合并功能,以此同时保持系统的简洁性[1]。Mercurial也包括一个集成的Web界面。
Mercurial的创建者和主要开发人员是Matt Mackal。其源代码采用GNU通用公共许可证第二版为授权,确保了Mercurial是一个自由软件。
技术细节[编辑]
Mercurial采用SHA-1散列算法来识别修订版本。Mercurial使用一个基于HTTP的协议来接入网络中的版本库,旨在减少往返的提交、连接数和数据传输。Mercurial也可以工作在ssh环境下,其协议和基于HTTP的协议非常相似。
文档[编辑]
Bryan O'Sullivan已写作了一个全面的参考手册:Mercurial:权威指南[2]。该手册根据开放出版许可协议免费提供。
历史[编辑]
Mackall在2005年4月19日第一次发布了Mercurial。[3]其动机是当月Bitmover公司宣布撤销其免费版本的BitKeeper。
2005年时BitKeeper已经被用于Linux内核的项目版本控制。Mackall决定为Linux内核开发写一个分布式的版本控制软件来替代BitKeeper。在该项目启动数天前,Linus Torvalds基於類似的目的開始了另一個現在相當知名的版本控制軟體Git。[4]
Linux内核开发项目决定使用Git而不是Mercurial,但Mercurial也使用于在很多其他的项目中(见下文)。
相关软件[编辑]
- Mercurial图形用户界面有:Hgk(Tcl/Tk)。该程序作为Mercurial的插件而开发,现在被直接包含于正式版本中。界面可以通过命令命令'hg view'来调用(如果安装了该扩展的话)。hgk最初来源于名为gitk的类似工具。hgk有一个名为hgview是纯Python编写的替代软件,同时提供GTK和QT界面。
- 合并用的的工具包括(h)gct(Qt)和Meld。
- 转换插件可以将CVS、GITDarcs、GIT、GNU Arch、Monotone、Perforce、Bazaar和Subversion的版本库转换为Mercurial的版本库。
- 从第6版Mercurial开始支持Netbeans。
- TortoiseHg提供了一个面向Windows的基于右键菜单的友好界面,也用于GNOME的Nautilus文件管理器。
其他[编辑]
代码托管[编辑]
以下网站提供免费的Mercurial版本库托管:
- Bitbucket
- Google Code[5]
- JavaForge [6]
- Project Kenai by Sun Microsystems
- SourceForge
- GNU Savannah
- Alioth by Debian
- BerliOS
- 在Mercurial wiki中列出的其他网站
- CodePlex
采用Mercurial的项目[编辑]
这些项目(部分)使用了Mercurial作为版本控制[7]
参见[编辑]
参考文献[编辑]
- ^ Matt Mackall, Towards a Better SCM: Revlog and Mercurial, Ottawa Linux Symposium Proceedings, 2006.
- ^ Bryan O'Sullivan. Mercurial: The Definitive Guide. 2007-01-01.
- ^ Mackall, Matt. Mercurial v0.1 - a minimal scalable distributed SCM. Linux kernel (邮件列表). 2005-04-20. (原始内容存档于2012-08-05).
- ^ Mackall, Matt. Re: Mercurial 0.4b vs git patchbomb benchmark. Linux kernel (邮件列表). 2005-04-29. (原始内容存档于2012-07-09).
- ^ Google Code Blog: Mercurial Now Available to All Open Source Projects. 2009-05-28. (原始内容存档于2012-12-01).
- ^ MercurialEclipse 1.6.0: Enterprise Codebases with Ease. (原始内容存档于2010-05-14).
- ^ 一些使用Mercurial的项目
- ^ J. Paul Reed. Version Control System Shootout Redux Redux. 2007-04-12. (原始内容存档于2009-03-21).
- ^ James Gosling. James Gosling on Open Sourcing Sun's Java Platform Implementations, Part 1. Interview with Robert Eckstein. October 2006. (原始内容存档于2009-03-01).
- ^ OpenSolaris SCM Project History. 2006-10-05. (原始内容存档于2009-09-25).
- ^ David Wood. We decided in the end to use Mercurial rather than Git.. 2009-04-06 [2009-05-07].
- ^ Ian Pratt. mercurial now live. Xen-devel (邮件列表). 2005-07-01.
- ^ Timo Sirainen. CVS to Mercurial switch. Dovecot-news (邮件列表). 2007-05-19.
- ^ Switch to hg.netbeans.org completed. January 2008.
- ^ x265: log.
外部链接[编辑]
- (英文)官方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?比较四个开源版本控制系统
- 本条目的部分内容翻译自英語維基百科条目Mercurial(版本318417746)並以知识共享-署名-相同方式共享3.0协议授权使用。原文作者列表請參閱其页面历史。
|