Unless your CVS repository is local, the overhead associated with calling CVS through system calls isn't going to be a bottleneck, and even then it shouldn't be too bad. Using one of the varieties of os.popen instead of os.system will make it easier to avoid disk I/O when communicating with the cvs process.
It will be a hassle to parse CVS' copious output, though. I've wished for a Python CVS module before, too. Good luck =) IMHO, the best way to write a Python CVS module would actually be to call it from the command line; writing a Python C Extension for this purpose would introduce a negligible performance increase at the cost of all sorts of other hassles, like expecting users to have the CVS headers/libraries and a C compiler and possibly something like SWIG or Boost Python as well. -- http://mail.python.org/mailman/listinfo/python-list