http://qs321.pair.com?node_id=196869


in reply to Using CVS for revision control

Thanks for taking the time to write this up! I've always meant to get around to learning cvs, and your clear introduction made it hard to procrastinate any longer. After getting my feet wet with the windows command line version, I've now moved on and have CvsNT and wincvs working together. I'm just about ready to make the switch from the somewhat outdated system I'm currently using, except for one thing that I can't figure out how to do in cvs.

Our current system is an old thing that someone who doesn't work here anymore wrote. One difference between it and cvs is that it doesn't allow you to 'commit' a single file at a time - you have to commit everything that you've changed in the module. So if I've changed two files, a.pl and b.pl, in my directory and I want to commit a.pl, I have to also commit b.pl. The system maintains separate version numbers and logs for the individual files and for the whole module. Sometimes this can be a little bit of a pain when I've finished working on a.pl and have some incomplete changes in b.pl, but for the most part it's very useful. It allows us to make related changes in different files and then keep track of them as a set. This is useful for example when I need to undo or fix a previous change to a file, I can see what other files were included in the same commit and check whether they have the same problem.

Is there anything like this in cvs, where the module/repository has its own log and version numbers? Is this what tags are for? I see that Subversion claims it's better than cvs because "directories are versioned." Is this what they mean?

I hope asking this cvs question isn't too off-topic -- I didn't know where else to ask. Strangely, searching google groups didn't show any cvs-related discussion groups. And going by the archives, the mailing lists on cvshome looked pretty inactive.