是否有构建系统不使用时间戳来检查文件更改

时间:2012-11-16 15:49:50

标签: build makefile

构建系统,如make use timestamp检查在两次构建期间是否更改了依赖项。以下是我遇到的一些常见问题,时间戳

  • 打开一个文件,进行一些更改,但后来我觉得它不好。我还原了这个更改,例如git checkout -- file如果我正在为项目使用git。
  • 打开一个文件,我只是不小心点击键盘快捷键来保存编辑器

无论哪种方式,文件的时间戳都会改变。如果现在我想构建项目,则需要重建依赖于该文件的所有内容。这通常意味着整个项目。

这些问题还有吗?例如,使用版本控制来检查文件更改的构建系统,最好是git。或者欢迎任何其他解决上述问题的方案。

非常感谢提前。

1 个答案:

答案 0 :(得分:2)

默认情况下,

SCons使用checksums, not timestamps。但是,校验和需要读取磁盘上所有源文件的所有内容,这比简单地读取目录条目慢得多,这就是大多数构建系统使用时间戳的原因。

Software Build Systems可以很好地概述这些问题。