monotone-devel
[Top][All Lists]
Advanced

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

Re: [Monotone-devel] cvs import


From: Markus Schiltknecht
Subject: Re: [Monotone-devel] cvs import
Date: Thu, 14 Sep 2006 13:14:11 +0200
User-agent: Thunderbird 1.5.0.5 (X11/20060812)

Hi,

Michael Haggerty wrote:
Markus Schiltknecht wrote:
With such an algorithm, you won't rely on the timestamps, but only on
the dependencies. Thus, what other advantages would the blob method have?

Step 2 is essentially the creation of a blob, isn't it?

Sure. Except that you won't have inter-blob dependencies to resolve.

And steps 2 and 3 could be an infinite loop, because of

   1   2
   |   |
   A   B
   |   |
   B   A

True, but you could easily check for that. Just remember what you've already tried and don't try again. To me the question is: what to do then? Split A into two commits around B:

A1 - B - A2 - C

Or (for monotone or git): try to seperate into individual commits (not always possible) and create two heads, which then merge later on. I.e.:

    .- A --.
   /        \
--x          x-- C
   \        /
    '- B --'

Or even merge A and B into one single revision (since you can't determine exactly what belongs to A and what to B), thus:

AB - C

This can arise if two (nonatomic, remember) CVS commits are going on at
the same time, even without clock errors.  Of course more complicated
loops can also arise.

Yes, but the problem stays the same for Nathaniel's continuous algorithm and for your blob-method.

Yes, but branches and especially tags are very slippery.  They don't
even have to be created (chronologically) before a succeeding commit on
the same file.  So you'll have branch/tag events rising to the top of
the frontier and you need some way to decide when to process them.

If you apply the exactly same algorithm for 'commit', 'tag' and 'branch' events, I don't see no problem there.

Except the 'loop' resolution will work differently if your loop consists of not only commits.

Not that this part is much easier in the blob scheme, except that from
early on you have a global picture of the topology of branches/tags so I
think it should be easier to design the heuristics that will be needed.

Ah, that's a difference. What do we gain with the 'global picture'?

Regards

Markus





reply via email to

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