【问题标题】:how to use "buildhistory" in yocto build system?如何在 yocto 构建系统中使用“buildhistory”?
【发布时间】:2015-05-11 07:32:38
【问题描述】:

我想跟踪使用 yocto-build-system 创建的“构建”。经过一番搜索,了解了 yocto-project 提供的“buildhistory”功能。

他们说,为了启用“buildhistory”,我们需要执行以下操作:

编辑 .../build/conf/local.conf 并添加:

INHERIT += "buildhistory"
BUILDHISTORY_COMMIT = "1"

然后重新运行“bitbake”以初始化 buildhistory 目录。

我做了同样的事情,但我无法找到 buildhistory 目录。

谁能告诉我,如何使用这个“构建历史”,以及如何查看构建差异?

【问题讨论】:

    标签: yocto


    【解决方案1】:

    它将在 ${TOPDIR} 中创建 buildhistory 目录,该目录指向您的构建目录。 build 目录通常是 build 目录,除非您指定了其他内容。

    您可以自己进入 buildhistory 目录,并使用 git (gitk, ti​​g),但通常留在 ${TOPDIR} 中并运行例如更方便。

    buildhistory-diff
    

    您是否查看过文档:http://www.yoctoproject.org/docs/1.6/ref-manual/ref-manual.html#maintaining-build-output-quality?

    启用 buildhistory 后,您将在 buildhistory 目录中获得几个目录“images”和“packages”以及一个文件 metadata-revs。 (并且还应该有 .git 目录)。在这些目录中,buildhistory 将通过在每个 bitbake 命令之后将所有更改提交到其存储库来保留所有更改。除其他外,包版本和修订、安装在图像中的包、大小等都被跟踪。这一切都在文档链接中列出。

    尝试将 IMAGE_INSTALL_append="some-package" 添加到您的 local.conf,并在对您的图像进行 bitbake 后运行 buildhistory-diff。这应该告诉您一个包已添加到图像中。

    您也可以进入 buildhistory 目录并运行 git log、gitk 或 tigthere 以查看提交的内容。

    如果仍然没有得到任何输出,请将 buildhistory 目录的树结构粘贴到 pastebin。

    【讨论】:

    • 我确实检查过,文档链接已共享。我在“build”文件夹中有“buildhistory”文件夹。但是现在,当我在 ${TOPDIR} (即“build”目录)中执行“buildhistory-diff”时,我没有得到任何“差异”。我尝试在两个连续的版本中更改其中一个组件的“修订版”。需要知道,构建历史记录正在跟踪什么样的变化?此外,它是只保留连续构建的更改,还是保留所有构建的本地存储库。它是怎么做到的?请提供见解。
    • 我确实按照您的指示进行了操作。现在我已经让它为我工作了。总结一下:1)在“buildhistory”文件夹中,“git log”能够让我获得与每个提交有关的日志,以便成功构建。 2) 之后,我在 local.conf 文件中添加了“Image_INSTALL_append=...”,并尝试再次构建映像。当我做“buildhistory-diff -p”时发布这个。在“buildhistory”文件夹中,我可以看到图像与上一张的不同。谢谢。
    猜你喜欢
    • 2020-07-28
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 2021-06-29
    • 2023-01-26
    • 1970-01-01
    • 2018-05-05
    • 2018-05-13
    相关资源
    最近更新 更多