Tengo un repositorio que tiene commiters de Windows (cp1252) y linux (utf8). Obviamente, Git se confunde y pone nombres inválidos (desde la perspectiva de Linux). Sé que puedo usar ganchos para cambiar el nombre de los archivos en un lado (en el lado de Linux, por ejemplo, cambiar el nombre de los archivos de cp1252 a utf8 cuando aparecen y viceversa), pero ... ¿cómo lo hago exactamente? Exactamente qué ganchos tengo que escribir?Git: manejo de nombres de archivos de codificación mixta
Respuesta
¡Buena pregunta!
http://www.serverwatch.com/tutorials/article.php/3705216 Habla sobre una herramienta llamada "convmv" que arreglará los nombres de los archivos. Esto podría ser útil.
Iconv http://www.gnu.org/software/libiconv/ puede convertir texto arbitrario en diferentes conjuntos de caracteres.
http://ozmm.org/posts/git_post_commit_for_profit.html Te dice cómo hacer un gancho post-commit, más específico de Ruby. Parece que acaba de agregar un script para ejecutar en .git/hooks/post-commit, y git lo ejecutará después de confirmar. Podría ser un script que incluso ejecuta un script en tu git repo.
Para la secuencia de comandos, yo recomendaría simplemente escanear con find, convertir el nombre de archivo a UTF-8, ver si ya es ese nombre, y si no, moverlo.
pero ¿se ha post-commit el gancho correcto? Estaba pensando que tenía que convertir (en Linux) de cp1252 a utf8 después de recibir archivos y volver a cp1252 antes de enviar o comparar archivos al otro repositorio (ya que las máquinas Linux son una minoría en la red, y convmv es fácilmente instalable en * buntu) ... – Massa
'pre-commit' parece prometedor. ver: http://git-scm.com/book/es/Customizing-Git-Git-Hooks – tessi
- 1. Codificación de nombres de archivos en Java
- 2. C++ WinAPI: manejo de largas rutas de archivos/nombres
- 3. Convenciones de codificación - Enumeración de nombres
- 4. git diff - manejo de líneas largas?
- 5. Codificación de rutas de archivos
- 6. Git: cómo especificar nombres de archivos que contienen notación octal en la línea de comandos
- 7. Convenciones de codificación de nombres de JavaScript y PHP
- 8. cómo saber la codificación de caracteres de los nombres de archivo (según el sistema de archivos)
- 9. Manejo de codificación de caracteres en la URI en Tomcat
- 10. Git: cómo ignorar los archivos ocultos/archivos de puntos/archivos con nombres de archivos vacíos a través de .gitignore?
- 11. Manejo de caracteres especiales en C (codificación UTF-8)
- 12. jenkins: historial de compilación mixta después de reiniciar
- 13. Manejo de nombres alternativos de propiedad en Jackson Deserialización
- 14. PHP detección de la codificación del sistema de archivos
- 15. Manejo del mapa de archivos en C++
- 16. Manejo con la secuencia de archivos temporales
- 17. convención de codificación del espacio de nombres raíz en C++
- 18. Evite nombres de controlador y acción de codificación fija
- 19. ¿Qué codificación usa ZipArchive para almacenar nombres de archivos dentro del archivo creado?
- 20. ¿Cómo manejo las imágenes en un repositorio de Git?
- 21. ¿Existen estándares de codificación para archivos XML?
- 22. Ruby - UTF-8 codificación de archivos
- 23. Codificación diferente de archivos latex y bibtex
- 24. manejo de un montón de pequeños archivos temporales
- 25. Limpiar el manejo del espacio de nombres con dom4j
- 26. ¿Cómo manejar archivos comprometidos con Git en Linux con nombres de archivo de Windows inválidos?
- 27. nombres de archivos java patrón de filtro
- 28. Configuración de nombres de archivos para PHPUnit
- 29. Excluir archivos de git-diff
- 30. Archivos específicos de GIT Branch?
¿No sería más fácil convertir los archivos una vez y usar UTF-8 en Windows también? – TimWolla