monotone-devel
[Top][All Lists]
Advanced

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

[Monotone-devel] State of mtn - CVS syncing


From: William Uther
Subject: [Monotone-devel] State of mtn - CVS syncing
Date: Tue, 15 May 2007 11:52:59 +1000

Hi all,

I just thought I'd send out a brief update on the state of mtn<- >CVS syncing. (I'm talking about a gateway between mtn and CVS, not a one-off transfer of information. There are other branches for that.)

A while ago I made a branch from Christof's cvssync trunk. He did most of the heavy lifting, and I've just been playing around the edges. I do not have a great understanding of the CVS linkage. With that acknowledgment/disclaimer, this is what I have done:

The net.venge.monotone.cvssync.attrs branch is a usable, but not polished, cvs-sync. It stores the sync information in attributes, using a cert to mark which revisions are actually in sync. When pulling from CVS, new revs are made as children of the last sync'd rev. When pushing to CVS, only revs which children of the last sync'd rev are pushed. At the end of a push a new rev is committed to mtn with the updated sync attributes.

I've been using this system for a while, tracking some development here that was mainly being done in CVS. It basically works well. There are problems with more advanced features of MTN. e.g. I've had problems when I've added a new directory hierarchy in mtn, and I want to push it to CVS.

Rather than fix those problems, I've just assumed that new directory hierarchies can be created in CVS. I have added an --extended- checking flag to "pull" which, as the name suggests, performs extended checking. It also causes mtn_cvs to try to fix any sync issues it finds. Some history information may be lost, but it seems to at least bring the heads back into sync.

The branch itself is originally a branch of the main monotone trunk. mtn_cvs is a directory that requires it be placed inside a monotone source dir to build. There are also a few small changes you need to make to that main source dir. I've pulled these out into a mtn_cvs/ mainline.patch file. This allows the use of mtn_cvs with a checkout of the mainline: apply the patch to your mainline, copy the mtn_cvs dir from the branch into your mainline source dir, and then re- acinit, autoconf and make.

I hope others find this useful.

Cheers,

Will          :-}





reply via email to

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