it-swarm.com.de

Mercurial - alle Dateien, die sich in einem Changeset geändert haben?

Wie können Sie alle Dateien ermitteln, die in einem bestimmten Changeset geändert wurden? 

Ich suche in diesem Fall nicht nach einem Unterschied, sondern nur nach einer Liste von Hinzufügen/Entfernen/Ändern.

hg log -vprX führt eine Liste der Unterschiede aus, aber ich möchte nur die Dateien.

84
Marcus Leon

Wenn Sie nur Dateien auflisten möchten, die sich geändert haben, sollten Sie "status command" .__ verwenden. Im Folgenden werden die Änderungen an Dateien in der Revision REV aufgeführt

hg status --change REV
134
pyfunc

Entfernen Sie einfach p von Ihrem hg log -vpr, um die Liste der Dateien anzuzeigen. -p bedeutet "Patch anzeigen". Sie können auch eine template verwenden, um die Ausgabe nach Ihrem Geschmack zu formatieren.

16
Geoffrey Zheng

Ich weiß, die Frage bezieht sich auf ein einzelnes Changeset, aber wenn Sie möchten, dass alle Dateien für eine Reihe von Changesets geändert werden, können Sie dies tun

hg status --rev 1 --rev 10 -m
9
Nick DeVore

Aktuelle festgeschriebene Revision

hg status --change .

. ist die Abkürzung für die aktuelle Version, genau wie @HEAD in Git

Aktuelle nicht festgeschriebene Revision

hg status

Willkürlich festgeschriebene Revision

hg status --change REV_ID
3
Gibolt

Diese Frage habe ich bei Googling nach einem ähnlichen Konzept gefunden. Um alle Dateien anzuzeigen, die durch einen Bereich von Änderungssätzen geändert wurden, ist dies so einfach wie folgt:

hg log -r [start rev]:[end rev] --template "{file_mods}{file_adds}\n" | sed -e 's/ /\n/g' | sort -d | uniq
  1. hg log -r [start rev]:[end rev] --template "{file_mods}{file_adds}\n" zeigt eine Liste aller Dateien an, die in jedem Änderungssatz geändert oder hinzugefügt wurden, von [start rev] bis [end rev], wobei die Dateien des Änderungssatzes in einer neuen Zeile stehen. Tauschen Sie {file_mods}{file_adds} mit {files} aus, um alle Dateien anzuzeigen, die geändert, hinzugefügt oder entfernt wurden.
  2. sed -e 's/ /\n/g' teilt alle Dateien auf, um sie in separaten Zeilen und anzuzeigen
  3. sort sortiert die Liste für Sie, damit wir die Liste mit uniq filtern können
  4. uniq filtert die Liste nach Duplikaten - Dateien, die in mehr als einer Revision geändert wurden.
2
Eric Lawler

Ich weiß, dass diese Frage eine alte Frage ist und ich bin überrascht, dass niemand nur die modifizierte Codeform OP angeboten hat. Ich habe eine Liste der geänderten/hinzugefügten/entfernten Dateien erhalten (nicht beschriftet, welche jedoch welche), indem ich einfach hg log -v ausführe. Oder was ich eigentlich hg log -v -l5 brauchte, um Dateien zu sehen, die in den letzten 5 Commits geändert/hinzugefügt/entfernt wurden (einschließlich derjenigen, die ich noch nicht in das Repo gepusht habe). 

0
Đorđe Relić