Mercurial

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

Mercurial
開發者Matt Mackall
当前版本
  • 6.4rc0 (2023年3月2日;测试版本)[1][2]
  • 6.7.1 (2024年3月21日;穩定版本)[3][4]
源代码库
编程语言PythonC语言
操作系统类Unix, Windows, Mac OS X
类型版本控制
许可协议GPL v2
网站www.mercurial-scm.org

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

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

技术细节

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

文档

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

历史

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

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

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

相关软件

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

其他

代码托管

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

采用Mercurial的项目

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

参见

参考文献

  1. .
  2. .
  3. .
  4. .
  5. Matt Mackall, Towards a Better SCM: Revlog and Mercurial 页面存档备份,存于, Ottawa Linux Symposium Proceedings, 2006.
  6. Bryan O'Sullivan. . 2007-01-01 [2009-10-07]. (原始内容存档于2019-10-25).
  7. Mackall, Matt. . Linux kernel (邮件列表). 2005-04-20 [2009-10-07]. (原始内容存档于2008-10-10).
  8. Mackall, Matt. . Linux kernel (邮件列表). 2005-04-29 [2009-10-07]. (原始内容存档于2012-07-09).
  9. . 2009-05-28 [2009-10-07]. (原始内容存档于2012-12-01).
  10. . [2010-06-17]. (原始内容存档于2010-05-14).
  11. . [2009-10-07]. (原始内容存档于2009-04-22).
  12. J. Paul Reed. . 2007-04-12 [2009-10-07]. (原始内容存档于2009-03-21).
  13. James Gosling. . 访谈 with Robert Eckstein. October 2006 [2009-10-07]. (原始内容存档于2009-03-01).
  14. . 2006-10-05 [2009-10-07]. (原始内容存档于2009-09-25).
  15. David Wood. . 2009-04-06 [2009-05-07]. (原始内容存档于2010-12-06).
  16. Ian Pratt. . Xen-devel (邮件列表). 2005-07-01 [2009-10-07]. (原始内容存档于2009-02-18).
  17. Timo Sirainen. . Dovecot-news (邮件列表). 2007-05-19 [2009-10-07]. (原始内容存档于2015-09-23).
  18. . January 2008 [2009-10-07]. (原始内容存档于2012-09-18).
  19. . [2014-06-18]. (原始内容存档于2020-11-30).

外部链接

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.