Discussion about merging

David Allouche david at allouche.net
Tue Jun 7 15:09:39 BST 2005


On Sat, 2005-06-04 at 11:42 +1000, Martin Pool wrote:
> The main change I'd like to make from Arch there is to try to avoid
> generating summary changesets when they have no semantics.  For
> example, merely syncing my laptop with my desktop (where they use two
> branches that move on the same path) should not generate a summary
> changeset, but it does in Arch.

Good news, you are already there. In Arch, this situation is yet another
woe of the punning of namespace with ids.

I trust you to understand the issue, but I feel like doing a summary of
the issue for the record.

The use case is: be able to work on the same project on two systems
intermittently connected systems, without overlap or divergence. You are
either working on the desktop or on the laptop.

You can do it by using a generic filesystem synchronisation tool and by
being very careful. The problem is that being able to commit on the same
branch on both systems, while they are not connected, requires you to
have two "master" archives with the same name.

Having two "master" archives with the same name is a violation of the
Arch model because then nothing prevents the following scenario from
occurring:

     1. The laptop and desktop are initially synchronised and the latest
        revision is foo--0--patch-41.
     2. Do some hacking on the desktop and commit foo--0--patch-42.
     3. Do some hacking on the laptop and commit foo--0--patch-42.

Since there had been two different commits for the same revision id, you
are screwed up. You are pretty extensively screwed up. The full
extension of the screw up would involve many technical details that are
irrelevant here, just take my word for it.

So, to guard again the divergence problem (which is the exception in
that use case) you have to use different branches, and then you have
merges all over when that's not really what you mean.

With bzr, as long as there is no divergence, you need not do merges,
just pulls. And if there is ever a divergence you only need one merge
(summary changeset) to fix it and go back to the desired situation: two
branches with the same ancestry.

Okay, that looks like a card trick. Not my fault :)

-- 
                                                            -- ddaa
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20050607/b27150ea/attachment.pgp 


More information about the bazaar mailing list