views:

463

answers:

6

I have an online CVS repository that I need to check code into. However, the server is outside my control and is often down.

So, is there a way to set up some sort of local CVS server/proxy such that I can check my code into the local CVS server regularly and have the local CVS server batch commit the changes to the online CVS repo periodically?

The local repository could possibly run some other SCM system, if that was necessary to prevent conflict with CVS. Online commits could possibly be done manually, or via cron. I'm open to suggestions.

I guess that my main concern would be the problems faced in trying to set up some sort of repository 'hierarchy'.

PS: I'm running Linux all along the 'hierarchy'.

Edit: Found a similar item here.

A: 

This doesn't really answer the question, but it sounds like you need a distributed VCS system.

Michael Myers
A: 

I think you should consider using a distributed source management system such as git or mercurial which support this kind of decentralized source control.

Razispio
+2  A: 

I'd recommend running git locally while continuing to use your CVS server when you have a connection to it. Here's a nicely-written article that explains how:

http://www.kernel.org/pub/software/scm/git/docs/v1.4.4.4/cvs-migration.html

Adam Alexander
from what i understand, this flows 'down-stream'. however, i need to ultimately commit changes back to the cvs repository.
sybreon
A: 

I have never used it, but CVSup may do what you need. As others have mentioned, though, a distributed VCS system like git or mercurial would probably be better.

Brian Campbell
+2  A: 

Use git locally, and then git-cvsexportcommit would be my suggestion. There's a blog post that talks about this at http://issaris.blogspot.com/2005/11/cvs-to-git-and-back.html although I'll be the first to admit that the export process isn't as easy to use as perhaps it could be.

Brian Mitchell
sounds like a round-a-bout way of doing things but I can at least understand the logic and work-flow. thanks!
sybreon
+2  A: 

You can use git as a "frontend" to CVS which will allow to you check-in your changes locally (offline) and then sync them up to the CVS server when your connection is available. There is a bit of a task to setup the environment, but once you get it going the workflow is pretty nice.

See http://stackoverflow.com/questions/584522/how-to-export-revision-history-from-mercurial-or-git-to-cvs/586225 for the setup & workflow.

jeckhart