Wie schicke ich am besten ein Skript ein, wenn Änderungen am Arbeitsbaum von mercurial vorgenommen wurden?
(so wie ich es mit git diff --quiet
in git machen würde)
In mercurial 1.4 und höher können Sie den Befehl summary verwenden, der eine Ausgabe wie folgt anzeigt, wenn Änderungen vorhanden sind:
%Vor%und dieses Post-Commit:
%Vor%Alternativ können Sie die Eingabeaufforderungserweiterung installieren und so etwas tun:
%Vor%, das ein !
oder ?
oder nichts entsprechend ausgibt.
Beide sind natürlich nur alternative Textausgaben. Ich konnte nichts finden, das den Exit-Code direkt verwendet, aber seit $? überprüft den letzten Befehl in einer Pipe, die Sie tun könnten?
%Vor%was setzt $? nicht Null, wenn Änderungen nicht festgeschrieben wurden:
%Vor% Sie können auch hg id
ausführen. Wenn der Hash mit einem +
endet, zeigt dies an, dass die Arbeitskopie Änderungen aufweist. Dies sollte sogar mit alten Versionen von hg funktionieren.
Es klingt, als ob Sie bereits zsh verwenden; Nun, vor ein paar Tagen habe ich geholfen, die Mercurial-Unterstützung für das integrierte VCS_INFO um VCS-Informationen in Ihre Eingabeaufforderung zu stellen. Für die nächste Version ist eine Unterstützung vorgesehen, um (unter anderem) Änderungen am Arbeitsverzeichnis anzuzeigen. Wenn Sie nicht warten möchten, können Sie die benötigten Dateien von CVS herunterladen .
Im Moment enthält meine Eingabeaufforderung das (mit nur integrierter zsh-Funktionalität):
%Vor%Tags und Links mercurial