[lug] CVS temporary files

Jeff Schroeder jeff at neobox.net
Mon Nov 22 16:13:50 MST 2004


Hey all--

As a longtime convert to CVS, I recommend it to many developers for 
software projects.  I helped a small company set it up on an in-house 
server, and they keep seeing problems when many people are making 
simultaneous updates.  Specifically, they get an error message like 
this:

cannot create_adm_p /tmp/cvs-serv712/project
No space left on device

When I do a 'cvs checkout project' on my client machine, I see the CVS 
server creating a /tmp/cvs-serv[nnn[ directory and then filling it with 
a directory tree that mirrors the project.  Inside each directory is a 
handful of text files (Entries, Entries.Log, Repository, and Root), 
none of which are more than a few kilobytes in size.  All told, a full 
checkout might presumably consume a megabyte of temporary space doing 
this.  As soon as the checkout is complete (or interrupted), the server 
wipes the tree.

I have /tmp mounted as tmpfs with 128MB allocated to it-- in other 
words, the /tmp partition can't grow larger than 128MB.  There are 
perhaps a dozen developers on the project, and it's highly doubtful 
that every one of them is doing a full checkout simultaneously.  Even 
if they were, I would expect no more than 15-20MB of space to be needed 
by the CVS server.

I looked at the documentation and found a "LockDir" item, but that 
appears to control where CVS stores a record of what directory it's 
currently processing (so someone doesn't update a file in a directory 
that's being checked out).  And that takes only a handful of bytes, so 
I don't think it's the problem.

Has anyone seen this kind of behavior, or have suggestions about how to 
avoid it?  I've never personally seen the error message above, but 
several fairly savvy developers have reported it.  They're all using a 
Mac OS X client, whereas I'm on a Linux box.  I can't imagine it makes 
that much difference, though.

Thanks,
Jeff



More information about the LUG mailing list