2011-04-14 11 views
8

Tenía un proyecto en Mac y lo cargué en un servidor forzado. Cuando obtuve el proyecto de PC, todas las terminaciones de línea se cambiaron y ahora no se compila en PC. ¿Hay alguna forma de cambiar automáticamente las terminaciones de línea como lo estaban antes o debo volver a enviar todo el proyecto desde Windows? ¿Hay alguna forma de forzarme a mantener mis archivos COMO SON? Realmente no quiero tener modificaciones estúpidas en mis archivos fuente.Perforce modificó las terminaciones de línea

Gracias!

EDIT:

Tiene que ver con la fuerza, me acaba de editar archivos en 10-20 MAC para hacer un proyecto multiplataforma para compilar. El resto de los archivos de 140k no se cambiaron y ni siquiera se abrieron en Mac (fueron abiertos por el compilador para compilarlos: P). Si copio el proyecto en PC, las terminaciones de línea son correctas.

+0

No creo que forzosamente tiene nada que ver con ello. Dijiste que tu proyecto estaba en una Mac. Es probable que sus editores de texto MAC hayan guardado los archivos con terminaciones de línea MAC a las que ha ingresado forzosamente. Ahora, si los sincroniza en Windows, saldrán inalterados, en formato Mac original. Necesita pensar en qué formato prefiere: ¿Windows o Mac? y luego verifique sus archivos de manera apropiada. –

+1

Las terminaciones de línea están bien, el proyecto se creó en PC y se copió en Mac solo para compilarlo. Nunca cambié la mayoría de los archivos en Mac. – Felics

Respuesta

8

Las terminaciones de línea para los archivos de texto están controladas por la configuración de las especificaciones del cliente. Debe asegurarse de que el valor 'LineEnd' de su cliente esté configurado correctamente. En general, esto debería dejarse en 'local', que debería hacer lo correcto para cualquier sistema operativo que esté usando.

Dicho esto, dependiendo de cómo se establece este valor en su Mac cuando originalmente subido los archivos, supongo que no, posiblemente, podría haber algún problema al sincronizar los archivos a su PC.

Me gustaría comprobar para asegurarse de que LineEnd se establece en 'local' para sus clientes. Hay una nota en el sitio de Perforce Knowledge Base here que habla más en profundidad acerca de la configuración adecuada para los clientes de Macintosh. Ese también podría ser un buen lugar para comenzar y asegurarse de tener las cosas correctamente configuradas en su Macintosh.

+0

El manejo de final de línea de Perforce se rompe por completo. Ninguno de sus modos hace lo que se describe en la documentación obligatoria. En muchos casos, el comportamiento es convertir "CRLF" en "CRCRLF" – Richard1403832

0

Esto no tiene nada que ver con la realidad forzosamente, aunque sí manejar el problema.

http://kb.perforce.com/article/63

Los finales de línea en UNIX, PC y Mac máquinas son todas diferentes. Esto es lo que ves. La transferencia del mismo archivo entre PC y Mac a través de cualquier medio tendría los mismos resultados. Probablemente pueda configurar su editor en la Mac para guardar el archivo con terminaciones de línea de Windows si quiere evitarlo de otra manera.

estaba equivocado "Perforce procesa todos los archivos de texto usando LF al estilo Unix el fin de línea". Verificaría el valor LineEnd del cliente p4 (debería ser local en ambas máquinas, creo) y me aseguraré de que está usando una versión de p4> = 2001.1

+1

Tiene que ver con forzosamente, acabo de editar 10-20 archivos en MAC para hacer un proyecto multiplataforma para compilar. El resto de los archivos de 140k no se cambiaron y ni siquiera se abrieron en Mac (fueron abiertos por el compilador para compilarlos: P). Si copio el proyecto en PC, las terminaciones de línea son correctas. – Felics

+0

Sí, lo siento. Simplemente lea "Perforce procesa todos los archivos de texto usando terminaciones de línea LF estilo Unix". ¿Estás usando una versión forzada> 2001.1? ¿Ha revisado para ver cuál es su valor de "LineEnd" del cliente p4? – olan

1

Sí, puedes. El uso de terminaciones de línea Unix para ambos clientes les indicará a los clientes forzados que dejen los archivos sin cambios desde la forma en que se enviaron. También puede configurar un disparador en el servidor para forzar de esta manera, remito a mi respuesta a esta pregunta:

Setting Perforce line endings

Cuestiones relacionadas