Subversion/CVS experiment summary
Craig Boston
craig at tobuj.gank.org
Mon Feb 9 11:26:52 PST 2004
On Monday 09 February 2004 11:53 am, Stijn Hoop wrote:
> Did you have to modify the script, or pass unusual options? I'd like to
> reproduce this, but I didn't get very far when I tried a few days ago with
> the 0.37.0 version of the tool.
No, I used the script as-is. The version I have is LastChangedRevision: 8527,
with a date of Jan. 29. It looks like that version is slightly newer than
the one included with 0.37 (Rev 8512).
One thing that may have made a difference is that so far I've been importing
things in chunks rather than trying to do the whole repo at once.
> but although it looks like it handles things much better (even vendor
> branches etc), it loads EVERYTHING into memory -- which means that it
> eventually grew to 1G of memory/swap at which point my memory was
> exhausted, and this was at pass 2 of 7...
Does the Python version do the same thing? I didn't think to look at memory
usage very closely while it was running :-/
> > Comments on importing: It's SLOOOOOOOOOOW. It took 43.9 hours just for
> > src/sys, and this is a relatively speedy system! It starts out at a
> > pretty good pace, but the more commits it processes, the slower each one
> > seems to take.
>
> That doesn't bode well. Is committing in the new SVN repository also slow?
No, creating a new branch and committing new and changed files to it seems to
be just as quick as with an empty repository. I haven't delved into the
script enough to know for sure, so this is a wild guess, but I think the
speed issue has to do with the script itself. I'm guessing that the method
it uses to track the status/branch/etc. of the RCS files is subject to a
linear slowdown.
I'm going to attempt to verify this by doing a dump / load cycle on the repo
that everything was imported into. If it goes quickly then we can assume
it's the conversion script. If not, then there are bigger problems...
> My thoughts were now going to do something like Tom Lord proposed for an
> Arch gateway -- just import a CVS working copy into SVN at a certain
> cut-off date, and setup a bi-directional gateway between the two.
If I'm reading that right, it sounds similar to a thought I had about just
routinely checking out snapshots and committing them on a vendor branch. Of
course you'd have to do that separately for each branch you're interested in.
IMO, I find it immensely useful to have the entire history of a file at hand.
> Actually, would a sort of access control wrapper that is now also used with
> the FreeBSD CVS repository not work? I do agree that it would be nice to
> have per-directory access control with the svnserve method.
Yes, I think the same sort of access hooks (pre-commit?) can be used. The
Subversion manual even mentions that, I just forgot about it...
That method has always seemed a little... hackish to me. You still need write
access (file permissions) to almost the entire repo so it does nothing
against editing the files directly -- though with SVN this is a little more
difficult as it's all bdb files rather than plain text. Maybe there's a more
secure way to do it with a restricted shell that I just don't know about.
> > [ repeated merges ]
> Which is a shame, this would be a major selling point. On the other hand,
> considering the amount of work done and the fact that it really works quite
> well already (at least for my small repository) should make people want to
> switch :)
In the release notes for 0.37 there is a brief blurb about "'svn merge' now
notices ancestry by default". I'm not sure exactly what that means or if
it's related...
> > It also looks as if Subversion 0.37 (aka 1.0-RC) has just been released.
> > I'll have to take a look at it and see if any of the problems noted above
> > have been resolved.
>
> Please let me know the results!
Will do! My local Subversion server (one running Apache, not the machine I've
been doing the tests on) had just finished upgrading the port. I don't think
it needs a dump/load cycle but I'm doing one anyway just to be safe...
Craig
More information about the freebsd-hackers
mailing list