Friday, March 14, 2008

How to set up your own CVS server (and make it work)

Few words on how to set up a CVS server in Windows 2000/XP.
For those who don't know what a CVS server is, see wikipedia: it is a way to share code between developers, that keeps track of every change made and thus create several version of your application.

The first thing we do is downloading a CVS server for Windows, from here (when prompted I used a standard installation...I'm one of "the most users").

You can avoid restarting your machine: it will work anyway.

Open the "CVSNT Control Panel", click on the "Repository configuration" tab and set a local directory in which the code will be stored, as in picture:

The go to the "Server Settings" tab and change the temporary directory (it is not mandatory but I prefer taking this directory outside windows directory).

In the "About" tab you can stop the services required for handling a CVS server.

Now the problem is: how do I create new users?
They shold have created a GUI for this purpose, but for this task you have to write some DOS commands.
All users will be linked to local windows accounts, that are listed in this menu:

Load a console ("Execute..." + cmd) and write those lines of code:

where "d:\temp" is the directory set in the previous step.
Then you will be prompted to set the user's password, and the work is done!
As surely you'll be using this server with other developers and maybe you don't have static IP address at home (I suppose you are using this tutorial just for private proposals), you need a way to reach it remotly. I currently use a quick and reliable service, No-IP; there are a lot of this kind of services online, but this one works well.

And that's all.
Stay tuned!!


Mayur said...

Thanks a lot the post is very help full.

But when i am doing console and execute the first "set cvsroot-d\temp" it is giving me "Enviromental variable cvsroot-d\temp not defined" can you please help me on this.

Anonymous said...

I am getting Environment variable passwd -r Guest -a butcher not defined