Wenn ich "p4 diff" verwende, ignoriert es Dateien, die ich zum Hinzufügen geöffnet habe. Ist es möglich, ein diff zu generieren, das zusätzliche Dateien sowie geänderte Dateien enthält?Perforce - Generieren Sie ein Diff einschließlich hinzugefügter Dateien?
Antwort
In Anbetracht der diff in Perforce vergleichen Sie die Dateien im Client-Arbeitsbereich zu Revisionen im Depot, ist die kurze Antwort "Nein".
Es gibt keine aufgezeichnete Geschichte zum added file zu vergleichen (nicht in das Depot begangen, bevor eine abschicken)
Die längere Antwort ein Skript beinhalten würde die diff mit dem vollständigen Inhalt der hinzugefügten Dateien zu vervollständigen. (Art von wie in diesem SO question)
Oh gut. Das ist eine Schande, danke für die Antwort. – kdt
Dies ist eine bekannte fehlende Funktion von P4 diff, dass viele Tools mit Perforce umgehen müssen.
Das Code-Review-Tool Reviewboard wird mit dem Tool post-review geliefert. Es wird verwendet, um Diffs für eine Codereview zu erstellen, aber es wird nur ein Diff machen, wenn Sie möchten.
Es ist in Python, könnten Sie die Diff-Abschnitt für Ihren eigenen Gebrauch ziehen.
Ich habe gerade an diesem Problem gearbeitet und meine hinzugefügten Dateien in eine Fisheye Pre-Commit Review aufgenommen.
Was ich getan habe, war kopiert die diff-Desk-Deskriptor-Header der bearbeiteten Dateien. Dies beinhaltet eine Zeile, die das Depot und lokale Pfade auflistet - ziemlich einfach - und eine weitere Zeile mit den Bereichsinformationen, formatiert wie beschrieben here.
Also, habe ich jeweils beigefügten jeder Inhalt in die diff der Datei voran jeweils von
==== //path/to/depot/file#1 - /path/to/workspace/file ====
@@ -1,1 +1,LEN @@
wo LEN
die Anzahl der Zeilen in der hinzugefügten Datei.
Das funktionierte für mich; Ihre Laufleistung kann variieren.
Ich habe gerade das zur Arbeit, Abzweigung von Aarons Antwort. Statt
==== //path/to/depot/file#1 - /path/to/workspace/file ====
benutzte ich
--- //path/to/file [TIMESTAMP GENERATED BY NORMAL DIFF]
+++ //path/to/file [TIMESTAMP GENERATED BY NORMAL DIFF]
@@ -1,1 +1,LEN @@
Dann ein +
am Anfang jeder Zeile hinzugefügt haben, stellen Sie sicher.
Ich schrieb mich das auf Cygwin helfen:
#!/bin/bash
if [ $# -ne 1 ]; then
echo "usage: $0 <pathSpec>"
exit 1
fi
pathSpec=$1
doIt() {
p4 opened "$pathSpec" | egrep "#.* - add" | while read f; do
# figure out the workspace path
depotPath=${f%#*}
clientFileLine=$(p4 fstat "$depotPath" | grep clientFile)
workspacePathWin=${clientFileLine#... clientFile }
# diff output
echo ==== $depotPath#1 - $workspacePathWin ====
workspacePath=$(cygpath "$workspacePathWin")
lineCount=$(wc -l < "$workspacePath")
echo @@ -0,0 +1,$lineCount @@
# the actual diff contents
sed -e 's/^/+/' "$workspacePath"
echo
done
}
doIt
p4 einfach die hinzugefügten Dateien drucken (ich weiß, das ist nicht gut) - aber es ist auf jeden Fall einen Weg zu gehen.
- 1. Subversion Diff einschließlich neuer Dateien
- 2. Einschließlich neuer Dateien in SVN diff
- 3. Perforce: Übergabe von Dateierweiterungen in einem "diff" -Befehl
- 4. Einschließlich Dateien
- 5. Perforce: Ändern des Textdateiformats durch Perforce
- 6. Git: Post-Empfang E-Mail-Hook, einschließlich Diff-Patches?
- 7. Perforce visual diff einer verzweigten Datei (p4 diff2 mit externem diff)
- 8. Wie man diff von zwei Versionen der Datei perforce depot
- 9. Diff ohne Dateien
- 10. Zip einschließlich versteckte Dateien
- 11. PHP einschließlich Dateien
- 12. Statisch einschließlich DLL-Dateien
- 13. PHP einschließlich Dateien
- 14. Wie erhalte ich in Perforce eine Liste der ausgecheckten Dateien?
- 15. Kann ich aus einem kdiff3 Dateivergleich ein Diff im Unified Diff Format generieren?
- 16. Wie automatisch Diff zwischen API-Versionen generieren?
- 17. So lösen Sie integrierte Dateien in der Perforce JAVA-API
- 18. Dateien von git-diff ausschließen
- 19. Datei diff von großen Dateien
- 20. Ignorieren von Client-generierten Dateien in der Perforce-Arbeitsbereich-Ansicht
- 21. Können Sie eine Datei in Perforce "ignorieren"?
- 22. ASP.NET: Die richtige Methode zum Exportieren von GridView nach Excel einschließlich dynamisch hinzugefügter Zeilen
- 23. Warum wird der Explorer nicht freigegeben Diff Diff XML-Dateien?
- 24. Generieren Sie .webtest-Dateien ohne Visual Studio
- 25. git: Liste aller geänderten Dateien einschließlich derjenigen in Submodulen
- 26. Machen Sie ein Diff mit Änderung Commit
- 27. So entfernen Sie die Phantomänderungsliste in Perforce
- 28. Generieren Sie PDF-Dateien von asp.net mvc
- 29. Generieren Sie XML-Dateien mit swift
- 30. Lehre 1.2 generieren-Migrationen-diff erzeugt nur Fremdschlüssel Migration
Würde 'p4 reconcile' für Sie arbeiten? http://www.perforce.com/perforce/doc.current/manuals/cmdref/p4_reconcile.html – P4Shimada