git encoding character-encoding git-svn git-extensions

¿Qué puede causar que git se meta con la codificación de caracteres?



encoding character-encoding (1)

Y ahora revelemos la dolorosa verdad (dolorosa para mi ego, no para los usuarios de git): me metí con los acentos, no con git.

Podría simplemente haber eliminado la pregunta que pensamos erróneamente que git puede estropear los acentos, pero considerando el número de votos positivos, creo que muchas personas cometen el mismo error que yo, así que decidí responder a mi propia pregunta. Para establecer la verdad, y tal vez ayudar a las personas en el mismo caso:

  1. Git no toca a otros personajes que no sean saltos de línea.
  2. Rompí los acentos antes de comprometerme, y no lo noté porque no le presté suficiente atención. Para ello, edité algunos de los archivos con eclipse. Eclipse no reconoció la codificación y todos los acentos fueron reemplazados por una secuencia de bytes extraños al guardar. Eso es todo.

Gracias de nuevo a Dmitry Pavlenko por darme indicaciones sobre cómo investigar este problema.

+1 a "git reflog"

Feliz acento de fijación; =)

Edición: git no se mete con la codificación de caracteres. Esto todavía está aquí para compartir conocimientos y evitar que otros cometan el mismo error.

El contexto : mi empresa utiliza un repositorio svn. Estoy usando git-svn como cliente para interactuar con este repositorio. Todos los archivos de texto en el proyecto están (y deben estar) codificados con la codificación predeterminada de Windows (cp -....). Uso git-extensions, y algunas veces la línea de comandos para pilotar git.

Lo que hice : durante los últimos 3 días, estaba trabajando en una nueva función, e hice una serie de confirmaciones locales. Finalmente, aplasté todos estos compromisos en uno solo usando una rebase interactiva, luego usé git svn dcommit para empujar todo en el repositorio svn en un solo compromiso.

Lo que sucedió entonces : un colega me dijo que todos los acentos estaban desordenados en los archivos que modifiqué y en los nuevos archivos después de mi confirmación. Ya había comprometido archivos de texto con acentos en el mismo repositorio con mi instalación de git + svn antes, y es la primera vez que me enfrento a este problema.

Mi investigación : hice lo siguiente para investigar: abrí los archivos con notepad ++ e intenté las codificaciones más recientes (incluidas Windows Default y UTF-8) para verlas: ninguna de ellas podía mostrar los acentos correctamente, y siempre se representan diferentes acentos Por la misma secuencia de glifos extraños.

La solución temporal : creé rápidamente un commit de revertido con la extensión git y lo "dcommited".

La pregunta : mi repositorio svn empresarial está bien, pero ahora tengo los dos problemas siguientes para resolver:

  1. Entiende lo que pasó con los personajes con acento.
  2. Recupere mi trabajo del historial de SVN y confírmelo de manera adecuada (si es posible sin revisar manualmente todos los caracteres con acento)

¿Alguien puede proporcionar algunas pistas (soy bastante nuevo en git)?