Я, наверное, сильно поздно со своим ответом. Хотя, если вы тогда время переводили на конец апреля, то я буду в самый раз.
Могли бы написать, какая у вас ОС, чем компилируете и т.п.
Git ничего не делает со временем, кроме как сохраняет время выполнения коммита. Git не сохраняет время модификации файла и не восстанавливает его при checkout'е. Вообще, Git хранит только имя файла и его содержимое. Особое исключение было сделано для атрибута "выполнимости" файла под Linux, всё. Когда вы делаете checkout, записанные Git'ом файлы будут иметь дату-время на момент выполнения checkout'а. То есть, Git - это не машина времени. Это простое клиентское приложение, которое пишет какие-то файлы на диск. Операционная система сама присваивает время модификации этим файлам.
А вот различные системы компиляции и сборки очень часто полагаются на время модификации файлов, чтобы определить, что человек отредактировал, а что не трогал с момента прошлой компиляции. При этом моментом компиляции считается дата-время изменения соответствующего бинарного файла.
Соответственно, если вы перевели время в будущее, что-то скомпилировали, а затем перевели время назад, поправили исходники "в прошлом" и снова скомпилировали, то вполне возможно, что компилятор посчитает, что у него уже есть более актуальный бинанрик "из будущего", не станет утруждать себя лишними телодвижениями, а просто скажет, что всё нужное уже давно скомпилировано.
Насчёт технологий блокчейн я вам скажу следующе: используйте почаще Build All и не морочьте людям голову. : )) Как говорится, примите Ребилдол.
К тому же, Git и так использует blockchain, у него каждый следующий коммит содержит хэш предыдущего, но это вам что-то не помогает. Потому что проблема в другом.
|