Subversion/CVS experiment update

Craig Boston craig at tobuj.gank.org
Thu Feb 12 07:21:40 PST 2004


Just a quick update -- since the individual directories imported ok I decided 
to give it a go with the newest (and possibly last before 1.0) subversion, 
0.37.0.  This time I'm importing the entire src/ repo to see what it can 
handle.  I'm not quite brave enough to go after ports yet :)

I'm using cvs2svn.py revision 8587, which is considerably newer than the 
version included with 0.37.0.  If anyone is contemplating playing with 
subversion, I'd highly recommend grabbing this script out of their SVN repo 
as it fixes many of the earlier problems.

So far, the only problem I've run into was src/usr.sbin/xntpd.  It didn't like 
something about the "udel" branch (claims it can't find the origin record for 
it).  I've hacked around it with the attached patch, which is most likely 
wrong.  If xntpd is the only problem case, it may be cleaner just to 'fix' 
the RCS files.  It looks like there's a copy of a vendor branch or something 
funny going on.

To follow up to the concerns we had about subversion getting slower after a 
large number of commits, I'm now reasonably certain that it's only the import 
script that is slowing down.  python is gobbling up CPU like there's no 
tomorrow, but the amount of time spent in svnadmin actually committing seems 
to be negligible.

The other good thing is that memory usage seems to be fairly constant.  The 
resident set has been hovering around 8M and is not increasing.

I started the import Monday night, so it's been running for about 60 hours 
now.  python has amassed about 40 hours worth of CPU time:

  PID USERNAME PRI NICE   SIZE    RES STATE    TIME   WCPU    CPU COMMAND
19802 craig    139   10 12920K  9292K RUN     40.5H 78.91% 78.91% python

So far, it's committed 39,664 revisions and is up to August of 1998.  The repo 
is sitting at 1.4GB in size (there's a script running in the background 
pruning the db logs every 60 seconds) and cvs2svn is using ~800M of temporary 
files.  Looks like it's currently working on the initial import of picobsd ;)

I'm doing other stuff on the machine during the day -- XFree86, gkrellm, KDE, 
etc.  So far ULE is keeping interactive performance snappy, though when I'm 
doing other things the niced processes tend to get a little "bursty".  
cvs2svn has it to itself for the other 16 hours.

Will follow up on success/failure of the import, which at this rate will 
probably be done sometime next week...

Craig
-------------- next part --------------
--- cvs2svn.py.orig	Mon Feb  9 19:52:07 2004
+++ cvs2svn.py	Mon Feb  9 19:53:56 2004
@@ -1709,7 +1709,8 @@
       else:
         sys.stderr.write("%s: no origin records for branch '%s'.\n"
                          % (error_prefix, name))
-      sys.exit(1)
+      return
+#      sys.exit(1)
 
     parent_key = parent[name]
     parent = marshal.loads(self.db[parent_key])


More information about the freebsd-hackers mailing list