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

Mercurial

維基百科,自由的百科全書
前往: 導覽搜尋
Mercurial
New Mercurial logo.svg
開發者 Matt Mackall
穩定版本 4.3.1(2017年8月10日,​2個月前​(2017-08-10
預覽版本 4.3-rc(2017年7月19日,​3個月前​(2017-07-19
程式語言 PythonC語言
作業系統 類Unix, Windows, Mac OS X
類型 版本控制
授權條款 GPL v2
網站 www.mercurial-scm.org
原始碼庫 www.mercurial-scm.org/repo/hg-stable

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。不過並沒有確定轉換的時間,因為過渡小組在等待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協定授權使用。原文作者列表請參閱其頁面歷史