monotone-devel
[Top][All Lists]
Advanced

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

[Monotone-devel] Re: CvsImport


From: Markus Schiltknecht
Subject: [Monotone-devel] Re: CvsImport
Date: Sat, 09 Jun 2007 19:24:09 +0200
User-agent: Icedove 1.5.0.10 (X11/20070329)

Hi Thomas,

Thomas Lotterer wrote:
this is a reply to http://www.venge.net/mtn-wiki/CvsImport

I'm CC'ing this to the monotone mailing list. Hope that's okay for you.

You don't know me, but let me tell you that my colleagues know me as a person who tends to see lots of challenges for problems they classify being easy to solve This time I wonder whether I'm the guy who sees an easier approach :-)

If there is an easier way, I'd be glad to hear. But so far, the graph based approach seems to be the easiest way, which still gives correct results.

I also want to note that we at OpenPKG know CVS from the inside out, using it 
to the fullest possible extend and beyond. I mean we even patched in new 
functionality published as OSSP shiela [1] access control and logging.

Wow..

We use branching and branch off from branches

That should be no problem. Unnamed branches are a little trickier.

and at openpkg.COM we operate a private repository which is bidirectionally 
synced manually with openpkg.ORG - an effort simply too much for CVS and the 
root cause of my hunt for a replacement.

Hehe... sounds like netsync is just exactly what you need. ;-)

Back to the topic.

Do you know CVStrac [2]?

Yup, seen it.

It is written by D. Richard Hipp, the fellow who also created SQLite which I'm sure a 
Monotone developer knows very well.  CVStrac is a web interface used to browse a CVS 
repository. It has an interesting feature called "timeline" which shows the 
history of the CVS by Check-in's.

Nice, but I'm pretty sure he's not using anything more fancy than looking at timestamps. That's simply not enough in many cases.

Yes, not per file commits, but patch sets.  For a quick look watch the timeline 
of CVStrac development [3] itself. I know from our usage at OpenPKG that 
CVStrac combines commits with close time proximity and common log message and 
it understands branches.It reads the CVS history file to grab that information 
and guess where it is stored: in a SQLite database. Maybe it is enough to 
extract the information from that DB and most of your CvsImport job is done.

Take a look at the story of cvs2svn. There's a reason why they are moving towards cvs2svn 2.0, with pretty much the same graph based algorithm.

Anyway, independent from CVStrac there is another interesting tool called CVSps [4], 
"a program for generating 'patchset' information from a CVS repository".  May 
also help to avoid reinventing the wheel.

I know that one as well, and have tested it on old and large repositories. But again, that tool fails miserably on certain CVS repositories - where a graph based algorithm can certainly do better.

The only thing I'm asking myself sometimes is, why not write a better cvsps, based on the monotone code?

Anyway, thanks for you inputs.

Regards

Markus





reply via email to

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