GNU make和hg:哪个文件可以用来决定我的目标已经过时了?

时间:2013-03-19 13:15:55

标签: mercurial makefile gnu-make

假设Mercurial存储库foo。此外,假设从make运行的crontab作业应该在存储库中发生更改时更新从修订版0tip的所有内容。我们假设GNUmakefile也是我们的存储库foo的工作目录的一部分。

我可以依赖foo/.hg下的哪个文件作为依赖关系来决定是否运行hg bundle

2 个答案:

答案 0 :(得分:3)

我认为你可能会比看.hg/store/00changelog.i更糟糕。它包含存储库中变更集元数据的索引(对于非常小的存储库,它还包含相应的数据)。请注意,这并没有说明工作目录的内容!但是,如果你只是想要一个完整的捆绑包那就不重要了。

但这取决于.hg/requires文件的内容。特别是,存储库至少需要store标志。

答案 1 :(得分:1)

假设,直接使用.hg内的文件正确的事(tm)

如果“......存储库中的某些内容发生变化”,您有新的变更集,或者旧的变更集ID可能会被更改(重写历史记录?)。在这种情况下,原生Mercurial命令的输出将发生变化,您可以比较先前运行和当前的结果并做出选择

hg id -i,例如,在commit-hook中可以写入存储库的工作目录中的(忽略的)文件,或只是某个文件,您可以通过crontab-job check ater