[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Monotone-devel] Bogus merge with 0.38
From: |
Julio M. Merino Vidal |
Subject: |
Re: [Monotone-devel] Bogus merge with 0.38 |
Date: |
Mon, 4 Feb 2008 09:45:46 +0100 |
On Feb 4, 2008, at 12:51 AM, William Uther wrote:
That error message was introduced is revision
a71b546a834a4ac9561d57e9747e69312c1a6b80
It is a recent change. The code is in the insert_if_unborn()
function in roster_merge.cc.
insert_if_unborn() is used to add a node to the new revision of a
merge if it only exists on
one side of the merge. The new code is inserted in the
if_not_unborn side of the if_unborn if
statement. There used to be nothing there - the node was dropped
because of die-die-die merge.
The new code simply outputs the warning you see. The revisions
listed are the content marks on
the file that are in the uncommon ancestor set.
This raises a few questions...
i) Why does monotone think the file subrs/atf.config.subr.in has
been deleted on one side of the merge? Had it been? If not, had
it been added on only one side of the merge?
Yes, it was deleted on one side. And the merge in this case was
correct due to the "Die, die, die" policy.
ii) Why is revision 0000000000000000000000000000000000000004 in
both the marks of the file and the uncommon ancestor set? I assume
this is a bogus revision ID? (It is technically vaild, just...
unlikely. Can you mtn log --from 0000...0004?)
It's not there with log. But the other reply in the thread explains it.
Something weird is going on. I find it hard to see how that change
could have broken anything - but it is revealing something weird
going on in the uncommon ancestor set and content marks.
I don't suppose this is repeatable? i.e. If you run mtn diff can
you get a diff of your changes from a known revision. Then check
out fresh working copies, use patch to apply your changes, and then
see if you can repeat the whole mess.
I was able to reproduce the configure.ac bad merge quite easily in a
clean database with a custom file. I can add a test for it in the
test suite (obviously failing for now).