|
From: | Timothy Brownawell |
Subject: | Re: [Monotone-devel] monotone merge error |
Date: | Sun, 16 May 2010 11:16:22 -0500 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9) Gecko/20100411 Icedove/3.0.4 |
On 05/16/2010 10:14 AM, Stephen Leake wrote:
Stephen Leake<address@hidden> writes:I encountered this bug at work again this week. I have more clues about what causes it, and I'll work on a reproducer. In the meantime, I've implemented a check in 'db check', and a fix in 'db regenerate_caches'.I now have a reproducer for this bug; see tests/branch_leaves_sync_bug/ The bug occurs when two developers each do the same merge, one developer adds another commit, and then they sync. The merge revision and the new commit revision are both left in branch_leaves; the merge revision should have been deleted. I'm guessing the merge revision was added back during the sync. The bug does not occur if the two "developers" use the same authorname and key. I have not started trying to find the bug; I'm just basking in finding a reproducer :).
| Abe does a merge | Beth does an identical merge | Beth commit a child of that merge | Beth pulls from AbeThis results in Beth getting a new branch cert on the merge revision, which is an ancestor of the current leaves of its branch. The logic in database::record_as_branch_leaf() didn't recognize that this could happen, but thought that a new cert on anything that wasn't already a leaf would make it a leaf. It should be fixed now.
-- Timothy Free public monotone hosting: http://mtn-host.prjek.net
[Prev in Thread] | Current Thread | [Next in Thread] |