monotone-devel
[Top][All Lists]
Advanced

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

Re: [Monotone-devel] a little status update


From: Olivier Andrieu
Subject: Re: [Monotone-devel] a little status update
Date: Fri, 10 Dec 2004 16:00:37 +0100 (CET)

 > Nathaniel Smith [Fri, 10 Dec 2004]:
 > On Mon, Dec 06, 2004 at 02:24:22PM -0800, Nathaniel Smith wrote:
 > > On Mon, Dec 06, 2004 at 05:23:14AM -0800, Nathaniel Smith wrote:
 > > We don't know what's causing the bug yet, so we can't say yet how
 > > to detect whether it has previously occurred, or what conditions
 > > might trigger it in the future.  So you might want to hold off on
 > > doing merging for a few days until we've figured out what's going
 > > on.
 > 
 > Whoops, I forgot to follow up on this!
 > 
 > The bug has been found and fixed, if you have a recent checkout
 > from .monotone.  However, it turns out that some bad revisions did
 > make it into real databases -- or at least ours -- so it sounds
 > like there will be some sort of cleanup thingie coming.
 > 
 > So if you want to merge, probably best to use a recent checkout;
 > and if you don't or didn't, then things will be fixed up anyway.

Hmm I still have problems with merges (the computed merged manifest is
correct, the changesets of the merged revision are not). 

Here's my situation. I have an old fork that I want to ignore and
which is tagged with a `disapprove' cert (this is a revisionless
database) :

    B
   /
  A --------------- C

When I migrate and changesetify the db, the disapprove cert disappears
(because disapprove works in a different way now). I run a monotone
disapprove on revision B, which yields a new revision A' with the same
manifest as revision A :

    B -- A'
   /
  A --------------- C

I expect the merge of A' and C to produce a revision C' with the same
manifest as C (since A' is equivalent to A which is an ancestor of
C). 

    B -- A' -----------\
   /                    \
  A --------------- C -- C'

The computed changeset (as seen with cat revision C') for the A'->C'
edge seems correct (it's the same as the A->C edge) but the C->C' edge
looks broken. There is this entry:
,----
| patch "lib3rdparty.ar"
|  from [bf5dd814f82e218aada36f91adab64d73b857ab1]
|    to [bf5dd814f82e218aada36f91adab64d73b857ab1]
`----
which looks a bit nonsensical. This file was modified on A->B and
deleted on A->C. Also all the files that were added on the A->B edge
(and removed on B->A') re-appear in C->C'.

`monotone diff C C'' shows this incorrect changeset but 
`monotone checkout C'' gives a correct tree (revision C' has the same
manifest as C actually)

I'm using:
monotone 0.15 (base revision: aca01948fd353905565af88fe272cd41fd3bec55)

-- 
   Olivier




reply via email to

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