2009-12-27 9 views
6

Mis archivos están en un servidor Ubuntu Linux remoto. Cuando descargo los archivos y los edito en el editor de texto WinSCP o en Notepad ++, el estilo de fin de línea del archivo cambia a Windows. Así que cuando vuelvo a guardar el archivo en Ubuntu, las líneas están apagadas y SVN Diff cree que todas las líneas han cambiado.Problemas con WinSCP con estilo de final de línea en Ubuntu Linux al usar SVN Diff

FYI, edito el archivo haciendo doble clic en el archivo en WinSCP. Este programa inicia el archivo en el editor. Cada vez que guardo, el archivo se copia automáticamente en el servidor Linux.

¿Cómo evito el problema de estilo al final de la línea?

+0

te refieres a newli nes en lugar de espacios en blanco? ¿Tiene un editor compatible con las líneas nuevas de Unix o, al menos, está configurado para detectar automáticamente las nuevas líneas y actuar en consecuencia? – Zeograd

+0

No estoy seguro si sus líneas nuevas o espacios en blanco. Puede que tengas razón, pueden ser nuevas líneas. ¿Cómo se cambia el editor predeterminado para ser editor compatible con las nuevas líneas? Puedo usar notepad ++. – Tihom

+0

Intenté cambiar el archivo para usar el carácter EOL de unix en el bloc de notas ++ pero el diff de SVN todavía pensaba que cada línea cambiaba – Tihom

Respuesta

2

No pude averiguar por qué tuve el problema de espacio en blanco, pero pude averiguar cómo ignorar los espacios en blanco.

Se puede utilizar: svn diff -x'-uw --ignore-eol-style'

Esto funcionó bastante bien.

+0

En realidad está ignorando los finales de línea, por lo que no está resolviendo su problema original. – vesperto

3

¿this thread ayuda? Más precisamente esta parte:

De esto, me parece que ha obligado a WinSCP a utilizar la transferencia de modo de texto, que implica la conversión de unix-> dos. Simplemente fuerce el modo binario para evitar la conversión.

+0

Esto no funcionó para mí. Tampoco funcionó para la persona en el hilo por lo que puedo decir. – Tihom

1

Debe usar el formato de línea Unix. Para configurar esto, vaya a Configuración> Preferencias y seleccione la pestaña "Nuevos documentos/Directorio predeterminado". Busque "Formato" en los controles de "Nuevo documento" y seleccione "Unix". Esto asegurará que cualquier documento nuevo tenga el formato correcto. Lo he usado con un servidor remoto de Linux y no he visto un problema.

Normalmente, el archivo devuelto se creará con un nombre temporal y los cambios escritos en él. El archivo original sería eliminado y el nuevo archivo renombrado para tomar su lugar. Esto haría que el archivo devuelto sea un documento "nuevo", por lo que esta configuración de preferencia debería dar el formato correcto.

0

Si usa la transferencia de modo text/ascii con WinSCP, convertiría el estilo de final de línea a Unix al cargarlo.

Así que supongo que el problema podría ser que su archivo tenga inicialmente estilo de final de línea de Windows. Al descargar, nada cambia, pero al cargarlo, se convierte al estilo Unix.

Ya sea que arregle su archivo para usar el estilo de Unix como debería (si ese es el caso) o use el modo de transferencia binaria.

No solo necesita configurar el modo de transferencia binaria para WinSCP en general (cuál es el predeterminado en las versiones recientes de WinSCP), sino que también debe asegurarse de que la opción de preferencia Forzar modo de transferencia de texto para los archivos editados en editor externo para su editor externo (Notepad ++) está apagado:
https://winscp.net/eng/docs/ui_editor_preferences

Tenga en cuenta que esta opción no está disponible para su editor interno WinSCP. Con él, los archivos se transfieren siempre en el modo texto/ascii.

0

Uso Notepand2 y WinSCP para editar archivos en Windows y el servidor está en Linux.

En mi caso, el problema fue con la conexión WinSCP.

Hice clic en "Editar" antes de la conexión y luego "Avanzado" hubo una opción para los caracteres de fin de línea. Cambiarlo resolvió el problema en mi caso.

La opción en la pantalla ya es la que funcionó. Ealier solo había "LF".

enter image description here

0

La solución sencilla y adecuada a esta cuestión se puede hacer por entrar en la configuración de su editor externo en WinSCP

En: View > Preferences > Editors

Seleccione su editor externo y haga clic en Edit ...

Luego, desmarca: Force text transfer mode for files edited in external editor

Cuestiones relacionadas