2010-05-30 3 views
7

Почему на той же машине, вычисляющей хэш SHA-1 того же файла, создается два совершенно разных хэша SHA-1 в окнах и внутри msysgit Git bash?Почему другой SHA-1 для того же файла под окнами или linux?

Не был ли разработан алгоритм SHA-1 для получения одного и того же хэша для одного и того же файла во всех ОС?

На окнах (с HashCheck):
Файл hello.txt
22596363b3de40b06f981fb85d82312e8c0ed511

Внутри Git Баш окна с msysgit (в той же машине, тот же файл):

$ мерзавец хэш-объект hello.txt
3b18e512dba79e4c8300dd08aeb37f8e728b8dad

+1

line endings? ... –

+0

Если вы правильно настроили Git, тогда окончание строк текстового файла обрабатывается правильно. См. Http://help.github.com/dealing-with-lineendings/ - NB Это относится и к пользователям * nix! –

ответ

10

Git добавляет a header ("блоб", длину, то нуль) до вычисления SHA-1. См. this blog post о том, как эмулировать вычисления вне git.

+0

Большое спасибо Мэтью! Веселая история в том, что вчера я получил свою копию Pro Git из Amazon ;-) Я начал читать его в сети точно через минуту после прочтения вашего ответа здесь: aka NOW! –

 Смежные вопросы

  • Нет связанных вопросов^_^