monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Monotone-devel] Re: 3-way merge considered harmful


From: Nathaniel Smith
Subject: Re: [Monotone-devel] Re: 3-way merge considered harmful
Date: Mon, 2 May 2005 16:25:09 -0700
User-agent: Mutt/1.5.9i

On Tue, May 03, 2005 at 01:21:31AM +0200, Florian Weimer wrote:
> I think Nathaniel wanted to say that there is an implied conflict
> which 3-way merge cannot detect, not that one choice is better than
> the other.  The argument that there is a hidden conflict which should
> be flagged as such is quite convincing (and, as a result, the "zombie
> changeset" term is misleading).

Hmm, I'm not sure how I managed to be this unclear, but somehow I did
:-).  Let me try again.  We have B, C, D:
    B
   / \
  C   D
There is a certain file, call it "foo", which exists in B.  The
person who created C elected to delete "foo".  The person who created
D didn't do anything involving "foo" at all; they were working on some
totally unrelated file.  When we merge C and D, there is no conflict;
"foo" should disappear in the merge, because the only action any user
has taken was to delete "foo", so that action can't have conflicted
with any other actions.  "foo" should be dead, it is an ex-file, etc.

However, if we add in A, a parent of B, that happens not to contain
"foo", and for some reason use it as our merge ancestor, then
something strange happens -- suddenly, it looks like "foo" was
_added_, not deleted.  "foo" mysteriously rises from the dead, and the
poor developer who created C has his actions silently reverted.

This help clarify things? :-)

-- Nathaniel

-- 
"The problem...is that sets have a very limited range of
activities -- they can't carry pianos, for example, nor drink
beer."




reply via email to

[Prev in Thread] Current Thread [Next in Thread]