Mercurial ist ein verteiltes Revisionskontrollwerkzeug für Softwareentwickler. Es wird auf Microsoft Windows- und Unix-ähnlichen Systemen wie FreeBSD, macOS und Linux unterstützt.
Zu den Hauptzielen von Mercurial gehören hohe Leistung und Skalierbarkeit, Dezentralisierung, vollständig verteilte kollaborative Entwicklung, robuste Handhabung von Nur-Text- und Binärdateien sowie erweiterte Verzweigungs- und Zusammenführungsfunktionen, die konzeptionell einfach bleiben -Schnittstelle. Mercurial hat auch Schritte unternommen, um Benutzern von anderen Versionskontrollsystemen, insbesondere Subversion, den Übergang zu erleichtern. Mercurial ist in erster Linie ein Befehlszeilenprogramm, jedoch sind Erweiterungen für die grafische Benutzeroberfläche verfügbar, z. TortoiseHg und mehrere IDEs bieten Unterstützung für die Versionskontrolle mit Mercurial. Alle Operationen von Mercurial werden als Argumente für das Treiberprogramm hg (ein Verweis auf Hg - das chemische Symbol des Elements Quecksilber) aufgerufen.
Matt Mackall hat Mercurial gegründet und war bis Ende 2016 als leitender Entwickler tätig. Mercurial wird als freie Software unter den Bedingungen der GNU GPL v2 (oder einer späteren Version [4]) veröffentlicht. Es wird hauptsächlich mit der Programmiersprache Python implementiert, enthält jedoch eine in C geschriebene binäre diff-Implementierung.
Geschichte [ edit ]
Mackall kündigte am 19. April 2005 erstmals Mercurial an. [1] Der Anstoß dazu war die Ankündigung, dass Bitmover die kostenlose Version zurückzog von BitKeeper.
BitKeeper wurde für die Versionskontrollanforderungen des Linux-Kernelprojekts verwendet. Mackall entschied sich für ein verteiltes Versionskontrollsystem als Ersatz für die Verwendung mit dem Linux-Kernel. Dieses Projekt begann wenige Tage nachdem das inzwischen bekannte Git-Projekt von Linus Torvalds mit ähnlichen Zielen initiiert worden war. [5]
Das Linux-Kernel-Projekt beschloss, Git anstelle von Mercurial zu verwenden, aber Mercurial ist es wird jetzt von vielen anderen Projekten verwendet (siehe unten). "Git vs. Mercurial" ist zu einem der heiligen Kriege der Hackerkultur geworden. [6]
In einer Antwort auf der Mercurial-Mailingliste erklärte Matt Mackall, wie der Name "Mercurial" gewählt wurde:
| “ | Kurz vor der ersten Veröffentlichung las ich einen Artikel über das fortlaufende Bitkeeper-Debakel, in dem Larry McVoy als "mercurial" (im Sinne von "wankelmütig") beschrieben wurde. Angesichts der vielfältigen Bedeutungen, der bequemen Abkürzung und der guten Übereinstimmung mit meinem bereits bestehenden Namensschema (siehe meine E-Mail-Adresse) wurde sofort geklickt. Mercurial wird daher zu Ehren von Larry benannt. Ich weiß nicht, ob das auch für Git gilt. [7][8] |
Im Jahr 2013 übernahm Facebook Mercurial und begann mit der Skalierung, um das große, vereinheitlichte Code-Repository zu verwalten. [9]
Mercurial verwendet SHA-1-Hashes, um Revisionen zu identifizieren. Für den Repository-Zugriff über ein Netzwerk verwendet Mercurial ein HTTP-basiertes Protokoll, mit dem Round-Trip-Anforderungen, neue Verbindungen und übertragene Daten reduziert werden sollen. Mercurial kann auch über SSH arbeiten, wobei das Protokoll dem HTTP-basierten Protokoll sehr ähnlich ist. Standardmäßig wird eine 3-Wege-Zusammenführung verwendet, bevor externe Zusammenführungswerkzeuge aufgerufen werden.
Abbildung 1 zeigt einige der wichtigsten Operationen in Mercurial und ihre Beziehungen zu Mercurials Konzepten.
Adoption [ edit ]
Obwohl Mercurial nicht für die Verwaltung der Linux-Kernelquellen ausgewählt wurde, wurde es angenommen von mehreren Organisationen, einschließlich Facebook, [10] des W3C und Mozilla. Facebook verwendet die Programmiersprache Rust zum Schreiben von Mononoke [11][12]einem Mercurial-Server, der speziell zur Unterstützung großer Repositorys für mehrere Projekte entwickelt wurde.
Mercurial-Server und Repository-Management [ edit ]
Quellcode-Hosting [ bearbeiten
Die folgenden Websites bieten kostenloses Quellcode-Hosting für Mercurial Repositories:
Open-Source-Projekte unter Verwendung von Mercurial [ edit ]
Einige Projekte, die das von Mercurial vertriebene RCS verwenden: [19]
Siehe auch [ edit
] Referenzen [ edit ]
- ^ a Mackall, Matt (2005-04-20). "Mercurial v0.1 - ein minimal skalierbarer verteilter SCM". Linux-Kernel (Mailing-Liste).
- ^ "What's new", Mercurial (Wiki) abgerufen 1. Februar 2019 [19659043] ^ Mackall, Matthew 'Matt' (2006), "Auf dem Weg zu einem besseren SCM: Revlog und Mercurial" (PDF) Linux-Symposiumsverfahren (PDF) Ottawa: Mercurial-scm.org .
- ^ "Relicensing", Mercurial (Wiki), Mercurial-scm.org .
- Mackall, Matt (29. April 2005). "Re: Mercurial 0.4b vs. Git Patchbomb Benchmark". Linux-Kernel (Mailing-Liste). Nach dem Original am 9. Juli 2012 archiviert.
- ^ "Quellcode mit Mercurial verwalten".
Mercurial- und Git-Fans diskutieren auch gerne die Lernkurve, die Vorteile und die Verwendbarkeit des Befehlssatzes jedes VCS-Systems. Der Weltraum verhindert diese Diskussion hier, aber eine Websuche zu diesem Thema wird viel interessantes Lesematerial liefern.
- ^ Mackall, Matt (2012-02-15). "Warum hat Matt den Namen Mercurial gewählt?" Mercurial (Mailing-Liste) . 7. Juni 2016 .
- ^ Torvalds hat gesagt: "Ich bin ein egoistischer Bastard, daher nenne ich alle meine Projekte nach mir selbst. Zuerst Linux, jetzt git
- ^ Goode, Durham; Agarwal, Siddharth. "Mercurial bei Facebook skalieren". Facebook-Code . Facebook . 13. Oktober 2015 .
- ^ "Scaling Mercurial at Facebook". 7. Januar 2014.
- ^ "Ein Mercurial-Versionskontrollserver, der speziell für die Unterstützung großer Monorepos .: facebookexperimental / mononoke" konzipiert ist. 31. Januar 2019 - via GitHub.
- ^ "Google Groups". groups.google.com .
- ^ "Git, Mercurial & Subversion-Hosting". Merkmale . Codebase HQ. 2013-03-04.
- ^ "Welcome [Puszcza]". ps.gnu.org.ua .
- ^ "Beginnen wir mit der Entwicklung von OSS mit Mercurial (Hg) - OSDN". osdn.net .
- ^ "Try Helix TeamHub Free | Perforce". info.perforce.com .
- ^ "TuxFamily: Free Hosting für kostenlose Personen". www.tuxfamily.org .
- ^ "Hosting", Mercurial (Wiki), Mercurial-scm.org .
- ^ "Einige Projekte, die Mercurial verwenden", Mercurial (Wiki), Mercurial-scm.org .
- ^ "Source", Adblock + . ^ "Quellcode-Repositories von Subversion zu Mercurial migriert". Coin3D (Nachrichten). 2010-02-27.
- ^ "Mercurial Work Flow" (Wiki). Illumos 2011-03-13.
- ^ Reed, J. Paul (2007-04-12). "Versionskontrollsystem Shootout Redux Redux".
- ^ James Gosling (Oktober 2006). "Open Sourcing Suns Java-Plattformimplementierungen, Teil 1" (Interview). Interview mit Robert Eckstein. Sonne. Aus dem Original am 1. März 2009 archiviert. CS1-Wartung: Unfit-URL (link)
Externe Links [ edit
| Nachschlagen mercurial in Wiktionary, das freie Wörterbuch. |
| Wikimedia Commons hat Medien in Bezug auf Mercurial . |
- Offizielle Website
- ändern O'Sullivan, Bryan (2009), Mercurial: Der endgültige Leitfaden (Buch), O'Reilly online frei verfügbar
- "Mercurial: Eine Alternative zum Git", LWN
- Ein Beispiel-basiertes Mercurial-Tutorial (PDF) SE: Jemander das sowohl die grundlegende als auch die fortgeschrittene Verwendung abdeckt
- "Mercurial", TechTalk (Video) Google
- "Subversion oder CVS, Bazaar oder Mercurial? Vier Open-Source-Versionskontrollsysteme im Vergleich", Java World Sep 2007
- . Spols ky, Joel, Mercurial-Tutorial
- Mackall, Matt, "FLOSS Podcast", Diese Woche in Tech
- Liste der Projekte, die Mercurial aus dem Mercurial-Wiki
No comments:
Post a Comment