Perforce no sincroniza archivos correctamente
revision (7)
Estoy usando Perforce P4V, la herramienta gráfica, para interactuar con mi servidor Perforce aquí en el trabajo. Tengo un proyecto que agregué al almacén y lo borré accidentalmente de mi área de trabajo en mi computadora local, el problema es cuando uso la acción Obtener revisión (la GUI equivalente a la sincronización), los archivos no se actualizan, es decir, puedo vea los archivos en el servidor que quiero, pero no se sincronizarán correctamente con mi PC local. Me frustra que los archivos no sean extraídos del servidor. Lo que supongo que debería estar sucediendo es que si los archivos se modifican de alguna manera en mi PC local, debería poder obtener la revisión del servidor, que luego extrae los datos a mi PC local y sobrescribe los cambios localmente en mi PC, pero eso no está sucediendo. ¿Se me escapa algo?
"Obtener revisión" actualizará solo los archivos que no se abran (desprotegidos) incluso cuando la "Operación forzada" esté habilitada. Debe revertir todos los archivos marcados como extraídos en ese espacio de trabajo y luego usar "Obtener revisión" con "Forzar operación"
Como han mencionado otras personas, una solución es hacer una "sincronización forzada" de todo el depósito, que básicamente está sobrescribiendo todo, desde el servidor hasta su local. La desventaja de esto es que podría llevar mucho tiempo terminar si está trabajando en un gran depósito.
Otra alternativa es comparar su espacio de trabajo local con el servidor, luego solo forzar la sincronización de los archivos que faltan en su espacio de trabajo .
p4 diff -sd //Depot/path/… | p4 -x – sync -f
Opción -sd : muestra solo los nombres de los archivos sin abrir que faltan en el área de trabajo del cliente, pero que están presentes en el depósito.
Hay más opciones disponibles (sa / se / etc.) Si -sd no es lo que necesita. ver here
Los créditos para el comando van a this blog.
Gracias, hice lo que usted sugirió, pero recibí el mensaje de que los archivos aún estaban "abiertos para edición y no se pueden eliminar" al intentar "Eliminar del área de trabajo". Además, "Obtener revisión" devolvió un mensaje que indica que "no se actualizaron archivos". Lo que terminé por hacer fue "Revertir" los archivos, luego hacer la acción "Obtener Revisión" que resolvió el problema. Gracias a los dos por su ayuda.
No se actualizarán porque, según Perforce, todavía tiene los archivos en su máquina local.
Debe usar la opción "Obtener revisión ..." y habilitar la opción "Forzar operación".
Esto le indicará a Perforce que actualice todos los archivos, incluso aquellos que cree que tiene la última versión de.
Para las personas que entran en esta pregunta, esto me funcionó en la línea de comandos de mac ...
Cd en su espacio de trabajo local, el directorio base de los archivos extraídos en los que está trabajando.
p4 sync -f
-f es forzar la sincronización.
Esto también puede ser útil cuando restaura un mac desde una copia de seguridad de la máquina del tiempo.
https://www.perforce.com/perforce/r12.1/manuals/cmdref/sync.html
Revisa el archivo, cámbialo un poco y luego vuelve. Perforce reemplazará el archivo local con la última revisión.
Perforce realiza un seguimiento de los archivos que cree que tiene en su estación de trabajo local. Si elimina esos archivos localmente (y no lo "dice"), Perforce seguirá pensando que tiene esos archivos. Si desea recuperarlos, debe "forzar la sincronización" de los archivos. En p4v, puede usar el elemento "Obtener revisión ..." y en el cuadro de diálogo posterior, puede marcar la casilla de verificación "forzar operación" para decirle a Perforce que le dé todos los archivos nuevamente, independientemente de si Perforce cree que los necesita.
Solo para completar la información, si alguna vez desea eliminar los archivos localmente, puede hacerlo a través de p4v seleccionando el elemento "Eliminar del área de trabajo". Al hacerlo, se eliminarán los archivos localmente y se notificará que ya no tiene esos archivos, de modo que la próxima vez que sincronice, esos archivos se recuperarán del servidor.