Bis vor kurzem haben wir SVN für alle Projekte unseres Webstudios verwendet, und es gibt eine sehr praktische Funktion in verschiedenen Clients wie Subversive und TortoiseSVN, die alle Dateien extrahieren können, die in einer bestimmten Revision geändert wurden.
>Gibt es eine Möglichkeit, dies in Mercurial zu tun? Es ist mir egal, ob es über eine GUI oder eine Befehlszeile erfolgt, es ist einfach sehr praktisch, eine Reihe von Dateien zu haben, die in einem bestimmten Änderungssatz geändert wurden.
P.S. Ich muss es beim ersten Mal falsch gemacht haben. Ich brauche mehr als nur eine Liste von Dateien, es wäre großartig, wenn alle Dateien in einen anderen Ordner exportiert würden.
Aufbauend auf Jeromes Antwort erhalten Sie die Kopien der Dateien , die sich in Revision 4 geändert haben:
%Vor%Damit werden alle Dateien, die in Version vier geändert wurden, in ein neu erstelltes Verzeichnis mit dem Namen changedfiles in Ihrem homedir verschoben.
Wenn Sie es ändern zu:
%Vor%dann erscheinen sie in einem Zip-Archiv.
Es ist erwähnenswert, dass das nur funktioniert, wenn Sie keine Leerzeichen in Dateinamen haben. Wenn Sie diesen Fehler gemacht haben, müssen wir stattdessen hg status --print0 -r revision -r parent-of-revision
verwenden, aber hoffentlich ist das nicht notwendig.
Beachten Sie auch, dass die Revisionsnummer "4" in unserem Beispiel zweimal angezeigt wird. Das Ganze könnte sehr leicht in ein Shell-Skript eingebunden werden, und das wäre parametrisiert, so dass Sie nicht daran denken müssen, es an beiden Stellen zu ändern.
Dies gibt Ihnen die Liste der geänderten Dateien in Revision 4:
%Vor%Update: Wenn Sie eine Datei pro Zeile haben möchten, verwenden Sie Der im Hg-Buch beschriebene Stil .
Abhängig von Ihrem ned gibt es zwei Befehle:
Um die mit einer bestimmten Revision verbundenen Änderungen zu erhalten, können Sie hg export
:
Dies erzeugt ein Diff aller Änderungen (eigentlich ein formatierter Patch, bereit für die Anwendung)
Um den Namen aller betroffenen Dateien zu erhalten, können Sie hg log
:
Dadurch werden die Meta-Informationen für die Revision zusammen mit den Namen der betroffenen Dateien gedruckt.
Dieser Befehl gibt die Namen aller geänderten Dateien in einer bestimmten Revision aus:
%Vor%Tags und Links svn mercurial version-control subversive changeset