假设Mercurial存储库foo
。此外,假设从make
运行的crontab
作业应该在存储库中发生更改时更新从修订版0
到tip
的所有内容。我们假设GNUmakefile
也是我们的存储库foo
的工作目录的一部分。
我可以依赖foo/.hg
下的哪个文件作为依赖关系来决定是否运行hg bundle
?
答案 0 :(得分:3)
我认为你可能会比看.hg/store/00changelog.i
更糟糕。它包含存储库中变更集元数据的索引(对于非常小的存储库,它还包含相应的数据)。请注意,这并没有说明工作目录的内容!但是,如果你只是想要一个完整的捆绑包那就不重要了。
但这取决于.hg/requires
文件的内容。特别是,存储库至少需要store
标志。
答案 1 :(得分:1)
我假设,直接使用.hg
内的文件不正确的事(tm)
如果“......存储库中的某些内容发生变化”,您有新的变更集,或者旧的变更集ID可能会被更改(重写历史记录?)。在这种情况下,原生Mercurial命令的输出将发生变化,您可以比较先前运行和当前的结果并做出选择
hg id -i
,例如,在commit-hook中可以写入存储库的工作目录中的(忽略的)文件,或只是某个文件,您可以通过crontab-job check ater