Wie erhalte ich Diffs aller Dateien in einer ausstehenden Änderungsliste von Perforce?
Möchte ich, um diffs auf Dateien in einem bestimmten ausstehende änderungsliste. Ich wünschte, ich könnte dies tun:
p4 diff -c 999
Kann mir jemand helfen-string zusammen, einige csh Magie, um dies zu verwirklichen?
Vielleicht die Ausgabe von p4 opened -c 999
und Rohrleitungen es zu p4 diff
?
InformationsquelleAutor der Frage ack | 2009-07-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der einfachste Weg ist in p4v oder p4win, aber das ist nicht das, was Sie gefragt wurden.
Versuchen Sie dies:
Natürlich Sie müssen sicherstellen, dass die sub-shell hat p4 in seinem Weg, und $P4CLIENT, etc... sind alle eingerichtet.
InformationsquelleAutor der Antwort Mark
Regal die änderungen in den ausstehenden änderungsliste, dann laufen
InformationsquelleAutor der Antwort Alexander Bird
Lösung
Erklärung
p4 -x
gibt Siexargs
wie die Fähigkeit, ohnexargs
. Vonp4 help utils
:So kann man fast nur "nehmen Sie den Ausgang p4 eröffnet -c-999 und Weiterreichen p4 diff" wie bereits in der Frage. Das eine heikle Teil ist, dass die Ausgabe von
p4 opened
enthält die Revisionsnummer und der erklärende text nach den Namen der einzelnen Datei öffnen z.B.Aber wir können durch eine einfache
sed -e 's/#.*//'
ausziehen, alles von der#
ab verlassen, nur die Pfade:können dann konsumiert werden, von standard-input zugeführt wird
p4 diff
Dankp4 -x -
.Wenn Sie
#
in den Namen von Dateien dann werden Sie brauchen, um mehr zu clever mit dersed
Befehl. Und einen Psychiater aufzusuchen.InformationsquelleAutor der Antwort Day
p4 beschreiben 999 | grep '#' | cut -d"#" -f1|cut-d" " -f2 | xargs p4 diff
InformationsquelleAutor der Antwort shadkam islam
Können Sie shell-Skript wie dieses:
rufen Sie es mit änderungsliste Nummer und du bekommst ein patch in stdout.
InformationsquelleAutor der Antwort voronaam
Ich verwendet einen ähnlichen Ansatz wie Mark, aber ich habe Perl statt Awk-und shell-Funktion (zsh):
Beachten Sie, dass können Sie eine Datei Pfad zu, zusätzlich zu nur die änderungsliste name/Nummer:
InformationsquelleAutor der Antwort Ken Williams
Den oben genannten Antworten Ihrer Frage, aber, wenn die Fliese ist zu Lesen als diff ein Verzeichnis auf einer ändern Liste, es kann beantwortet werden mit den folgenden:
Diese wird diff alle Dateien in das Verzeichnis gegen die änderungsliste 999 verwendet er die "haben" - version, wenn es ausgecheckt werden, ansonsten verwendet es die neueste version.
getestet wurde dies mit GNU Awk 3.1.3
InformationsquelleAutor der Antwort Frobbit
Einen one-liner, die Werke aus der Windows-cmd-shell, versuchen Sie dies:
Können Sie dies in einer batch-Datei, die Sie verwenden müssen
%%F
statt nur%F
.Hinweis, dass etwas von der Lösung oben funktioniert unter Windows, wenn Sie installiert haben, ein unix-ähnliches utilities-Paket wie cygwin oder unixutilsaber diese one-liner hat keine externen Abhängigkeiten.
InformationsquelleAutor der Antwort yoyo