monotone-devel
[Top][All Lists]
Advanced

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

Re: [Monotone-devel] bidirectional CVS gateway


From: Christof Petig
Subject: Re: [Monotone-devel] bidirectional CVS gateway
Date: Mon, 13 Dec 2004 18:31:43 +0100
User-agent: Mozilla/5.0 (X11; U; Linux ppc; de-AT; rv:1.7.3) Gecko/20041007 Debian/1.7.3-5

Nathaniel Smith schrieb:
On Fri, Dec 10, 2004 at 12:44:35PM +0100, Christof Petig wrote:

[intentionally breaking deep the mail threading]

graydon hoare schrieb:

let's just focus on real bugs and easily-agreed-on
improvements for a while.

I'm sorry I can't drop this topic. Switching to monotone to do real _work_ would be dramatically easier if we had a monotone CVS synchronization.


I don't think these two things are incompatible; it turns out that
trying to solve linearization stuff for all of Monotone is a rat's
hole, but with some care it should be perfectly possible to do
something that works just for CVS synchronization...

For instance, something like: whenever you push a revision into
CVS/pull a CVS state out into a revision, mark that revision with some
cert.  The point of this cert is to record enough information to let
you later reconstruct the mapping between CVS and Monotone revisions.

If I start requiring special tags in CVS or monotone I can not migrate changes from one CVS repository to another (and the use of the sync gateway is not transparent). I don't think that the design should be limited to only support a 1:1 mapping (CVS:monotone)

When you want to synch between CVS and Monotone, proceed in two
stages.  First, find the last Monotone revision with such a cert, call
it A.  Next, if further changes have been made in CVS, pull them out
and commit them as children of A.  Now, again find the last Monotone
revision with such a cert, call it B.  If it has no children, then
stop.  If it has 1 or more children, then pick a child
semi-arbitrarily, push that into CVS, name that child B, and repeat.

This is all vague and there are lots of details to work out, but maybe
it gives you some ideas...

IIRC this monotone cert (or file) needs to store every CVS' file's revision for a MT revision. Perhaps I should start with tagged revisions and try to match them. [Does monotone support moving a tag to a different revision? IIRC no. This looks like to be the missing stone for a full synchronization. (synchronizing trees might still work)]

   Christof

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

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