tags:

views:

176

answers:

3

I run CVS on my Mac OS X box and access it from a Windows VM. It works great (although the version of CVS that comes with Mac OS X is really old).

But I find it annoying that I cannot tell by looking at the project folders if I have checked out the project or not. Is there a way to tell the CVS command to delete a folder it checks in so that I can only edit a project that I have checked out? Since I am the only user I can just as well follow a strict check-in/check-out regime.

Also, is there a way for CVS to add new files automatically? I am not sure how I can best remember which new classes I create so I can add them to the project in CVS. I know I should probably cvs add new files when I create them, but then I often create a new class and then delete it again when I decide that I don't need it after all. Adding and removing such files from CVS should best be automatic.

Or perhaps I should switch to a different source control system (that is easily installed, runs on Mac OS X, and has a Windows client)?

Any answers/comments/ideas welcome!

+2  A: 

SVN could be better in case you want to delete folders.

Petteri Hietavirta
The other answer was close to the point but I found yours very useful. I am looking into Subversion now. http://subversion.tigris.org
Andrew J. Brehm
+1  A: 

You can use "cvs status" to see the status of your working folders, and "cvs release -d" to get CVS to check to see if you've any outstanding changes in your working folders before removing them.

Trevor Tippins
+1  A: 

But I find it annoying that I cannot tell by looking at the project folders if I have checked out the project or not.

Use cvs status command.

Is there a way to tell the CVS command to delete a folder it checks in so that I can only edit a project that I have checked out?

No, directories in CVS repository always exists. You can get rid off them locally if you use update with -P option (prune empty directories)

Also, is there a way for CVS to add new files automatically? I am not sure how I can best remember which new classes I create so I can add them to the project in CVS. I know I should probably cvs add new files when I create them, but then I often create a new class and then delete it again when I decide that I don't need it after all. Adding and removing such files from CVS should best be automatic.

Files that aren't under CVS are in status unversioned. I suggest adding file before commit (not when you create a new file). Maybe you should consider using GUI tools for CVS that facilitate development like WinCVS or TortoiseCVS.

Or perhaps I should switch to a different source control system (that is easily installed, runs on Mac OS X, and has a Windows client)?

Yes. Definitely. SVN in much better than CVS and have lot of mature tools for every platform.

cetnar
Yepp, switch to SVN it is...
Andrew J. Brehm
Tried switching. Found SVN confusing... couldn't create projects other than the one that I originally created and thought would be the repository. Back to CVS...
Andrew J. Brehm
You can call project every folder you create. For example in repository on top level every folder represents project. Your project could be nested in some subdirectories. This is different like in cvs when you have modules.
cetnar