2009-08-04 5 views
5

Git-svn permitió un nombre de archivo duplicado, solo con diferentes casos, para ser agregado a nuestro repositorio de subversión.¿Cómo recuperarse de git-svn colocando un archivo dulcificado diferente en el repositorio?

En Windows esto significaba que la subversión no podía verificar el archivo, quejándose de un duplicado.

Otro desarrollador eliminó del repositorio la versión con carcasa incorrecta. Ahora, cuando trato de hacer un git-svn rebase, recibo un mensaje de "could not detach HEAD" y una queja sobre el nombre del archivo en cuestión que no se ha rastreado y que necesita ser sobrescrito. Eliminar el archivo hace que git-svn se queje de que el archivo necesita ser actualizado.

¿Es la única solución para copiar el repositorio a una máquina con un sistema de archivos con distinción entre mayúsculas y minúsculas hacer la rebase y luego volver a moverla?

Entiendo que git-svn no está listo para el trabajo real en Windows, pero me gustaría recuperarme de este lío que ha creado.

Respuesta

6

Mejor respuesta actual (no sé si esto existía la espalda cuando este se planteó inicialmente):

git config core.ignorecase cierto

vuelva a realizar el rebase. Continuará sin error, e incluso manejará adecuadamente el cambio de mayúscula en el nombre del archivo.

Esto no es específico de git-svn. Puede suceder en una 'rebase' git recta.

Espero que ayude a la siguiente persona ....

+0

¡Eso hizo el truco! – toholio

0

De la misma manera siempre resuelve este problema en Windows. Debe cambiar el nombre de uno de los archivos, luego puede restaurar el otro.

+0

el archivo ha sido eliminado del repositorio SVN por lo que un mv git no es una opción. Simplemente renombrar el archivo desde el shell tiene el mismo efecto que eliminarlo, es decir, git se queja de que necesita ser actualizado. O tal vez entendí mal lo que querías decir. – toholio

1

Me encontré con un problema similar con Git (solo, ni siquiera con git-svn) obteniendo muy confundido acerca de cambiar el caso de los nombres de archivo cuando se usa un sistema de archivos Mac insensible a mayúsculas y minúsculas. No encontré una solución para arreglar el repositorio en el sistema de archivos insensible a mayúsculas y minúsculas, sino que creé un nuevo volumen sensible en un archivo .dmg, montando eso, y usé Git en ese volumen en su lugar.

Puede que algunos de los comandos de "plomería" de Git sean útiles. Por ejemplo, git checkout-index tiene un indicador -f para forzar la sobreescritura de archivos existentes (también use -a con ese comando, de lo contrario, podría no hacer nada). Los comandos de fontanería generalmente son más potentes (y más peligrosos) que los comandos de porcelana, pero pueden brindarle la flexibilidad que necesita para solucionarlo.

+0

Después de más podding llegué a la misma solución que usted, moviéndolo a un volumen sensible a mayúsculas y minúsculas. En mi situación, esto significaba moverlo a una caja de Linux. Supongo que eventualmente alguien proporcionará una buena manera de arreglar esto sin salir de Windows. – toholio

Cuestiones relacionadas