3

什么是真的。我们需要缓存,因为大多数文件都是使用每个文件的相同版本构建的,但是任何更改文件的开发人员只会更改少数文件,而且通常会更改很多。

在批准生产之前,将更改写入 CacheDir() 指定的缓存没有什么意义,但是从 CacheDir 复制内容有很多意义

但我只能看到完全禁用缓存的选项。

(我会将此发布到 scons 邮件列表,但它只是提出了一个完全难以辨认的验证码)

4

2 回答 2

0

Fwiw,烤饼现在有这个。版本 2.3.1

来自:http ://www.scons.org/doc/production/HTML/scons-man.html

scons 可以维护可以在多个构建之间共享的目标(派生)文件的缓存。当在 SConscript 文件中启用缓存时,由 scons 构建的任何目标文件都将被复制到缓存中。如果在缓存中找到最新的目标文件,它将从缓存中检索,而不是在本地重建。缓存行为可以通过 --cache-force、--cache-disable、--cache-readonly 和 --cache-show 命令行选项以其他方式禁用和控制。--random 选项对于防止多个构建尝试同时更新缓存很有用。

于 2014-07-02T20:39:25.413 回答
0

我可以想到 2 个不同的选项:

  1. 代替 CacheDir,对那些几乎从不改变的文件使用 Repository() 怎么样?
  2. 考虑使用--implicit-deps-unchangedSCons 手册页和此处.

是一个类似的讨论。

你打算如何切换只读行为?你需要一些逻辑来做到这一点。由于不可能以只读方式使用 CacheDir,因此另一种方法是使用相同的切换逻辑在使用 Repository 和 CacheDir 之间切换。

于 2012-05-29T12:03:40.160 回答