Mercurial

維基百科,自由的百科全書
跳至導覽 跳至搜尋
Mercurial
File:New Mercurial logo.svg
開發者Matt Mackall
目前版本6.3.1(2022年11月9日,​3年前​(2022-11-09
預覽版本6.3rc0(2022年10月24日,​3年前​(2022-10-24
原始碼庫
  • {{URL|example.com|可选的显示文本}}
Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
程式語言PythonC語言
引擎
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    作業系統類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
    • 轉換外掛程式可以將CVSDarcs英語DarcsGitGNU archMonotonePerforce英語PerforceGNU BazaarSubversion的版本庫轉換為Mercurial的版本庫。
    • 從第6版Mercurial開始支援NetBeans
    • TortoiseHg提供了一個面向Windows的基於右鍵選單的友好介面,也用於GNOME的Nautilus檔案管理器。

    其他[編輯]

    代碼代管[編輯]

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

    採用Mercurial的專案[編輯]

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

    參見[編輯]

    參考文獻[編輯]

    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 [2009-10-07]. (原始內容存檔於2019-10-25). 
    3. ^ Mackall, Matt. Mercurial v0.1 - a minimal scalable distributed SCM. Linux kernel (郵寄清單). 2005-04-20 [2009-10-07]. (原始內容存檔於2008-10-10). 
    4. ^ Mackall, Matt. Re: Mercurial 0.4b vs git patchbomb benchmark. Linux kernel (郵寄清單). 2005-04-29 [2009-10-07]. (原始內容存檔於2012-07-09). 
    5. ^ Google Code Blog: Mercurial Now Available to All Open Source Projects. 2009-05-28 [2009-10-07]. (原始內容存檔於2012-12-01). 
    6. ^ MercurialEclipse 1.6.0: Enterprise Codebases with Ease. [2010-06-17]. (原始內容存檔於2010-05-14). 
    7. ^ 一些使用Mercurial的项目. [2009-10-07]. (原始內容存檔於2009-04-22). 
    8. ^ J. Paul Reed. Version Control System Shootout Redux Redux. 2007-04-12 [2009-10-07]. (原始內容存檔於2009-03-21). 
    9. ^ James Gosling. James Gosling on Open Sourcing Sun's Java Platform Implementations, Part 1. 與Robert Eckstein的訪談. October 2006 [2009-10-07]. (原始內容存檔於2009-03-01). 
    10. ^ OpenSolaris SCM Project History. 2006-10-05 [2009-10-07]. (原始內容存檔於2009-09-25). 
    11. ^ David Wood. We decided in the end to use Mercurial rather than Git.. 2009-04-06 [2009-05-07]. (原始內容存檔於2010-12-06). 
    12. ^ Ian Pratt. mercurial now live. Xen-devel (郵寄清單). 2005-07-01 [2009-10-07]. (原始內容存檔於2009-02-18). 
    13. ^ Timo Sirainen. CVS to Mercurial switch. Dovecot-news (郵寄清單). 2007-05-19 [2009-10-07]. (原始內容存檔於2015-09-23). 
    14. ^ Switch to hg.netbeans.org completed. January 2008 [2009-10-07]. (原始內容存檔於2012-09-18). 
    15. ^ x265: log. [2014-06-18]. (原始內容存檔於2020-11-30). 

    外部連結[編輯]