2008-09-25 18 views

Respuesta

1

Supongo que trata los archivos y carpetas de la misma manera.

Para archivos: Depende (dependiendo de si tiene un servidor Windows o Unix). Tenemos este problema con nuestro servidor forzado de Windows (que versiones nuestro código de Java), donde muy ocasionalmente alguien verificará en un archivo con un problema de caso (esto causa errores de compilación porque es Java). La única forma de solucionar esto es eliminar el archivo y volver a enviarlo con el estuche correcto.

11

Una vez que está en Perforce, el estuche permanece fijo. Como mencionó Johan, puede borrar, establecer el nombre correctamente y agregarlo nuevamente. Sin embargo, hay una ligera ...

Si alguien más (con Windows) ya ha sincronizado la versión de carcasa incorrecta, cuando vuelvan a sincronizar la correcta, no cambiará la carcasa de su PC. Esta es una peculiaridad del sistema de archivos de Windows que reconoce el caso, pero sigue siendo fundamentalmente independiente del caso.

Si un número de usuarios se han sincronizado, y no es conveniente hacer que también eliminen del cliente (y arruinando las carpetas de sus máquinas), entonces puede recurrir a una oscura y sucia técnica de Perforce llamada " Checkpoint surgery ". No es para los pusilánimes, pero debes hacer esto:

  1. Detén tu servidor, toma un punto de control.
  2. Usando su editor de texto favorito que puede manejar archivos de varios megabytes, busque & y reemplace todas las ocurrencias del nombre de caso antiguo por el nuevo. Por supuesto, también puedes usar un script.
  3. Reproduzca su archivo de punto de control para volver a crear los metadatos de la base de datos Perforce.
  4. Reinicia tu servidor.

Esto afectará a todas las especificaciones del cliente del usuario de forma transparente, por lo que cuando se sincronicen obtendrán el caso correcto como por arte de magia.

Parece peludo, pero he tenido que hacerlo antes y siempre y cuando cuides, hagas una copia de seguridad, hagas una prueba, etc., entonces todo debería estar bien.

+3

Windows realmente no se preocupa por el nombre del archivo, pero * lo recuerda *. Uno de mis compañeros de trabajo se refiere a esto como "caso-retentivo". :-) –

+0

Creo que el recuerdo de la caja puede suceder sin importar cuál sea su plataforma. Sé que eso ya pasó en Linux antes, para mi eventual disgusto cuando rastreé el problema. Creo que necesariamente hace una comprobación insensible a mayúsculas y minúsculas de la ruta. –

+0

¿Podría alguien agregar un comentario que defina "borrar" en este contexto? ¿Simplemente quiere decir usar el sistema operativo para eliminar el archivo de la unidad? – Craig

2

No estoy seguro acerca de los directorios, pero hemos tenido este problema con los archivos. Para solucionarlo, tenemos que eliminar el archivo, enviar ese cambio, luego p4 agregar el archivo con el caso correcto y enviar el segundo cambio. Una vez hecho esto, los usuarios de Unix que han sincronizado el archivo de caso incorrecto tienen que sincronizar p4, luego eliminar físicamente el archivo (porque p4 no actualizará el caso) y luego sincronización p4: el archivo.

Nuestro servidor está en Windows, por lo que puede marcar la diferencia.

0

La cuestión es más de 3 años de edad, pero me encontré con un tema como este mientras se hace una importación de Subversion en Perforce y pensé que la información que obtuve podría ser útil para algunos. Es similar al método de borrado, pero te ayuda a conservar la historia. Utiliza el comando duplicado que puede no haber estado disponible en ese momento para conservar el historial. El proceso básicamente es:

  1. Duplicado a la ubicación temporal.
  2. Obliterate la ubicación que acabas de duplicar.
  3. Duplicar desde la ubicación temporal a la ubicación del caso renombrado.
  4. Obliterate the temporary location.

A través de esto, conserva el historial de cambios de archivos, pero también consígalos todos en la nueva ruta. Lamentablemente, no habrá un historial de cambio de caso de ruta, pero eso parece ser inevitable. De forma similar a otros métodos mencionados aquí, los usuarios necesitarán renombrar manualmente los directorios en su área de trabajo o eliminar y volver a sincronizar para obtener el nuevo nombre de ruta.

Además, P4V almacena en caché las rutas que muestra en el árbol, así que después de hacer esto, puede aparecer como el nombre anterior. Sin embargo, un comando p4 dirs mostrará el nuevo caso.

1

Creo que debería eliminar la memoria caché de Perforce, para que se pueda mostrar su modificación.

Puede cambiar el nombre con ABC cambiar el nombre a abc_TMP, luego abc_TMP cambiar el nombre a abc, luego borrar la memoria caché.

setps para borrar la memoria caché:

carpeta de inicio del usuario
  1. Abrir ventanas (en Windows 7 ==> C: \ Users \)
  2. Busque la carpeta llamada ".p4qt"
  3. cambiar el nombre de la carpeta de "old.p4qt"
  4. Ejecute Perforce, ¡ahora todo funciona!

NOTA: estos pasos descansarán en su configuración predeterminada.

Cuestiones relacionadas