¿Cómo puedo hacer un git cvsimport con characeters especiales en los campos?

Tenemos aproximadamente 100 repositorys CVS que nos gusta convertir a git. Intentamos usar git cvsimport que funciona bien.

Pero tenemos algunos files con caracteres especiales en su nombre de file. Los caracteres especiales terminan como caracteres no imprimibles en el nombre del file en el nuevo repository de git.

Tanto los clientes de CVS como el server de CVS se están ejecutando en Windows. Los clientes de Windows están usando el juego de caracteres cp1252 para todos los files. git cvsimport se invoca utilizando cygwin, ya que no está disponible para Windows.

¿Alguna idea para get los nombres de file correctos en git después de ejecutar git cvsimport ?

Terminamos escribiendo dos scripts para corregir nombres de files y directorys en todas las confirmaciones.

Para files:

 #!/bin/bash echo "$1 --> $2" cmd="if [ -f '$1' ] then mv '$1' '$2' fi" git filter-branch --tree-filter "$cmd" --force -- --all 

Para directorys:

 #!/bin/bash echo "$1 --> $2" cmd="if [ -d '$1' ] then mv '$1' '$2' fi" git filter-branch --tree-filter "$cmd" --force -- --all 

Dependiendo del sistema operativo y del terminal, no puede ingresar algunos caracteres. La mayoría de las veces puede simplemente escribir un ? en el primer patrón. Los scripts suponen que un file / directory es visible en la twig de salida actual.

Intereting Posts