Por que o sed faz o git considerar todo o arquivo reescrito?

1

Usando o Cygwin no Win7x32, quando eu uso sed para substituir alguns valores em um arquivo, git considera o arquivo inteiro para ser completamente reescrito (ou seja, 500 inserções, 500 exclusões). Oque esta acontecendo aqui? Apenas uma linha no arquivo é realmente alterada e o valor de substituição é o mesmo comprimento que o original. Espero que git reconheça apenas as linhas alteradas. A única coisa que parece ter mudado é os valores de tempo e inode como lidos de stat some/file.txt . Existe uma maneira de informar git para ignorar quaisquer valores alterados relevantes para a duração das minhas sed chamadas ou para informar sed para não alterar nenhum valor que faça com que git veja um arquivo com conteúdo totalmente novo?

    
por wes 06.03.2012 / 18:54

1 resposta

4

Eu não trabalho muito com o Windows, mas talvez sed esteja alterando seus marcadores de fim de linha. O comando file dirá qual codificação de texto está sendo usada. Além disso, você pode executar cat -e antes e depois de chamar sed ; se o arquivo for codificado para Windows, cada linha terminará com ^M .

    
por 06.03.2012 / 19:37

Tags