Mailinglist Archive: opensuse-packaging (100 mails)
| < Previous | Next > |
Re: [opensuse-packaging] Source links semantics, broken links, and merging
- From: Andreas Gruenbacher <agruen@xxxxxxx>
- Date: Sat, 18 Apr 2009 19:47:15 +0200
- Message-id: <200904181947.15638.agruen@xxxxxxx>
On Saturday, 18 April 2009 5:15:54 Andreas Gruenbacher wrote:
What I should mention (or repeat) here is that the implementation of merge(c,
a, b) is based on diff(a, c) and diff(a, b). This could be used to compute
merge(c, a, b) more efficiently for source links (remember that source links
are stored as diff(a, b).
Also, merge(c, a, b) can be computed for any three packages, so storing source
links as diffs is not actually a requirement. Arbitrary full packages could
be merged just as well; all it would take is to define which
project/package/revision is the common ancestor.
Andreas
--
To unsubscribe, e-mail: opensuse-packaging+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-packaging+help@xxxxxxxxxxxx
* When the build service builds a link package, it *also* does a proper
three-way merge. (If there are merge conflicts, it gives up, of
course.) This merge result is only used for that specific build, and
thrown away at the end. (I trust that the build log contains the
revisions of all packages involved.) This is almost the same as
expanding a source link as done now, except that a three-way merge is
more robust against mis- merges. Using the identical operation on the
server as on the client ensures that users can easily reproduce the exact
state of the sources of a package.
What I should mention (or repeat) here is that the implementation of merge(c,
a, b) is based on diff(a, c) and diff(a, b). This could be used to compute
merge(c, a, b) more efficiently for source links (remember that source links
are stored as diff(a, b).
Also, merge(c, a, b) can be computed for any three packages, so storing source
links as diffs is not actually a requirement. Arbitrary full packages could
be merged just as well; all it would take is to define which
project/package/revision is the common ancestor.
Andreas
--
To unsubscribe, e-mail: opensuse-packaging+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-packaging+help@xxxxxxxxxxxx
| < Previous | Next > |