perforce - versionamiento - Cómo enumerar todos los archivos cambiados por una lista de cambios forzosos
son ramas que indican diversos grados de estabilidad del contenido (5)
Tengo una lista de cambios específica, y desde la línea de comandos quiero enumerar todos los archivos que formaban parte de esa lista de cambios. ¿Cómo hago esto?
Ese es el comando describe . Para describir una lista de cambios particular, desea que p4 describe <changelist number>
.
Actualizar:
Si solo desea los nombres de archivo, puede usar el comando de files con la opción -F para anular el formato de salida: p4 -Ztag -F "%depotFile%" files @=<changelist>
Consulte http://www.perforce.com/blog/130826/fun-formatting para obtener más información sobre la opción -F.
La respuesta de Mike O''Connor también me ayudó.
En cuanto a solo obtener una lista de archivos modificados, ¿no podría ser tan fácil como esto?
p4 describe -s {change number} | grep ''^/././.'' | awk ''{print $2}''
eso es lo que voy a usar.
Si su lista de cambios aún está pendiente, puede ejecutar p4 opened
o p4 opened -c <changeListNumber>
para un número de lista de p4 opened -c <changeListNumber>
específico (no enviado).
De la documentación oficial : "Lista de archivos que están abiertos en listas de cambios pendientes".
cambio p4 -o
Tiene la lista de archivos al final.
user114245 dio la mejor respuesta, pero solo en un comentario. Estoy agregando como respuesta para darle más visibilidad y mejorar un poco.
Para el cambio 12345, esto es lo más cercano que puede obtener con solo un comando p4
p4 files @=12345
lo que da sólo esta salida
//depot/file1#3 - delete change 3 (text)
//depot/file2#3 - edit change 3 (text)
//depot/file5#1 - add change 3 (text)
Si desea eliminar la información extraña de cada archivo, deberá procesar esa salida a través de más herramientas en la línea de comandos. Asumiendo un entorno estándar de Unixy, puede usar un solo comando sed
como así
p4 files @=12345 | sed s/#.*//
para obtener el resultado deseado
//depot/file1
//depot/file2
//depot/file5
La respuesta actualmente aceptada por Mike es la siguiente.
p4 describe 12345
Lo que da todo este detalle extra en la salida.
Change 12345 by day@client1 on 2013/06/21 00:25:28
Some example changes
Affected files ...
... //depot/file1#3 delete
... //depot/file2#3 edit
... //depot/file5#1 add
Differences ...
==== //depot/file2#3 (text) ====
1c1
< This is file 2
---
> This is file 2 - edited
Eso se mejoró con la respuesta de Doug, que usa grep y awk para filtrar el ruido y simplemente dejar los archivos cambiados, pero el comando es bastante largo.
p4 describe -s 12345 | grep ''^/././.'' | awk ''{print $2}''
Creo que la solución dada aquí es más limpia.