¿Cómo se manejan los cambios de tipo de archivo en Perforce?
Pregunta
Cuando agrega un archivo a Perforce, intenta determinar qué tipo de archivo es (texto, binario, utf16, etc.). Esto hace un buen trabajo, pero aparentemente nunca vuelve a comprobar el tipo de archivo después del envío inicial al control de versiones. Un compañero de trabajo recientemente realizó un cambio en un archivo de texto que lo convirtió a Unicode (utf16). Perforce no reconoció esto y todavía lo consideró escribir texto , por lo que cuando otros recuperaron el archivo, estaba dañado.
Solucionamos el problema volviendo a enviar el archivo y cambiando explícitamente el tipo de archivo a utf16 , pero preferiríamos que esto ocurriera automáticamente. Hay formas de obligarlo a usar siempre un cierto tipo de codificación, pero no sé si me gusta esa idea. ¿Alguien ha tratado y encontrado una solución a este problema?
Solución
El soporte técnico de Perforce tenía esto que decir:
Perforce no verifica el contenido de el archivo cuando envía una edición.
Comprobando cada edición de archivo individual para El contenido es potencialmente muy caro. " texto " y "utf16" no son los únicos tipos de archivos a tener en cuenta, un archivo potencialmente podría cambiar el tipo de " texto " a "binario" por ejemplo.
Otro problema es que a veces un el usuario quiere anular el valor predeterminado comportamiento de cómo Perforce reconoce una expediente. ¿Cómo debe reaccionar el servidor? este caso si el tipo de archivo real lo hace no coincide con el tipo de archivo del usuario proporciona?
Por estas razones, Perforce solo determinar el tipo de archivo cuando el archivo se agrega y toma el " mapa de tipo " y el parámetro de comando " -t " dentro cuenta.
Por otro lado, puedes prevenir su situación vuelva a suceder por empleando un "cambio de contenido" desencadenar. Este disparador verificaría el contenido del archivo y compárelo con el tipo de archivo especificado, rechazando cualquier enviar que crea una falta de coincidencia.