OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Воскресенье, 22 Сентябрь, 2019 08:52

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Git и время
СообщениеДобавлено: Пятница, 01 Март, 2019 09:16 

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Git и время
СообщениеДобавлено: Пятница, 01 Март, 2019 10:49 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 345
Откуда: Россия, Стерлитамак
Вроде как гит позволяет указывать дату и время (не знаю, исходников или самого коммита), возможно надо сделать reset, и заново накатить коммиты с нужным временем


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Git и время
СообщениеДобавлено: Пятница, 01 Март, 2019 16:32 

Зарегистрирован: Воскресенье, 09 Декабрь, 2018 15:14
Сообщения: 54
Откуда: Equestria
Вместо перевода часов лучше юзать утилиту faketime. На случай венды есть аналоги.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Git и время
СообщениеДобавлено: Воскресенье, 21 Апрель, 2019 03:41 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2311
Откуда: Россия, Томск
Я, наверное, сильно поздно со своим ответом. Хотя, если вы тогда время переводили на конец апреля, то я буду в самый раз.

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

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

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

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

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Git и время
СообщениеДобавлено: Воскресенье, 21 Апрель, 2019 19:15 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8174
Откуда: Троицк, Москва
Rifat писал(а):
Кто что думает про использование технологии блок-чейн в компиляторах ...?
Как-то я это пропустил. Чуть не того от смеха )))


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB