On Tue, Jul 12, 2011 at 1:07 AM, 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?
If I read the prior emails correctly then the commit needs to be reachable by a head but not necessarily "the" head as in master so I believe that I can still rebase master (or whatever) as long as released commits are still accessible from some other head. So if each time a release happens a branch is created as well as a tag then there is no problem other than the noise of having these extra branches that only exist for keep tags or commits accessible. Please someone correct me if I am wrong.
--john