[U-Boot] ARM Workflow: rebase on ARM repositories
Albert ARIBAUD
albert.u.boot at aribaud.net
Mon Sep 3 21:47:29 CEST 2012
Hi Wolfgang,
On Mon, 03 Sep 2012 21:13:28 +0200, Wolfgang Denk <wd at denx.de> wrote:
> Dear Albert,
>
> In message <20120903200244.2ddad7d4 at lilith> you wrote:
> >
> > > One of them uses u-boot-imx for his development, and of course
> > > after I rebased my tree he got into trouble, due to using a
> > > commit that does not exist anymore.
> >
> > You mean a commit ID that does not exist any more, right?
>
> Yes, and this is the same.
>
> > > Detlev discovers that the official documentation refers directly
> > > to commit cf6ec699a6dc21a538b039a0392cd38132072090 in u-boot-arm.
> > > After a rebase this commit does not exist anymore.
> >
> > That can happen indeed. I *do* hope that the commit was also
> > described by its (invariant) commit summary.
>
> I seriously dislike this for the master branch.
Stefano's reference was about u-boot-arm specifically, and so was my
comment to it. I do agree with you re: the U-Boot master branch (see
below for additional notes)
> > > Of course, we can really say that setting a development on a ARM
> > > repository instead of main repository is not the best ;-). But we
> > > know that sometimes setting on a partial repository is the best
> > > because some patches that are strictly required are already
> > > merged. And I do not know if we can say that our trees are
> > > "private" or "development" only: they are published, and
> > > available for everybody.
> >
> > But they are not official. The official release is u-boot/master.
>
> Define "official". Wepublicly announce the existence of ht ecustodian
> repositories, and in many cases when you need current code the way to
> the custodian repo is the most direct one.
I consider the official U-Boot to be the one which is used for releases,
and bears labels denoting these. I do not consider official the
architecture trees because -- as per the current rules -- their
custodian may rebase them before a pull request, thus cause the very
trouble Stefano is talking about.
> > a) we are not the only project where the opposition between merging
> > and branching strategies is considered; :)
> >
> > b) merging requires testing just like rebasing does, which is kind
> > of evident as for a given pair of branches, both methods yield, or
> > should yield, the same semantic semantic union of the branches).
>
> But merging keeps all the history in place, i. e. you can always refer
> to any specific "old" commit ID, and be sure that it is what you
> really refer to because it is secured by cryptographically strong
> checksums.
>
> By rebasing, you lose all this history. Even if you manage to find a
> commit that "looks" the same judging from the commit message etc., you
> have no guarantee that it's really the same code.
Correct.
> > My preference goes to rebasing rather than merging because in a
> > rebasing strategy, each commit in the main branch is a single,
> > understandable, purposeful change, whereas with merging, if the
> > commit is a merge, it can be a complete set of pervasive changes
> > which are not readily identifiable and may serve lots of purposes.
>
> Please feel free to do this in working branches. But I would really
> appreciate it if we could stop rebasing any "master" branches.
I'll be fine either way. Just note that this policy is at odds with the
documentation at http://www.denx.de/wiki/view/U-Boot/CustodianGitTrees
which suggests rebasing, not merging, masters; the doc should be
changed to match the policy.
> > OTOH, we all can see Wolfgang sometimes performing pulls by merging,
> > so he might have a different view on this.
>
> Not sometimes. I _always_ use "git pull".
I guess the occasions where I did not see a merge was when it was
trivialized into a fast-forward, then.
> Best regards,
>
> Wolfgang Denk
Amicalement,
--
Albert.
More information about the U-Boot
mailing list