git am / format-patch: formato de control de terminaciones de línea
Creé un parche a partir de tres confirmaciones usando
git format-patch <revision_three_commits_ago>
Esto crea tres archivos de parche que envié por correo desde mi computadora portátil y leí el correo en mi computadora de escritorio (ambos son cajas de Windows).
Cuando lo hago ahora
git am --3way --ignore-space-change *.patch
se aplican los parches, pero no obtengo los mismos ID SHA1 para los commits. Al buscar un poco en los archivos parcheados, descubrí que las líneas modificadas en mi computadora de escritorio terminan conLF
, mientras que las líneas modificadas en el cuaderno (donde creé el parche) terminan conCR LF
.
Entonces, mi primer pensamiento fue llamar agit am
sin--ignore-space-change
, pero esto me da un error patch no aplica).
¿Cómo podría decirle agit format-patch
ogit am
acerca de cómo manejar las terminaciones de línea (msysgit 1.7.4)?
¿Realmente tengo que tomar VIM y cambiar el formato de archivo deUNIX
aDOS
antes de que pueda aplicar los parches?
EDITAR Ni siquiera modificar los archivos de parche con VIM ayuda: pensé,set ff=dos
y un:%s/^M//g
@ ayudaría, pero no lo hace!
En mi opinión, aplicar un parche debería resultar enexactament el mismo contenido y también el mismo hash de confirmación como el que obtuve del otro repositorio donde se creó el parche. ¿Estoy pensando mal en eso?