[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

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/ 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 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).

reply via email to

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