[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Monotone-devel] propagate by certing instead of creating a merge no
From: |
Nathaniel Smith |
Subject: |
Re: [Monotone-devel] propagate by certing instead of creating a merge node |
Date: |
Thu, 5 May 2005 02:57:24 -0700 |
User-agent: |
Mutt/1.5.9i |
On Mon, May 02, 2005 at 08:05:03PM +0200, Joel Rosdahl wrote:
> Bruce Stephens <address@hidden> writes:
>
> > Propagate seems to have three cases. If you're propagating from
> > branch src to dst, then either:
> > [...]
> > 2. dst is an ancestor of src, in which case there's no merging to
> > be done: just add src to the dst branch
>
> I remember when this special case was introduced, and I also remember
> wondering why it was introduced. Why is it in this case better to cert
> the src head to the dst branch instead of creating a merge node?
>
> One advantage of creating a merge node is that it gets a state and a
> log message of its own, which I think makes the intent of the action
> more prominent. But I suppose that there is some disadvantage too?
I _think_ the big reason for the special case is that creating
spurious ancestors like that makes 3-way merge harder, and it's
already hard enough. If we switch to another merge algorithm without
this limitation, though, obviously this goes away some. It may be
worth re-evaluating when the merge situation is more settled.
I think a sufficiently good reason to keep it this way for the moment,
really, is that it forces us to deal with the problems raised by
discontiguous branches, and since our branch formalism is quite
unambiguous about these being possible, we should be prepared to deal
with them in any case... :-)
-- Nathaniel
--
.i dei jitfa fanmo xatra