Quecksilber
![]() | |
Entwickler (en) | Olivia Mackall[a] |
---|---|
Erstveröffentlichung | 19. April 2005[1] |
Stabile Version | 6.2.1[2] ![]() |
Repository | |
Geschrieben in | Python, C, und Rost[3] |
Betriebssystem | Unix-artig, Fenster, Mac OS |
Typ | Versionskontrolle |
Lizenz | GPL-2.0-or-Later |
Webseite | www![]() |
Quecksilber ist ein Distributed Revision Control Werkzeug für Softwareentwickler. Es wird unterstützt Microsoft Windows und Unix-artig Systeme wie z. Freebsd, Mac OS, und Linux.
Zu den wichtigsten Designzielen von Mercurial gehören hohe Leistung und Skalierbarkeit, Dezentralisierung, vollständig verteilte kollaborative Entwicklung, robuster Handhabung beider einfacher Text und Binärdateienund fortschrittliche Verzweigungs- und Zusammenführungsfunktionen, während sie konzeptionell einfach bleiben.[4] Es enthält ein integriertes Web-Schnitt. Mercurial hat auch Schritte unternommen, um den Übergang für Benutzer anderer Versionskontrollsysteme insbesondere zu erleichtern Subversion. Quecksilber ist in erster Linie a Befehlszeile angetriebenes Programm, aber grafische Benutzeroberfläche Erweiterungen sind verfügbar, z. TortoiseHgund mehrere Ides Bieten Sie Unterstützung für die Versionskontrolle mit Mercurial an. Alle Operationen von Mercurial werden als Argumente an sein Fahrerprogramm angerufen Hg
(Ein Hinweis auf Hg - die Chemisches Symbol des Elements Merkur).
Olivia Mackall[a] entstanden Mercurial und diente bis Ende 2016 als Hauptentwickler. Mercurial wird als veröffentlicht als gratis Software unter dem GPL-2.0-or-Later Lizenz.[6] Es wird hauptsächlich mit dem implementiert Python -Programmiersprache, aber ein binär diff Implementierung geschrieben in C.
Geschichte
Mackall kündigte Mercurial am 19. April 2005 erstmals an.[1] Der Anstoß dafür war die Ankündigung Anfang dieses Monats von Bitmover dass sie die freie Version von zurückzog Bitkeeper wegen der Entwicklung von SourcePuller.
Bitkeeper war für die verwendet worden Versionskontrolle Anforderungen der Linux Kernel Projekt. Mackall beschloss, ein verteiltes Versionskontrollsystem als Ersatz für die Verwendung mit dem Linux -Kernel zu schreiben. Dieses Projekt begann einige Tage nach dem jetzt bekannten Git Das Projekt wurde von initiiert von Linus Torvalds mit ähnlichen Zielen.[7]
Das Linux -Kernel -Projekt entschied sich für die Verwendung Git eher als mercurial, aber mercurial wird jetzt von vielen anderen Projekten verwendet (siehe unter).
In einer Antwort auf die Mercurial Mailingliste erklärte Olivia Mackall, wie der Name "Mercurial" ausgewählt wurde:
Kurz vor der ersten Veröffentlichung habe ich einen Artikel über das laufende Bitkeeper -Debakel gelesen, das beschrieben wurde Larry McVoy als Quecksilber (im Sinne von 'Laune'). Angesichts der vielfältigen Bedeutungen, der praktischen Abkürzung und der guten Passform zu meinem bereits bestehenden Namensschema (siehe meine E-Mail-Adresse) klickte es sofort. Mercurial wird somit zu Larrys Ehre benannt. Ich weiß nicht, ob das gleiche für Git gilt.[8][9]
Hochkarätige Projekte wie die OpenJDK in der Vergangenheit Quecksilber verwendet haben,[10] Obwohl der OpenJDK nicht mehr ab Java 16 tut.
Entwurf
Mercurial verwendet SHA-1 Hashes, um Revisionen zu identifizieren. Für den Repository -Zugriff über ein Netzwerk verwendet Mercurial eine Http-Basierendes Protokoll, mit dem Roundtrip-Anfragen, neue Verbindungen und übertragene Daten reduziert werden sollen. Quecksilber kann auch überarbeiten Ssh wobei das Protokoll dem HTTP-basierten Protokoll sehr ähnlich ist. Standardmäßig verwendet es a 3-Wege-Zusammenführung Bevor Sie externe Zusammenführungswerkzeuge aufrufen.
Verwendungszweck
Abbildung 1 zeigt einige der wichtigsten Operationen in Merkurial und ihre Beziehungen zu den Konzepten von Mercurial.

Annahme
Obwohl Merkurial nicht für die Verwaltung der Linux -Kernelquellen ausgewählt wurde, wurde es von mehreren Organisationen, einschließlich Facebook,[11] das W3c, und Mozilla. Facebook nutzt die Rost -Programmiersprache Mononoke schreiben,[12][13] Ein Mercurial-Server, der speziell für die Unterstützung großer Multi-Project-Repositorys entwickelt wurde.
Im Jahr 2013 übernahm Facebook Merkurial und begann mit der Arbeit mit der Skalierung ihres großen, einheitlichen Code -Repositorys.[14]
Google verwendet auch Mercurial-Client als Front-End auf seinem Cloud-basierten Piper-Monorepo-Back-End.[15]
Bit Bucket kündigte an, dass seine webbasierten Versionskontrolldienste im Juni 2020 die Unterstützung für Mercurial beenden würden (dann bis Juli 2020).[16] Erklären, dass "weniger als 1% der neuen Projekte sie verwenden, und Entwicklerumfragen zeigten, dass 90% der Entwickler Git verwenden".[17]
Quecksilberserver und Repository -Management
- Heptapod, a Gitlab Gabel für Mercurial durch Oktobus
- Gnu octave [1] Für Oktave und verwandte Software
- Kallithea, a GPLV3 Gabel von Rhodecode
- Ofen von Fog Creek -Software
- Phabricator durch Phacility
- Rhodecode durch Rhodecode Inc.
Quellcode -Hosting
Die folgenden Websites bieten ein kostenloses Quellcode -Hosting für Quecksilberrepositories:
- Bit Bucket durch Atlassian (veraltet ab Februar 2020; schreibgeschützte nur seit Juli 2020)[17]
- Codebasis[18]
- Fusionforge
- Gnu octave Für Oktave-bezogene Software und Pakete[2]
- Gnu Savannah durch FSF
- Heptapod
- Mozdev
- OSDN[19]
- Andere[20]
- Perforce[21]
- Puszcza[22] (Eine Schwester -Site von GNU Savannah, die in der Ukraine veranstaltet wird)
- SourceForge
- SourceHut
- Tuxfamilie[23]
Open Source -Projekte mit Merkurial
Einige Projekte, die die mercurial verteilten RCs verwenden:[24]
Siehe auch
- Vergleich der Versionskontrollsoftware
- Verteilte Versionskontrolle
- Liste der Versionskontrollsoftware
Anmerkungen
Verweise
- ^ a b Mackall, Matt (20. April 2005). "Mercurial V0.1 - Ein minimal skalierbares verteiltes SCM". Linux Kernel (Mailingliste).
- ^ https://www.mercurial-scm.org/repo/hg/rev/6.2.1.
- ^ "Readme -Datei im Rost -Unterverzeichnis, Master -Zweig". 24. Januar 2020. Abgerufen 30. Januar 2020.
- ^ Mackall, Matt. "Auf dem Weg zu einem besseren SCM: Revlog und Mercurial" (PDF). Quecksilber. Archiviert (PDF) vom Original am 26. Mai 2019. Abgerufen 26. Mai 2019.
- ^ "Matt Mackall ist jetzt Olivia Mackall". Quecksilber. Abgerufen 28. Mai 2021.
{{}}
: CS1 Wartung: URL-Status (Link) - ^ "Relicensing", Quecksilber (Wiki), mercurial-scm.org.
- ^ Mackall, Matt (29. April 2005). "Re: Mercurial 0,4B gegen Git Patchbomb Benchmark". Linux Kernel (Mailingliste). Archiviert von das Original am 9. Juli 2012.
- ^ Mackall, Matt (15. Februar 2012). "Warum hat Matt den Namen Mercurial gewählt?". Quecksilber (Mailingliste). Abgerufen 7. Juni 2016.
- ^ Torvalds hat gesagt: "Ich bin ein egoistischer Bastard, also nenne ich alle meine Projekte nach mir selbst. Zuerst Linux, jetzt Git."
- ^ James Gosling (Oktober 2006). "Open Sourcing Suns Java -Plattform -Implementierungen, Teil 1" (Interview). Interviewt von Robert Eckstein. Sonne. Archiviert vom Original am 1. März 2009.
{{}}
: CS1 Wartung: Ungeeignete URL (Link) - ^ "Skalierung von Quecksilber bei Facebook". 7. Januar 2014.
- ^ "Ein Mercurial Quelling Control Server, der speziell für große Monorepos entwickelt wurde: Facebookexperimental/Mononoke". 31. Januar 2019 - über Github.
- ^ Szorc, Gregory (17. Oktober 2016). "Mercurial 4.0 Sprint Notes". Mozilla.dev.Version-Control. Google -Gruppen. Abgerufen 2021-11-22.
- ^ Goode, Durham; Agarwal, Siddharth. "Skalierung von Quecksilber bei Facebook". Facebook -Code. Abgerufen 13. Oktober 2015 - über Facebook.
- ^ "Warum Google Milliarden von Codezeilen in einem einzigen Repository speichert".
- ^ "Sunseting Mercurial Support in Bitbucket". 21. April 2020. Archiviert Aus dem Original am 1. Juli 2020.
- ^ a b Chan, Denise (20. August 2019). "Sunseting Mercurial Support in Bitbucket". Bit Bucket. Abgerufen 29. August 2019.
- ^ "Git, Mercurial & Subversion Hosting". Merkmale. Codebasis Hauptquartier. 4. März 2013. archiviert von das Original am 30. März 2014. Abgerufen 4. März 2013.
- ^ "Beginnen wir mit der OSS -Entwicklung mit Mercurial (HG) - OSDN". osdn.net.
- ^ "Hosting", Quecksilber (Wiki), mercurial-scm.org.
- ^ "Versuchen Sie es mit Helix TeamHub Free | Perforce". info.perforce.com.
- ^ "Willkommen [Puszcza]". ps.gnu.org.ua.
- ^ "Tuxfamilie: Kostenloses Hosting für kostenlose Leute". tuxfamily.org.
- ^ "Einige Projekte, die Merkurial verwenden", Quecksilber (Wiki), mercurial-scm.org.
- ^ Reed, J Paul (12. April 2007). "Versionskontrollsystem Shootout Redux Redux".
- ^ Mozilla-Mobile/Fenix, Mozilla Mobile, 19. März 2021, abgerufen 19. März 2021
Externe Links
- Mackall, Matt, "Floss Podcast", Diese Woche in der Technik
- O'Sullivan, Bryan (2009), Quecksilber: Der endgültige Leitfaden (Buch), O'Reilly, frei online verfügbar
- Spolsky, Joel, Mercurial Tutorial, archiviert von das Original am 13. Juni 2016, abgerufen 6. April 2010
- Ein Beispielbasierter Quecksilber-Tutorial (PDF), Se: Jemander sowohl grundlegende als auch erweiterte Verwendung abdecken
- "Mercurial: Eine Alternative zu Git", Lwn
- "Subversion oder CVS, Basar oder Quecksilber? Vier Open Source -Versionskontrollsysteme verglichen", JavaRld, September 2007
- "Mercurial", Technisches Gespräch (Video), archiviert vom Original am 21. Dezember 2021
- Liste der Projekte, die Merkurial aus dem Mercurial -Wiki verwenden
- Offizielle Website