Quecksilber

Quecksilber
Mercurial no border logo.svg
Entwickler (en) Olivia Mackall[a]
Erstveröffentlichung 19. April 2005; Vor 17 Jahren[1]
Stabile Version
6.2.1[2] Edit this on Wikidata / 22. Juli 2022
Repository
Geschrieben in Python, C, und Rost[3]
Betriebssystem Unix-artig, Fenster, Mac OS
Typ Versionskontrolle
Lizenz GPL-2.0-or-Later
Webseite www.Mercurial-scm.org Edit this on Wikidata

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.

Abbildung 1: Einige wichtige Operationen von Quecksilber und ihrer Beziehungen.

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

Quellcode -Hosting

Die folgenden Websites bieten ein kostenloses Quellcode -Hosting für Quecksilberrepositories:

Open Source -Projekte mit Merkurial

Einige Projekte, die die mercurial verteilten RCs verwenden:[24]

Siehe auch

Anmerkungen

  1. ^ a b Olivia Mackall ist früher Matt Mackall.[5]

Verweise

  1. ^ a b Mackall, Matt (20. April 2005). "Mercurial V0.1 - Ein minimal skalierbares verteiltes SCM". Linux Kernel (Mailingliste).
  2. ^ https://www.mercurial-scm.org/repo/hg/rev/6.2.1.
  3. ^ "Readme -Datei im Rost -Unterverzeichnis, Master -Zweig". 24. Januar 2020. Abgerufen 30. Januar 2020.
  4. ^ 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.
  5. ^ "Matt Mackall ist jetzt Olivia Mackall". Quecksilber. Abgerufen 28. Mai 2021.{{}}: CS1 Wartung: URL-Status (Link)
  6. ^ "Relicensing", Quecksilber (Wiki), mercurial-scm.org.
  7. ^ Mackall, Matt (29. April 2005). "Re: Mercurial 0,4B gegen Git Patchbomb Benchmark". Linux Kernel (Mailingliste). Archiviert von das Original am 9. Juli 2012.
  8. ^ Mackall, Matt (15. Februar 2012). "Warum hat Matt den Namen Mercurial gewählt?". Quecksilber (Mailingliste). Abgerufen 7. Juni 2016.
  9. ^ Torvalds hat gesagt: "Ich bin ein egoistischer Bastard, also nenne ich alle meine Projekte nach mir selbst. Zuerst Linux, jetzt Git."
  10. ^ 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)
  11. ^ "Skalierung von Quecksilber bei Facebook". 7. Januar 2014.
  12. ^ "Ein Mercurial Quelling Control Server, der speziell für große Monorepos entwickelt wurde: Facebookexperimental/Mononoke". 31. Januar 2019 - über Github.
  13. ^ Szorc, Gregory (17. Oktober 2016). "Mercurial 4.0 Sprint Notes". Mozilla.dev.Version-Control. Google -Gruppen. Abgerufen 2021-11-22.
  14. ^ Goode, Durham; Agarwal, Siddharth. "Skalierung von Quecksilber bei Facebook". Facebook -Code. Abgerufen 13. Oktober 2015 - über Facebook.
  15. ^ "Warum Google Milliarden von Codezeilen in einem einzigen Repository speichert".
  16. ^ "Sunseting Mercurial Support in Bitbucket". 21. April 2020. Archiviert Aus dem Original am 1. Juli 2020.
  17. ^ a b Chan, Denise (20. August 2019). "Sunseting Mercurial Support in Bitbucket". Bit Bucket. Abgerufen 29. August 2019.
  18. ^ "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.
  19. ^ "Beginnen wir mit der OSS -Entwicklung mit Mercurial (HG) - OSDN". osdn.net.
  20. ^ "Hosting", Quecksilber (Wiki), mercurial-scm.org.
  21. ^ "Versuchen Sie es mit Helix TeamHub Free | Perforce". info.perforce.com.
  22. ^ "Willkommen [Puszcza]". ps.gnu.org.ua.
  23. ^ "Tuxfamilie: Kostenloses Hosting für kostenlose Leute". tuxfamily.org.
  24. ^ "Einige Projekte, die Merkurial verwenden", Quecksilber (Wiki), mercurial-scm.org.
  25. ^ Reed, J Paul (12. April 2007). "Versionskontrollsystem Shootout Redux Redux".
  26. ^ Mozilla-Mobile/Fenix, Mozilla Mobile, 19. März 2021, abgerufen 19. März 2021

Externe Links