跳转到内容

Mercurial

维基百科,自由的百科全书

这是本页的一个历史版本,由Esabella留言 | 贡献2010年6月17日 (四) 10:38 代码托管编辑。这可能和当前版本存在着巨大的差异。

Mercurial
開發者Matt Mackall
当前版本1.5.1(2010年4月1日 (2010-04-01)
源代码库 編輯維基數據鏈接
编程语言Python and C
操作系统Unix-like, Windows, Mac OS X
类型Revision control
许可协议GPL v2
网站mercurial.selenic.com

Mercurial 是一个跨平台分布式版本控制软件。Mercurial主要由Python语言实现,不过也包含一个用C实现的二进制比较工具。Mercurial一开始的主要运行平台是Linux。现在Mercurial已经被移植到WindowsMac 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

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
  • 转换插件可以将CVSGITDarcsGITGNU ArchMonotonePerforceBazaarSubversion的版本库转换为Mercurial的版本库。
  • 从第6版Mercurial开始支持Netbeans
  • TortoiseHg提供了一个面向Windows的基于右键菜单的友好界面,也用于 GNOME的 Nautilus文件管理器。

其他

代码托管

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

采用Mercurial的项目

这些项目(部分)使用了Mercurial作为版本控制[7]

Python的开发人员宣布将从Subversion过渡到Mercurial。不过并没有确定转换的时间[29],因为过渡小组在等待hgsubversion的开发。[15][16]

参见

参考文献

  1. ^ Matt Mackall, Towards a Better SCM: Revlog and Mercurial, Ottawa Linux Symposium Proceedings, 2006.
  2. ^ Bryan O'Sullivan. Mercurial: The Definitive Guide. 2007-01-01. 
  3. ^ Mackall, Matt. Mercurial v0.1 - a minimal scalable distributed SCM. Linux kernel (邮件列表). 2005-04-20. 
  4. ^ Mackall, Matt. Re: Mercurial 0.4b vs git patchbomb benchmark. Linux kernel (邮件列表). 2005-04-29. 
  5. ^ Google Code Blog: Mercurial Now Available to All Open Source Projects. 2009-05-28. 
  6. ^ MercurialEclipse 1.6.0: Enterprise Codebases with Ease. 
  7. ^ 一些使用Mercurial的项目
  8. ^ J. Paul Reed. Version Control System Shootout Redux Redux. 2007-04-12. 
  9. ^ James Gosling. James Gosling on Open Sourcing Sun's Java Platform Implementations, Part 1. 访谈 with Robert Eckstein. 2006.  已忽略未知参数|month=(建议使用|date=) (帮助)
  10. ^ OpenSolaris SCM Project History. 2006-10-05. 
  11. ^ David Wood. We decided in the end to use Mercurial rather than Git.. 2009-04-06 [2009-05-07]. 
  12. ^ Ian Pratt. mercurial now live. Xen-devel (邮件列表). 2005-07-01. 
  13. ^ Timo Sirainen. CVS to Mercurial switch. Dovecot-news (邮件列表). 2007-05-19. 
  14. ^ Switch to hg.netbeans.org completed. 2008.  已忽略未知参数|month=(建议使用|date=) (帮助)
  15. ^ Guido van Rossum. And the winner is.... Python-Dev (邮件列表). 2009-03-30. 
  16. ^ Python PEP 385 with Timeline TBD (截至2009年9月 (2009-09)

外部链接