Mailinglist Archive: opensuse-packaging (100 mails)
| < Previous | Next > |
Re: [opensuse-packaging] Source links semantics, broken links, and merging
- From: Adrian Schröter <adrian@xxxxxxx>
- Date: Mon, 20 Apr 2009 10:25:12 +0200
- Message-id: <200904201025.12769.adrian@xxxxxxx>
Am Samstag, 18. April 2009 02:54:19 schrieb Andreas Gruenbacher:
....
All this is true and applies perfectly on manual merging. But please keep in
mind that the B branch is maintained by different people than the A branch.
And we can not allow that someone is blocking someone else.
So is this example a true scenario for you(?):
A, A' and A'' are changes in Factory or any Devel Project upstream branch for
example and B is some random change which might become a submission later.
That means that B has a change for A and lets assume it conflicts with the
change in A'. Something which can not get solved automatically but needs to be
decided by the contributors.
It is essential for us that the A branch still works and also the people
responsible for A* are not blocked by the changes in B.
So it is the responsibility of B to rebase his change on A''. It might be that
manual merge tools can work better in the order you have described in some
cases. But I assume that most people will just re-apply their changes based on
A'' and fix manually where it breaks.
bye
adrian
PS:
Another scenario can be to maintain the delta and adapt it and not a merged
code base. For example when someone maintains a patch for enhancing multimedia
capatibilities based on our default kernel for example, the goal is not to get
something merged in the end, but to recreate the patch in B based on A''.
--
Adrian Schroeter
SUSE Linux Products GmbH
email: adrian@xxxxxxx
--
To unsubscribe, e-mail: opensuse-packaging+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-packaging+help@xxxxxxxxxxxx
....
* This time, apply(dAB, A'') no longer works (a "broken link"). The build
service forgot that dAB was created from A, but it can can extract from
its logs that apply(dAB, A) and apply(DAB, A') both succeeded. In the
desperate attempt to repair the link, it figures out the last version of
A* that dAB did still apply against,
A
\
dAB---A'
A''
and it does a merge(A'', A', apply(dAB, A')).
If we are lucky, the result will be the same as merge(A'', A, B), but
that is only if we are really lucky.
The fix, as I have already pointed out, is very easy: don't forget what
diffs were generated from:
A
/ \
dAB A'
A''
Then, it is trivial to see that A'' and B have A as their common
ancestor, and merging suddenly becomes easy:
B = apply(dAB, A)
merge(B, A, A'')
All this is true and applies perfectly on manual merging. But please keep in
mind that the B branch is maintained by different people than the A branch.
And we can not allow that someone is blocking someone else.
So is this example a true scenario for you(?):
A, A' and A'' are changes in Factory or any Devel Project upstream branch for
example and B is some random change which might become a submission later.
That means that B has a change for A and lets assume it conflicts with the
change in A'. Something which can not get solved automatically but needs to be
decided by the contributors.
It is essential for us that the A branch still works and also the people
responsible for A* are not blocked by the changes in B.
So it is the responsibility of B to rebase his change on A''. It might be that
manual merge tools can work better in the order you have described in some
cases. But I assume that most people will just re-apply their changes based on
A'' and fix manually where it breaks.
bye
adrian
PS:
Another scenario can be to maintain the delta and adapt it and not a merged
code base. For example when someone maintains a patch for enhancing multimedia
capatibilities based on our default kernel for example, the goal is not to get
something merged in the end, but to recreate the patch in B based on A''.
--
Adrian Schroeter
SUSE Linux Products GmbH
email: adrian@xxxxxxx
--
To unsubscribe, e-mail: opensuse-packaging+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-packaging+help@xxxxxxxxxxxx
| < Previous | Next > |