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.
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
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.
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
hg status --change .
.
ist die Abkürzung für die aktuelle Version, genau wie @HEAD
in Git
hg status
hg status --change REV_ID
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
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.sed -e 's/ /\n/g'
teilt alle Dateien auf, um sie in separaten Zeilen und anzuzeigensort
sortiert die Liste für Sie, damit wir die Liste mit uniq filtern könnenuniq
filtert die Liste nach Duplikaten - Dateien, die in mehr als einer Revision geändert wurden.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).