git am / format-patch: controle o formato das terminações de linha
Criei um patch a partir de três confirmações usando
git format-patch <revision_three_commits_ago>
Isso cria três arquivos de patch que enviei por correio do meu notebook e os li no meu computador desktop (ambos são caixas do Windows
Quando eu faço agora
git am --3way --ignore-space-change *.patch
As correções se aplicam, mas não recebo os mesmos IDs SHA1 para as confirmações. Pesquisando um pouco nos arquivos corrigidos, descobri que as linhas modificadas no meu computador desktop terminam comLF
, enquanto as linhas modificadas no notebook (onde eu criei o patch) terminam comCR LF
.
Então, meu primeiro pensamento foi ligar paragit am
sem--ignore-space-change
, mas isso gera um erro patch não se aplica).
Como eu poderia dizergit format-patch
ougit am
sobre como lidar com as terminações de linha (msysgit 1.7.4
Tenho realmente que usar o VIM e alterar o formato do arquivo deUNIX
paraDOS
antes de poder aplicar os patches?
EDITAR Nem mesmo modificar os arquivos de correção com o VIM ajuda: Pensei,set ff=dos
e:%s/^M//g
ajudaria, mas não ajuda!
Na minha opinião, a aplicação de um patch deve resultar emexatament o mesmo conteúdo e também o mesmo hash de confirmação, como extraí do outro repositório em que o patch foi criado. Estou pensando errado sobre isso?