2011-09-19 23 views
13

Estoy tratando de abrir una aplicación Perforce existente. Realicé algunos cambios locales, como eliminar archivos, que deseo deshacer (es decir, quiero que mi copia local coincida exactamente con el repositorio una vez más: elimine los archivos agregados, restaure los archivos eliminados y deshaga los cambios).Perforce Revert Muestra "archivo (s) no abierto en este cliente"

Cuando intento de revertir mediante el cliente GUI P4V, veo este error:

file(s) not opened on this client 

¿Qué estoy haciendo mal?

Logré revertir todos los archivos modificados, pero no los archivos agregados/eliminados.

Editar: hice lo siguiente:

  • conectarse a un servidor Perforce usando P4V
  • mapear un directorio para mi sistema de archivos local (digamos que C:\Perforce)
  • obtener la última versión de el repositorio
  • Ir a C: \ Perforce en el Explorador de Windows
  • Elimina algunos archivos y carpetas
  • añadir algunos archivos y carpetas

me gustaría volver al estado "virgen", la copia exacta de lo que hay en el servidor cuando llegué a la última versión del repositorio por primera vez.

+0

¿Qué quiere decir con "abrir una aplicación forzosa existente"? ¿Estás hablando de un cliente (como p4v) u otra cosa?Cuando eliminó y agregó archivos, ¿lo hizo con los comandos 'p4 add' p4 'p4 delete' o con sus equivalentes en la guía p4v? Además, cuando dice que quiere que su copia local coincida exactamente, ¿se refiere a usted? archivo por archivo idéntico a lo que está en el almacén (no hay archivos extraños), o quiere decir que quiere que los archivos en su espacio de trabajo coincidan con el depósito y tener archivos adicionales en su área de trabajo están bien. – Mark

+0

@Mark He actualizado mi pregunta con detalles. – ashes999

+0

¿Agregó y eliminó los archivos a través de Perforce? –

Respuesta

20

Por la apariencia de la descripción editada, usted agregó y eliminó archivos directamente en el sistema de archivos y no a través de forzarlos. Por lo tanto, Perforce no sabe nada sobre esos cambios, por lo que no hay nada que revertir. Normalmente, cuando desea agregar un archivo, usa 'p4 add' (o la operación p4v equivalente), y cuando lo elimina, debe usar 'p4 delete' (o de nuevo, la operación equivalente de p4v).

Realmente, la mejor opción para volver a un estado prístino es activar la copia local del código en c: \ forzado (en el explorador de Windows), ir a p4v, hacer clic con el botón derecho en el área que desea sincronizar y elegir "Obtener revisión ... . "y en el cuadro de diálogo siguiente, asegúrese de que la casilla de verificación" forzar operación "esté marcada. Esto le indicará a Perforce que desea una copia nueva de todo, independientemente de si la ha sincronizado o no.

También puede ejecutar "conciliar el trabajo fuera de línea" en p4v. Haga clic con el botón derecho en el área de depósito y elija esa opción. Analizará la estructura de la carpeta local y le dará un puerto de qué archivos se han agregado que no existen de manera forzosa, qué archivos se eliminaron y qué archivos se modificaron. Desde ese diálogo, puede hacer clic con el botón derecho en los archivos locales que no existen a la fuerza y ​​eliminarlos, o puede 'p4 agregarlos'. También puede sincronizar archivos eliminados.

HTH.

+3

Esto es lo que quería saber. SVN, Hg, etc. todos permiten usar revertir para eliminar archivos locales que no están en el repositorio y volver a agregar archivos eliminados que todavía están en el repositorio. – ashes999

+0

Perforce solo hará un seguimiento de los archivos que "sabe" sobre. Así que wh es que elimina los archivos locales que no están almacenados en el repositorio, Perforce no sabe nada sobre ellos. Solo tenga en cuenta que cada vez que actúe sobre archivos en su área de trabajo, si desea saberlo al respecto, debe usar los comandos Perforce (o luego usar algo como conciliar el trabajo fuera de línea para volver a sincronizarse con lo que Perforce cree que tiene localmente en su estación de trabajo) – Mark

+1

eso es comprensible. Lo que no entiendo (tal vez por mi historial de SVN/Hg) es que Perforce parece "ignorar" el sistema de archivos y no permitirle un solo clic para volver exactamente a lo que hay en el servidor. Eso me parece una falla de usabilidad. – ashes999

3

Solo un extra para no señalar otra causa para esto. Si el nombre del archivo contiene un carácter inusual que no se puede traducir correctamente, el nombre en el cliente nunca coincidirá con el del servidor. La solución en este caso es detectar ese carácter en el nombre del archivo (será un signo de interrogación en Linux) y usar un comodín para ayudar a identificar el archivo en el servidor para que pueda eliminarlo, etc. (p4 borrar el archivo es un camino a seguir).

+0

Hola, gracias por su respuesta/comentario. – ashes999

Cuestiones relacionadas