It is fragile, but I think its the only way to do it and still give people the ability to create arbitrary builds easily, with 100% fidelity using a method that's easy to automate and that generally works. Since we need to use repo -r, we don't want to have people using side gits if we can help it, and we want to follow Google's processes as much as we can.
-Zach
On 12 July 2011 02:07, Ricardo Salveti ricardo.salveti@linaro.org wrote:
On Mon, Jul 11, 2011 at 6:18 PM, Alexander Sack asac@linaro.org wrote:
On Mon, Jul 11, 2011 at 4:11 PM, Zach Pfeffer zach.pfeffer@linaro.org wrote:
In-order to make reproducible builds we create pinned manifests with each commit explicitly listed. We also use this method to create a release. We depend on these pinned commits - if they don't exist the "released" builds can no longer be reproduced.
One amend: the commits need to exist AND need to be reachable through a head.
In other words: due to how the repo tool work, tagging and then rebasing will not be good enough.
For me this seems to be quite fragile, as you're expecting the upstream tree for a component to not rebase the tree.
At least when looking at what happened with u-boot-linaro, where a rebase is expected by the way John is maintaining his tree, this method will fail unless you're building against a tag (as I believe git will respect the tag even if the tree was rebased in some way).
Is there other way to fix this at the tool instead of forcing the component tree owner to not rebase the tree?
Cheers,
Ricardo Salveti de Araujo