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.
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:
color: Ausgabe von Befehlen wie diffund kolorieren status, was die Bewertung erleichtert.
pager: Durchsuchen Sie die lange Ausgabe einer Seite nach der anderen.
fetch: In einem Schritt von einem anderen Repo ziehen, aktualisieren und zusammenführen.
graphlog: Zeigen Sie Revisionsdiagramme in Ihrer Shell an. Dies ist unglaublich nützlich, um die Zweige in Ihrem Protokollverlauf anzuzeigen.
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):
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.
extdiff: Konfigurieren Sie ein externes Diff-Tool (z. B. meld).
share: Lassen Sie mehrere Klone denselben Repo-Verlauf verwenden
Die erweiterten Erweiterungen, auf die ich nicht verzichten würde:
mq: Verwalten eines Stapels von Patches. Sehr leistungsfähig, ermöglicht das Überlagern von Patches auf dem Baum.
notify: E-Mail-Benachrichtigungen senden, wenn ein Repo geändert wird.
rebase: Lokale Änderungen zusätzlich zu einer neuen übergeordneten Revision erneut anwenden.
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:
shelve: Änderungen selektiv beiseite legen (bei der Granularität von Hunks) und wiederherstellen.
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
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
@ 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.
Konvertieren: Konvertieren in und von anderen Systemen
Mq (Mercurial Queues): Behandeln Sie Änderungen als Stapel von Patches
Gesamtstruktur: Mit dieser Option können Sie viele verschachtelte Mercurial-Repositorys gleichzeitig festlegen und aktualisieren
Freigabe: um Zeit und Speicherplatz zu sparen, wenn Sie mit ähnlichen Repositorys arbeiten
Hgk: gibt eine grafische Ansicht der Geschichte
Graphlog: Ich tippe immer 'hg glog' und nicht 'hg log'. Eine ASCII-Kunstansicht der Geschichte
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.
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 .
Shelve: Ein Ort, an dem Sie die Änderungen der Arbeitskopie aufbewahren können, wenn Sie eine Weile an etwas anderem arbeiten müssen.
Lesezeichen: Nennen Sie das neueste Commit für einen bestimmten Zweig. Ähnlich wie bei gitZweigen.
"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.
Graphlog. Ich benutze es viel mehr als hg log. (wünschte, es könnte sich auf Filialen beschränken)
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.
Antworten:
Meine eigene Trefferliste:
Die einfachen, die Sie haben müssen:
color
: Ausgabe von Befehlen wiediff
und kolorierenstatus
, was die Bewertung erleichtert.pager
: Durchsuchen Sie die lange Ausgabe einer Seite nach der anderen.fetch
: In einem Schritt von einem anderen Repo ziehen, aktualisieren und zusammenführen.graphlog
: Zeigen Sie Revisionsdiagramme in Ihrer Shell an. Dies ist unglaublich nützlich, um die Zweige in Ihrem Protokollverlauf anzuzeigen.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:Die Zwischenerweiterungen empfehle ich sehr (und verwende sie häufig):
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.extdiff
: Konfigurieren Sie ein externes Diff-Tool (z. B. meld).share
: Lassen Sie mehrere Klone denselben Repo-Verlauf verwendenDie erweiterten Erweiterungen, auf die ich nicht verzichten würde:
mq
: Verwalten eines Stapels von Patches. Sehr leistungsfähig, ermöglicht das Überlagern von Patches auf dem Baum.notify
: E-Mail-Benachrichtigungen senden, wenn ein Repo geändert wird.rebase
: Lokale Änderungen zusätzlich zu einer neuen übergeordneten Revision erneut anwenden.largefiles
: Arbeiten Sie mit großen Binärdateien außerhalb des HG-SpeichersAlle 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:
shelve
: Änderungen selektiv beiseite legen (bei der Granularität von Hunks) und wiederherstellen.acl
: Ermöglichen Sie selektiv den Zugriff auf verschiedene Teile des Repository-BaumsErsetzte Erweiterungen und migrierte zum Kern (Infos von @ durin42):
forest
wurde durch diesubrepo
in v1.3 eingeführte Unterstützung ersetztbookmarks
ist im Kern und immer aktivierttransplant
wird durchgraft
einen Kernbefehl ersetzthistedit
befindet sich ab v2.3 im Kern, ist jedoch standardmäßig deaktiviertinotify
wird nicht empfohlen, da es anscheinend einen Fehler aufgrund einer Rennbedingung gibtquelle
fetch
,graphlog
undrecord
. Sah dies mithg extensions help
graphlog
undmq
sind besonders lecker.hg rebase
können einige Überlappungen haben.git
Benutzer mögen Rebase. Kannmq
für viele Anwendungsfälle ersetzen .git
Zweigen.quelle
-g
für den Protokollbefehl (und den Eingang eines ausgehenden IIRC) aktiviert.-g
Flag für log ist das Aktivieren von Git-Stilunterschieden, die sich von völlig unterscheidengraphlog
.-G
darum, ein Graphlog aus dem Diagramm zu entfernen, aber Sie müssen die Erweiterung vorerst noch aktivieren.progress
Erweiterung hinzufügenNoch 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.
quelle
Wenn Sie mit einem langsamen Host wie Bitbucket arbeiten, sind Fortschritte unerlässlich. Ansonsten
hg push
sieht es so aus, als wäre es aufgehängt: \quelle
Meine Liste:
Graphlog. Ich benutze es viel mehr als hg log. (wünschte, es könnte sich auf Filialen beschränken)
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:
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.
Ü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.
quelle