Cuando uso "p4 diff", ignora los archivos que tengo abiertos para agregar. ¿Es posible generar un diff que incluya archivos agregados y archivos modificados?Perforce - ¿genera un diff incluyendo archivos agregados?
Respuesta
Considerando que el diff in Perforce compara los archivos del espacio de trabajo del cliente con las revisiones en el almacén, la respuesta abreviada es "no".
No hay historia registrada para comparar a la added file (no comprometida con el depósito antes de enviar un)
La respuesta más larga implicaría una secuencia de comandos para completar el diff con el contenido completo de los archivos añadidos. (algo así como en este SO question)
Oh, bueno. Es una pena, gracias por la respuesta. – kdt
Esta es una característica que falta en el diff p4 que muchas herramientas que tratan con Perforce tienen que funcionar.
La herramienta de revisión de código Reviewboard viene con la herramienta post-review. Se usa para crear diffs para una revisión de código, pero solo hará un diff si lo desea.
Está en python, puedes sacar la sección de diferencias para tu propio uso.
Acabo de solucionar este problema y he incluido mis archivos agregados en una revisión precompilación de Fisheye.
Lo que hice fue copiar el encabezado del descriptor de hunk diff de los archivos editados. Esto incluye una línea que enumera las rutas locales y de depósito, bastante sencilla, y otra línea con la información de rango, formateada como se describe en here.
Así, añadí cada adjuntas contenidos de cada archivo para el diff, cada uno precedido por
==== //path/to/depot/file#1 - /path/to/workspace/file ====
@@ -1,1 +1,LEN @@
donde LEN
es el número de líneas en el archivo añadido.
Esto funcionó para mí; Su experiencia puede ser diferente.
Acabo de hacer que esto funcione, desviando la respuesta de Aaron. En lugar de
==== //path/to/depot/file#1 - /path/to/workspace/file ====
Solía
--- //path/to/file [TIMESTAMP GENERATED BY NORMAL DIFF]
+++ //path/to/file [TIMESTAMP GENERATED BY NORMAL DIFF]
@@ -1,1 +1,LEN @@
A continuación, asegúrese de tener un +
al comienzo de cada línea agregada.
de escribir este que me ayude en cygwin:
#!/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
sólo imprimir p4 los archivos añadidos (lo sé, eso no es grande) - pero es sin duda un camino a seguir.
- 1. Perforce pendiente diff secuencia de comandos diff
- 2. Incluyendo nuevos archivos en SVN diff
- 3. Recuperar archivos eliminados de Perforce
- 4. borrar automáticamente los archivos recién añadidos al estanterías en Perforce
- 5. Perforce no sincronizar archivos correctamente
- 6. postal incluyendo archivos ocultos
- 7. ¿Cómo exportar todos los archivos modificados/agregados de Git?
- 8. ¿Puedes "ignorar" un archivo en Perforce?
- 9. Incluyendo archivos JS (JQuery) en JSPX archivos
- 10. ¿Genera archivos java JNLP?
- 11. Gancho de precompilación de Git: Archivos modificados/agregados
- 12. haciendo referencia/incluyendo archivos xsd en un jar
- 13. ¿Cómo genera git-diff las descripciones de trozos?
- 14. Mercurial: enumere archivos "hg diff"
- 15. Excluir archivos de git-diff
- 16. git diff --word-diff con archivos en línea
- 17. newline-ignooring diff/diff en múltiples líneas/reflow-ignooring diff
- 18. Perform visual diff de un archivo ramificado (p4 diff2 con diff externo)
- 19. Perforce culpa
- 20. Perforce sincronización rápida de un directorio a un estado limpio
- 21. archivos .gitignore agregados dentro de los submódulos de Git
- 22. incluyendo archivos de encabezado de diferentes directorios?
- 23. CRealice e incluyendo otros archivos make
- 24. Dinámicamente incluyendo archivos javascript una sola vez
- 25. cmake incluyendo h archivos de otros directorios
- 26. Incluyendo archivos de origen en C
- 27. Incluyendo archivos de script en un paquete de extensión R
- 28. diff de subversión que incluye archivos nuevos
- 29. Incluyendo un directorio usando Pyinstaller
- 30. Archivos Diff presentes en dos directorios diferentes
¿Funcionaría 'p4 conciliar' para usted? http://www.perforce.com/perforce/doc.current/manuals/cmdref/p4_reconcile.html – P4Shimada