Estoy escribiendo un fast-export/fast-import para pero estoy teniendo problemas con los directorios y los archivos que contienen espacios en sus nombres.Formato y espacios de exportación rápida de git
Por ejemplo, un git fast-export
de algo así como:
git mv "new directory" "second directory"
termina siendo exportado como:
D new directory/hello.c
M 100644 :1 second directory/hello.c
En lugar de un "move
" (R)
operación. Lo mismo sucede con un archivo con espacios en el nombre.
¿Hay alguna manera de manejarlo correctamente?
¿Significa que Git no puede manejar los cambios de nombre en las rutas con espacios?
Editado con un ejemplo real a continuación:
Tengo algo como esto en una confirmación:
R src/samples/sampledata src/samples/samplebase
* R src/samples/samplebase/Test.Workflow.xml src/samples/samplebase/new/Test.Workflow.xml
y falla la importación diciendo
fatal: Path src/samples/samplebase/Test.Workflow.xml not in branch
Por lo tanto, entiendo que doesn Soporta un movimiento de un directorio y luego un movimiento de un archivo dentro ... Es un poco raro, ¿no?
Esto es confuso porque la operación de "cambio de nombre" también es compatible: nombre de archivo Cambia el nombre de un archivo o subdirectorio existente a una ubicación diferente dentro de la bifurcación. El archivo o directorio existente debe existir. Si el destino existe, será reemplazado por el directorio de origen. 'R' SP SP LF –
pablo
@pablo: He editado mi respuesta para abordar su situación. No mueves un directorio cuando importas en Git. Simplemente lo elimina después de procesar todos los archivos. – VonC
@vonc: ok, entonces, ¿básicamente significa que no puedes usar "mover" haciendo una importación de git? Eso no es lo que dice la documentación, pero lo estoy intentando en este momento y no funciona haciendo movimientos, desafortunadamente. El problema es que parece ser bastante aleatorio: un directorio se renombra de mayúscula a minúscula, luego 1000 commits más tarde falla un archivo, mientras que otros se modifican e importan correctamente entre estos dos commits. Parece que "mover" es compatible con la importación rápida de git para que otros SCM que manejan correctamente los movimientos puedan exportar fácilmente, pero (a menos que tenga algo mal aquí), realmente no funciona. – pablo