【问题标题】:Is it possible to use the scons CacheDir in a read-only way是否可以以只读方式使用 scons CacheDir
【发布时间】:2012-05-29 11:41:29
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: scons


    【解决方案1】:

    我能想到两种不同的选择:

    1. 不使用 CacheDir,不如使用 Repository() 来处理那些几乎从不改变的文件?
    2. 考虑使用 SCons 手册页中所述的 --implicit-deps-unchanged 选项和 here

    Here的类似讨论。

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

    【讨论】:

    • 1) 据我了解,implicit-deps-unchanged 是指检查用于构建派生对象的依赖项,而不是实际派生对象 2) 因为将对象存储在存储库中会很麻烦。从技术上讲,对象的变化非常频繁,但任何开发人员都可能会选择最新版本。
    • @TomTanner,我认为不可能以只读方式使用 CacheDir。我用另一种选择更新了我的答案。
    【解决方案2】:

    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 选项对于防止多个构建尝试同时更新缓存很有用。

    【讨论】:

    • 嗯,是的,那是因为我加了它blush
    猜你喜欢
    • 2013-11-23
    • 1970-01-01
    • 2013-12-27
    • 2017-08-03
    • 1970-01-01
    • 1970-01-01
    • 2016-10-28
    • 2018-05-29
    • 1970-01-01
    相关资源
    最近更新 更多