Was sind die besten und wichtigsten hg / mercurial-Erweiterungen? [geschlossen]

74

Ich habe mich in letzter Zeit mit hg / mercurial beschäftigt, und zwar in Verbindung mit Fogcreek's Kiln, und ich versuche herauszufinden, was die Must-Have-Erweiterungen sind. Es ist ein wenig schwierig, die Erweiterungsliste zu durchsuchen, da ich nicht daran interessiert bin, fehlerhafte oder unpraktische Erweiterungen zu testen, auch wenn ihre Beschreibung fantastisch klingt.

Also, welche hg-Erweiterungen verwenden Sie?

Siehe Verwenden von Erweiterungen

JJ Rohrer
quelle
Wahrscheinlich NICHT "deps" - meine ersten Tests lassen es zu fehlerhaft / neu erscheinen
JJ Rohrer
Zur Liste würde ich auch eine Aufgabenerweiterung hinzufügen , um "Codierungsaufgaben" zu verwalten, und eine Eingabeaufforderungserweiterung , um Repository-Informationen an der Shell-Eingabeaufforderung anzuzeigen. Prompt kann die Aufgabenerweiterung verwenden. Beide werden nicht mit hg verschickt.
Paolo

Antworten:

99

Meine eigene Trefferliste:

Die einfachen, die Sie haben müssen:

  1. color: Ausgabe von Befehlen wie diffund kolorieren status, was die Bewertung erleichtert.
  2. pager: Durchsuchen Sie die lange Ausgabe einer Seite nach der anderen.
  3. fetch: In einem Schritt von einem anderen Repo ziehen, aktualisieren und zusammenführen.
  4. graphlog: Zeigen Sie Revisionsdiagramme in Ihrer Shell an. Dies ist unglaublich nützlich, um die Zweige in Ihrem Protokollverlauf anzuzeigen.
  5. hgk: Durchsuchen Sie das Repository mit einer grafischen Oberfläche (siehe auch TortoiseHg und Murky)

Wenn Sie aktivieren pager, sollten Sie es so konfigurieren, dass bestimmte Befehle nicht beeinträchtigt werden:

[pager]
pager = LESS='FSRX' less
ignore = version, help, update, serve, record

Die Zwischenerweiterungen empfehle ich sehr (und verwende sie häufig):

  1. record: Ermöglicht die interaktive Auswahl von Dateien, die festgeschrieben werden sollen - ideal, wenn Sie sich mitten in einer Reihe von Änderungen befinden und am Ende etwas reparieren, das ein eigenes Festschreiben haben sollte.
  2. extdiff: Konfigurieren Sie ein externes Diff-Tool (z. B. meld).
  3. share: Lassen Sie mehrere Klone denselben Repo-Verlauf verwenden

Die erweiterten Erweiterungen, auf die ich nicht verzichten würde:

  1. mq: Verwalten eines Stapels von Patches. Sehr leistungsfähig, ermöglicht das Überlagern von Patches auf dem Baum.
  2. notify: E-Mail-Benachrichtigungen senden, wenn ein Repo geändert wird.
  3. rebase: Lokale Änderungen zusätzlich zu einer neuen übergeordneten Revision erneut anwenden.
  4. largefiles: Arbeiten Sie mit großen Binärdateien außerhalb des HG-Speichers

Alle oben genannten Produkte werden mit Mercurial gebündelt und sind stabil und gut getestet. Ich kann sie alle nur empfehlen.

Nicht zum Kern gehörende Erweiterungen, die es wert sind, untersucht zu werden:

  1. shelve: Änderungen selektiv beiseite legen (bei der Granularität von Hunks) und wiederherstellen.
  2. acl: Ermöglichen Sie selektiv den Zugriff auf verschiedene Teile des Repository-Baums

Ersetzte Erweiterungen und migrierte zum Kern (Infos von @ durin42):

  • forestwurde durch die subrepoin v1.3 eingeführte Unterstützung ersetzt
  • bookmarks ist im Kern und immer aktiviert
  • transplantwird durch grafteinen Kernbefehl ersetzt
  • histedit befindet sich ab v2.3 im Kern, ist jedoch standardmäßig deaktiviert
  • inotify wird nicht empfohlen, da es anscheinend einen Fehler aufgrund einer Rennbedingung gibt
gavinb
quelle
Irgendwelche anderen Kommentare zu Subrepo vs. Forest? Ich bin mir nicht sicher, ob einer von ihnen tatsächlich nützlich / verwendbar ist - was bedeuten könnte, dass ich es einfach falsch mache. Ich bin besonders an einer robusten Verbesserung von SVNs 'extern' interessiert
JJ Rohrer
Farbe funktioniert nicht unter Windows ( mercurial.selenic.com/bts/issue1579 )
Jerome
1
@ Jerome Die Farberweiterung scheint in Cygwin gut zu funktionieren.
Gavinb
1
Erstellen Sie eine fantastische Liste mit diesem im Inneren! :) Es gibt eine für Git . Ich benutze nicht viel Quecksilber, aber es sieht so aus, als gäbe es auch viele gute Dinge für Quecksilber!
GabLeRoux
2
Diese aus der Liste markiert werden als veraltet : fetch, graphlogund record. Sah dies mithg extensions help
GabLeRoux
9

graphlogund mqsind besonders lecker.

  1. Konvertieren: Konvertieren in und von anderen Systemen
  2. Mq (Mercurial Queues): Behandeln Sie Änderungen als Stapel von Patches
  3. Gesamtstruktur: Mit dieser Option können Sie viele verschachtelte Mercurial-Repositorys gleichzeitig festlegen und aktualisieren
  4. Freigabe: um Zeit und Speicherplatz zu sparen, wenn Sie mit ähnlichen Repositorys arbeiten
  5. Hgk: gibt eine grafische Ansicht der Geschichte
  6. Graphlog: Ich tippe immer 'hg glog' und nicht 'hg log'. Eine ASCII-Kunstansicht der Geschichte
  7. Transplantation: Nützlich, wenn Sie nur einige Änderungssätze aus einem anderen Zweig zusammenführen möchten. Die neueren hg rebasekönnen einige Überlappungen haben.
  8. Rebase: Eine andere Art, mit Änderungen umzugehen, als eine Reihe von Änderungssätzen über einem Zweig. gitBenutzer mögen Rebase. Kann mqfür viele Anwendungsfälle ersetzen .
  9. Shelve: Ein Ort, an dem Sie die Änderungen der Arbeitskopie aufbewahren können, wenn Sie eine Weile an etwas anderem arbeiten müssen.
  10. Lesezeichen: Nennen Sie das neueste Commit für einen bestimmten Zweig. Ähnlich wie bei gitZweigen.
Joeforker
quelle
Graphlog ist jetzt integriert und immer -gfür den Protokollbefehl (und den Eingang eines ausgehenden IIRC) aktiviert.
Ry4an Brase
Ry4an: "jetzt" bedeutet in Trinkgeld? Nicht in 1.4.1 AFAICT.
Carl Meyer
1
Das -gFlag für log ist das Aktivieren von Git-Stilunterschieden, die sich von völlig unterscheiden graphlog.
Jamessan
1
Mein Fehler. Es geht -Gdarum, ein Graphlog aus dem Diagramm zu entfernen, aber Sie müssen die Erweiterung vorerst noch aktivieren.
Ry4an Brase
Sie können auch die progressErweiterung hinzufügen
9

Noch nicht erwähnt: mercurial_keyring

https://www.mercurial-scm.org/wiki/KeyringExtension

"Die Schlüsselringerweiterung verwendet Dienste der Schlüsselringbibliothek, um Authentifizierungskennwörter (HTTP / HTTPS und SMTP) mithilfe einer systemspezifischen Kennwortdatenbank (Gnome Keyring, KDE KWallet, OSXKeyChain, dedizierte Lösungen für Win32 und Befehlszeile) sicher zu speichern."

Ich benutze ssh, um auf meine Repos auf GitHub und Bitbucket zuzugreifen, und meine Schlüsselphrase befindet sich im Schlüsselbund. Mit dieser Erweiterung kann Mercurial sie bei Bedarf abrufen.

Auch für mich erforderlich: hg-git

http://hg-git.github.com/

Mit dem Mercurial-Plugin können Sie Git-Repos mit hg als Client ziehen und verschieben. Benutze es die ganze Zeit.

Bill Garrison
quelle
7

Wenn Sie mit einem langsamen Host wie Bitbucket arbeiten, sind Fortschritte unerlässlich. Ansonsten hg pushsieht es so aus, als wäre es aufgehängt: \

Rob Agar
quelle
1

Meine Liste:

  1. Graphlog. Ich benutze es viel mehr als hg log. (wünschte, es könnte sich auf Filialen beschränken)

  2. spülen. Entfernen Sie alle Dateien, die nicht in Mercurial enthalten sind. Ich benutze dies anstelle von oder als sauberere Version von make clean.

Weniger gebraucht, aber schön:

  • Kinder (sagen wir "hg Kinder -r XXX")
  • parentrevspec: lässt dich Dinge sagen wie "foo ~ 2 = foo ^ 1 ^ 1 = foo ^^ = erster Elternteil des ersten Elternteils von foo"

Ich versuche immer wieder, die Tools zur Bearbeitung des Verlaufs zu verwenden, stoße aber immer wieder auf Einschränkungen. Ich möchte, dass sie arbeiten.

  • Zusammenbruch
  • histedit
  • Ich denke darüber nach, eine Verlaufsbearbeitung auch neu zu starten

Übrigens: hgk und fetch sind "ungeliebt": https://www.mercurial-scm.org/wiki/UnlovedFeatures . Aber dann sind SubRepos nicht ungeliebt, sondern ein Merkmal des letzten Auswegs, und ich verwende Subrepos.

Krazy Glew
quelle