OberonCore
https://forum.oberoncore.ru/

Git и время
https://forum.oberoncore.ru/viewtopic.php?f=27&t=6362
Страница 1 из 1

Автор:  Rifat [ Пятница, 01 Март, 2019 09:16 ]
Заголовок сообщения:  Git и время

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

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

Автор:  adva [ Пятница, 01 Март, 2019 10:49 ]
Заголовок сообщения:  Re: Git и время

Вроде как гит позволяет указывать дату и время (не знаю, исходников или самого коммита), возможно надо сделать reset, и заново накатить коммиты с нужным временем

Автор:  SovietPony [ Пятница, 01 Март, 2019 16:32 ]
Заголовок сообщения:  Re: Git и время

Вместо перевода часов лучше юзать утилиту faketime. На случай венды есть аналоги.

Автор:  Александр Ильин [ Воскресенье, 21 Апрель, 2019 03:41 ]
Заголовок сообщения:  Re: Git и время

Я, наверное, сильно поздно со своим ответом. Хотя, если вы тогда время переводили на конец апреля, то я буду в самый раз.

Могли бы написать, какая у вас ОС, чем компилируете и т.п.

Git ничего не делает со временем, кроме как сохраняет время выполнения коммита. Git не сохраняет время модификации файла и не восстанавливает его при checkout'е. Вообще, Git хранит только имя файла и его содержимое. Особое исключение было сделано для атрибута "выполнимости" файла под Linux, всё. Когда вы делаете checkout, записанные Git'ом файлы будут иметь дату-время на момент выполнения checkout'а. То есть, Git - это не машина времени. Это простое клиентское приложение, которое пишет какие-то файлы на диск. Операционная система сама присваивает время модификации этим файлам.

А вот различные системы компиляции и сборки очень часто полагаются на время модификации файлов, чтобы определить, что человек отредактировал, а что не трогал с момента прошлой компиляции. При этом моментом компиляции считается дата-время изменения соответствующего бинарного файла.

Соответственно, если вы перевели время в будущее, что-то скомпилировали, а затем перевели время назад, поправили исходники "в прошлом" и снова скомпилировали, то вполне возможно, что компилятор посчитает, что у него уже есть более актуальный бинанрик "из будущего", не станет утруждать себя лишними телодвижениями, а просто скажет, что всё нужное уже давно скомпилировано.

Насчёт технологий блокчейн я вам скажу следующе: используйте почаще Build All и не морочьте людям голову. : ))
Как говорится, примите Ребилдол.

К тому же, Git и так использует blockchain, у него каждый следующий коммит содержит хэш предыдущего, но это вам что-то не помогает. Потому что проблема в другом.

Автор:  Info21 [ Воскресенье, 21 Апрель, 2019 19:15 ]
Заголовок сообщения:  Re: Git и время

Rifat писал(а):
Кто что думает про использование технологии блок-чейн в компиляторах ...?
Как-то я это пропустил. Чуть не того от смеха )))

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/