У знакомого случилась проблема. Они используют git в качестве хранилища исходников. Затем им для тестирования одной сторонней программы нужно было переводить время на компьютере на несколько месяцев вперед, так как эта функциональность включалась только после определенной даты. Соответственно разработчики переставляли время на компьютере на несколько месяцев вперед и таким образом делали check in в git. А потом, когда время переставили назад, начали происходить странные вещи с git (странные для них, но скорее всего git так и должен работать, так как это распределенное хранилище данных), что какие-то функции, которые были добавлены и удалены в то время, когда время было переведено, снова начали появляться в последних версиях программы. Если кто-нибудь знает что им можно сделать чтобы решить проблему, то сообщите пожалуйста.

Но, на самом деле, я хотел затронуть более широкую тему: можно ли полагаться на время при компиляции, например, или при хранении исходников в системе контроля версий. То, есть, допустим, для перекомпиляции только изменившихся файлов, компилятор может проверять, что время изменения файла не позднее времени последней компиляции. Но, что если переводили время на компьютере? Как мне кажется, здесь можно было применить что-то вроде технологии блок-чейн, когда последовательность транзакций нельзя нарушить. Кто что думает про использование технологии блок-чейн в компиляторах и системах хранения версий?