本頁使用了標題或全文手工轉換

Mercurial

維基百科,自由的百科全書
跳至導覽 跳至搜尋
Mercurial
New Mercurial logo.svg
開發者 Matt Mackall
穩定版本
5.1
( 2019年8月1日,​48天前​(2019-08-01
預覽版本
5.1rc0
( 2019年7月22日,​58天前​(2019-07-22
原始碼庫 編輯維基數據連結
程式語言 PythonC語言
作業系統 類Unix, Windows, Mac OS X
類型 版本控制
授權條款 GPL v2
網站 www.mercurial-scm.org

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

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
  • 轉換外掛程式可以將CVSGITDarcsGITGNU ArchMonotonePerforceBazaarSubversion的版本庫轉換為Mercurial的版本庫。
  • 從第6版Mercurial開始支援Netbeans
  • TortoiseHg提供了一個面向Windows的基於右鍵選單的友好介面,也用於GNOME的Nautilus檔案管理器。

其他[編輯]

程式碼代管[編輯]

以下網站提供免費的Mercurial版本庫代管:

採用Mercurial的專案[編輯]

這些專案(部分)使用了Mercurial作為版本控制[7]

Python的開發人員宣布將從Subversion過渡到Mercurial。不過並沒有確定轉換的時間,因為過渡小組在等待hgsubversion的開發。[16][17]

參見[編輯]

參考文獻[編輯]

  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. (原始內容存檔於2012-08-05). 
  4. Mackall, Matt. Re: Mercurial 0.4b vs git patchbomb benchmark. Linux kernel (郵寄清單). 2005-04-29. (原始內容存檔於2012-07-09). 
  5. Google Code Blog: Mercurial Now Available to All Open Source Projects. 2009-05-28. (原始內容存檔於2012-12-01). 
  6. MercurialEclipse 1.6.0: Enterprise Codebases with Ease. (原始內容存檔於2010-05-14). 
  7. 一些使用Mercurial的專案
  8. J. Paul Reed. Version Control System Shootout Redux Redux. 2007-04-12. (原始內容存檔於2009-03-21). 
  9. James Gosling. James Gosling on Open Sourcing Sun's Java Platform Implementations, Part 1 (訪談者 : Robert Eckstein). October 2006(原出處存檔於2009-03-01). 
  10. OpenSolaris SCM Project History. 2006-10-05. (原始內容存檔於2009-09-25). 
  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. January 2008. 
  15. x265: log. 
  16. Guido van Rossum. And the winner is.... Python-Dev (郵寄清單). 2009-03-30. 
  17. Python PEP 385 with Timeline TBD (截至2009年9月 (2009-09)

外部連結[編輯]

本條目的部分內容翻譯自英語維基百科條目Mercurial(版本318417746)並以創用CC-姓名標示-相同方式分享3.0協定授權使用。原文作者列表請參閱其頁面歷史