目前,我创建了一个scons(或waf)构建并运行所有内容。然后我检查所有(包括.sconsign.dblite等)到git并推送到遥控器。如果我在本地删除目录,从git(在同一台机器上)克隆它,并键入scons
,它会将所有内容视为已构建,并且不会重新运行任何内容。
但是,如果我在另一台机器上执行此操作,scons / waf认为所有内容都需要重新运行。我认为这些构建工具的优点是它们使用哈希而不是时间戳,因此我不必在不同的机器上重新运行。
两个问题:
(1)切换机器时强制重新运行的原因是什么?
(2)有没有办法阻止重新发生?
(在waf锁文件中,我可以看到特定于机器的详细信息,但是当我查看.sconsign.dblite文件时,我没有注意到任何内容,尽管我只是在txt编辑器中检查过它。)< / p>
答案 0 :(得分:0)
这answer解决了我的问题。问题是scons自动跟踪所使用的可执行文件(例如'Rscript')的哈希/时间戳,这些哈希/时间戳在机器之间发生变化。关闭此隐式依赖关系检查可以解决问题。