perforce shelve

perforce - ¿Cómo ver Shelved P4 Changes?



(8)

En P4V UI, seleccione

Search - > Go To

luego elija el tipo de lista de cambios (en su caso, ''Lista de cambios pendiente''), ingrese el número de lista de cambios y haga clic en "Aceptar".

Uno de los miembros de nuestro equipo (ubicado en una región diferente) ha archivado cambios en P4 con la lista de cambios 1234.

Ahora, si quiero ver qué archivos están modificados y cuáles son los cambios, ¿cómo puedo hacer esto?

¿Cuál es el comando P4 que debo usar para ver los cambios realizados por nuestro miembro del equipo?


La solución de jhwist es buena si desea ver las diferencias de los archivos.

Si solo desea ver los archivos archivados, use p4 describe -sS 1234 .

La minúscula s restringe la salida de incluir diferencias de archivos.


Si desea ver solo la lista de archivos dentro de una Lista de cambios (ya sea una CL pendiente, pendiente o enviada), sin datos adicionales, grep el resultado:

p4 describe -S 12345 | grep -oP ''(?=//).*(?=#)''


Si desea ver el contenido real de los archivos, puede utilizar:

p4 print <file>@=<shelved_change>

El @ = significa mirar el cambio archivado, mientras que @ significa mirar el cambio.


Supongamos que la lista de cambios 123456 es la lista de cambios archivada en cuestión. Como se mencionó en una respuesta anterior, la forma de enumerar los archivos se asocia con esa lista de cambios mediante el comando p4 describe -s <changelist> . Al igual que:

$ p4 describe -s 123456 Change 123456 by john.doe@JohnsBranch on 2013/10/24 15:38:10 *pending* [Shelving my changes for Jane.] Fix memory corruption caused by uninitialized pointer. Affected files ... ... //depot/branches/JohnsBranch/kernel/vm/pageutils.c#1 edit

Una vez que conozca el (los) archivo (s) en cuestión, hay un par de maneras de diferenciar los archivos sin un espacio de trabajo correspondiente. El método # 1 es usar p4 print :

$ p4 print -q //depot/branches/JohnsBranch/kernel/vm/pageutils.c#1 > /tmp/old $ p4 print -q //depot/branches/JohnsBranch/kernel/vm/pageutils.c@=123456 > /tmp/new $ diff /tmp/old /tmp/new # Or use kdiff3, tkdiff, etc. ... <diff output here>

El otro método es usar p4 diff2 :

$ p4 diff2 //depot/branches/JohnsBranch/kernel/vm/pageutils.c#1 //depot/branches/JohnsBranch/kernel/vm/pageutils.c@=123456 ... <diff output here based on Perforce server''s diff algorithm>

Ambos métodos pueden incorporarse fácilmente en el lenguaje de script de elección.


Usando el cliente UI, presione Ctrl + G. Aparece la ventana de diálogo. Seleccione Changelist en el cuadro combinado y el número de entrada de la lista de cambios.


Usando la GUI, vaya a Pendiente y elimine todos los filtros excepto por usuario, donde colocará la ID del otro desarrollador. Desde allí, deberías poder ver a sus changelistas, incluidos los que tienen archivos archivados. Haga clic con el botón derecho en el ícono de Archivos archivados y seleccione Desacoplar. Tendrá que tener un área de trabajo activa que incluya los archivos que está tratando de quitar.


p4 describe -S 1234 debe al truco, consulte la documentación en describir .

Para ver el contenido del archivo, se desensamblarían los archivos en su área de trabajo (asumiendo que tiene una área de trabajo para el mismo proyecto en el que está trabajando su colega).

Cree una nueva lista de p4 change (vacía) con el p4 change (resultados en, por ejemplo, 2345), luego use p4 unshelve ( docu ) para obtener los archivos modificados en su área de trabajo:

p4 unshelve -s 1234 -c 2345

Si ya no desea que los archivos modificados en su área de trabajo, puede p4 revert -c 2345 .