2013-08-24 4 views
0

Я искал исходный код Scons, но, похоже, не смог определить, где он рассчитывается для timestamp (не было проблем с поиском вычисления MD5).SCONS Механизм отметки времени

И страница руководства просто ссылается как временная метка и не углубляется в глубину того, что она на самом деле. Может быть, это очевидно для некоторых, но я до сих пор неясно, что именно это означает.

Отметка о времени?

Является ли следующий способ использования Scons для согласования временной шкалы?

time.ctime(os.path.getmtime(file)) 

В основном проверка на предмет изменения файла?

А затем сравнить это с тем, что во время выполнения?

ответ

3

Если вы когда-либо работали с Make, концепция должна быть знакомой. В основном это сравнивает время модификации источника с целью, и если источник более новый, он должен перестроить цель. Существует также информация о сигнатуре файла, которую SCons хранит внутри файла .sconsign.dblite, который, как я полагаю, может быть доступен программно.

Как можно видеть в SCons Decider() function docs, поведение может быть сконфигурирован, чтобы быть одним из следующих (копируется из SCons man page):

  • временная метка-новее (Это поведение классической утилиты Make, и сделать может быть использован как синоним для временной метки-новее)
  • метка времени матча
  • MD5
  • MD5-временной метки
+0

Документы scons вводят в заблуждение при описании 'env.Decider ('timestamp-newer')' как поведение типа 'make'. SCons использует временные метки, хранящиеся в базе данных '.scons.dblite', где они недоступны для таких инструментов, как' touch' и 'ls'. На самом деле это не так, как 'make', который не использует базу данных и полагается на временные метки в файловой системе, чтобы решить, что делать. Я еще не нашел способ фактически произвести поведение, похожее на поведение в scons. –

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