gpt4 book ai didi

android - 可重现的 android 构建与 git 与快进 merge

转载 作者:行者123 更新时间:2023-11-29 00:30:04 26 4
gpt4 key购买 nike

我正在寻找 android 系统 (AOSP) 每日构建与 repo 的 git 存储库集合之间的可重复性以及使用快进 merge 的影响。

问题是,在进行日常构建时,您会在其他地方进行开发时得到树的提示。如果在推送更改时 HEAD 没有更改,它将进行快进 merge 并重写时间。因此实际上 3 天前存储库的物理状态将与要求 git 返回三天前不同。

我能看到的主要解决方案是使用带有 --no-ff 的 git 来强制 merge 提交。这为较小的提交注入(inject)了很多噪音,并且似乎被认为是保持干净树的不良做法。

这方面的背景是试图在 android 构建环境中具有可重复性。对于那些不知道的人,android 构建是不同 git 存储库的集合。我的最终用例是,我希望能够说,将代码库置于 3 天前供开发人员使用的状态。通过快进 merge ,我们丢失了一些关于如何关联多个 repo 项目(即:git 存储库)的更改的关键信息。

最佳答案

正如您所注意到的,Git 不会随时间跟踪分支的状态。两个合理的选择是为每个build设置标签或使用构建时所有已 checkout 提交的 SHA-1 创建静态 list :

repo manifest -r -o build_20131104.xml

这些文件可以 checkin list git 并像例如一样使用

repo init -u ... -m build_20131104.xml

重现之前的状态,或者您可以将文件保存到别处。

如果您要进行大量构建,则标记所有 git 会在标记命名空间中乱扔垃圾(并且 Git 目前在使用数千个标记时相当慢),但在其他方面非常方便。不要忘记也标记 list git。

关于android - 可重现的 android 构建与 git 与快进 merge ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16328252/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com