CVS Server Administration Tips? 79
Twintop asks: "The company I'm working for has asked me to take over administration of their CVS server for a decent sized project. The current setup of the CVS server needs to be wiped clean and started fresh. The only times I've ever used CVS (and used it poorly at that) was with a few SourceForge.net (An OSTG Site) projects. What are some suggestions on reference materials for a newbie to CVS (but not to Linux) and methods of administration that have worked for you in the past?"
The BEST CVS administration method (Score:1, Interesting)
If you have an opportunity to, chuck it and use Subversion [tigris.org] instead.
Re:The BEST CVS administration method (Score:2)
Re:The BEST CVS administration method (Score:5, Informative)
One thing to remember is that although subversion may be the new hotness, it's the NEW hotness. By this i mean that while there are certainly bugs and problems in cvs, they are most likely *known* bugs and problems - unless your usage is way out there on the cutting edge, the likelihood that you will discover a brand new never seen before bug in cvs is quite low. Sadly, the same can't be said for svn - not because it has quality issues but because it's a younger product. Whilst it's true that no open source project gets very far without users and bug reports, this is still something to keep in mind when making a "cvs vs svn" decision.
Just my 0.02$
Re:The BEST CVS administration method (Score:1)
Having said that, I have yet to delve into subversion and it may well be a far superior product, for all I know. Maybe maintain a smaller project using subversion at the same time; your bosses will (probably) respect the fact that
Re:The BEST CVS administration method (Score:4, Informative)
Actually, one of the great things about Subversion is that it's pretty much just an incremental upgrade from CVS.
For basic, day-to-day tasks, the only thing you need to switch is the word "cvs" with "svn" on your command line (or switch from TortoiseCVS to TortoiseSVN). "svn co/checkout", "svn up/update", "svn ci/commit" all work just fine.
I've switched over several groups (usually 5-20 developers) and the time to get back to work for each was in the order of half an hour or so (a lot less for some developers).
The biggest comment that I've had from those groups is that "Subversion is a relief". All of a sudden, the things you need to be careful with (renaming files, creating/moving directories, etc) with CVS are no longer issues with SVN.
ViewCVS works with Subversion, plugins exist for Eclipse, NetBeans, Forte and .NET. Command line is highly compatible with CVS. All-in-all it's a pretty easy switch, with lots to gain and not much to lose.
Re:The BEST CVS administration method (Score:1)
Thanks
Re:The BEST CVS administration method (Score:2)
Although Subversion's performance is as good as CVS when used with a large number of files (read bad) its usability and security features make switching worth. I use it to store every bit of code and document I wrote at home and work in addition to our regular revision system. Makes life easier in the long run.
Although some CVS junkies prefer fsfs back-end, I prefer the database one, at least it is recoverable easily. eas
Re:The BEST CVS administration method (Score:2)
There is a standalone svn server, but if your users have ssh to the server, ssh is probably the easiest option to deal with.
From the administrative point of view, there is another issue that I haven't seen mentioned that svn helps with. The whole thing is kept in a single file, so you don't have many of the problems with group ouwnership that cvs has. Creating a new file in the repository is just a db write, so there is no new file, where cvs would create a new rcs file, which wo
Re:The BEST CVS administration method (Score:3, Informative)
> One thing to remember is that although subversion may be the new hotness, it's the NEW hotness.
We have been using it for a year on a medium sized project with a team of a dozen developers, and although some interfaces with other stuff are a bit green, we have not encountered a single annoying bug. It is stable, it makes sense and it removes most of the limitations I have encountered in CVS. I cannot see a reason to go back to CVS.
Well, sure (Score:2)
CVS's little idiosyncracies seem to cause a lot of problems for my developers. Things like commits not being atomic, for example. Granted, working around CVS' limitations is not rocket science, but I'm already asking them to know so many different things, CVS just seems to be just one more stumbling block for th
Re:Well, sure (Score:2)
Re:Well, sure (Score:2)
Re:The BEST CVS administration method (Score:2, Redundant)
Seconded. From a development standpoint, it takes a couple days to get used to the new way of doing things (revision # tracking is project-based, not file-based; branches and tags are really the same thing), but the features it offers (directory tracking, file moving, etc) are worth the switch!
Re:The BEST CVS administration method (Score:2)
Re:The BEST CVS administration method (Score:2)
We got a tip that there is a good book on SVN out from O'Reilly (who else?) and it's also available online, for free Version Control with Subversion [red-bean.com].
BTW the project I joined is hosted on BerliOS.de which is a Sourceforge like system which supports SVN for hoste
Re:Switch to SVN... (Score:2)
Oh come on! (Score:2)
Re:Oh come on! (Score:1)
This isn't a Learn how to become a guru CVS admin in 21 minutes kind of site. Nothing you can tell him here will be a good enough substitute for real hands-on experience. That's why he needs to first research this on his own as best he can and then ask for advanced tips when he has a deeper understanding of the issues involved. So far he's only shown that he knows as much about CVS as anyone who is willing to spend 10 minutes reading up on it would.
Re:Oh come on! (Score:2)
Actually, we can point him to alot of good books and good reference websites, which is exactly what this thread is doing.
I'm in a similar boat-- relearning CVS so I can fix up our version control system. The Cederqvist is a good reference book, but it isn't a good learning manual, doesn't really talk about best practices.
With google, you still need to have a good idea what you are looking for before you look fo
Re:Oh come on! (Score:1)
Re:Oh come on! (Score:2)
I used CVS years ago, then used Clearcase for several years, then used SCCS and RCS
I just came back to CVS, and I'm totally confused what needs to happen now
And I can't convert us all to S
The reason we don't ask (Score:4, Insightful)
You are right that there is nothing that beats personal experience. Yet you belittle people for asking to learn from the personal experience of others.
I hate to break this to you, but Google is not always your friend. There is a lot of good information and a lot of garbage there too. One must sort out the garbage from the good. But if you don't know enough about the information, how do you tell the garbage from the good? He could spend weeks trying to sort out the info. Which is the option you want people like him to choose. Just as long as it doesn't take any of your precious time. You may be an expert in the field and know the good from the garbage at a glance. Not everyone is. If you are an expert, you may know which are the best terms to use in the search. Is "CVS Administration" better than "Administering CVS?" Perhaps "Best Practices CVS Administration" is a better search term. But someone not knowing CVS could spend way too much time just trying to refine the search to bring up the needed info, let alone actually learning from the best info.
People like you do a lot to lower the average intelligence of humanity. I hope that you never have children. They would learn to be afraid of asking questions. They would learn that it is better to be ignorant than to try to learn.
If you think that a question is stupid, you have the right to that opinion. However, once you have the reputation of a blowhard, there is little point in talking, since few listen to the wind. I, for one, will not listen to the wind anymore.
Re:The reason we don't ask (Score:2)
But no one ever posts garbage on
In that spirit, post your root password here. I'll help you get your CVS server running like never before.
Re:Nerd or Newb? (Score:2)
The CVS Book (Score:3, Informative)
Cederqvist is the standard (Score:1)
Cederqvist, the "official" manual, is surprisingly well-written, and worked wonders teaching me about CVS. Highly recommended, and available for free in a variety of formats at the CVS web site [cvshome.org].
cvs with ssh (Score:5, Informative)
this way, any files created/modified within that directory will retain their group writable permissions. you'll need to set the CVS_UMASK variable for each user as such in the shell of the remote machine they'll be using CVS from.
you'll need to set the CVS_RSH variable to ssh, so it tunnels:
and your cvs home will look something like:
to make it even more convient, i suggest you research ssh-agent/ssh-keygen and use keys. no more passwords, with security and group protections
Re:cvs with ssh (Score:3, Informative)
Don't forget the :
cvs -dAnd any tweaking of options beneath CVSROOT.
I mentioned this briefly in my secure CVS setup guide [debian-adm...ration.org]...
Re:cvs with ssh (Score:2)
The article author has been a bit vague about his requirements, but he did mention that this is for a project team within his company. In all likelyhood his users are all on a secure LAN, and ssh will buy him nothing but added complexity. Possibly more useful if his clients are all
Re:cvs with ssh (Score:2)
Re: Your sig (Score:2)
Re: Your sig (Score:2)
Re: Your sig (Score:2)
Re: Your sig (Score:2)
Re: Your sig (Score:2)
Yeah, 1010000011101010111001101101000001000000111011101
Or just try:
ruby -e 'n=379955903618604798669887;puts (1..10).collect {i=n % 256;n=n/256;i.chr}.reverse.join' --MarkusQ
The manual is ... (Score:2)
Little admin required .. (Score:1)
The CVS book already mentioned will tell you how to setup a minimal server, if not google is your friend.
Once the server is up and running your developers can import their own modules - you will just need to setup logins/passwords/SSH keys for them.
Honestly little maintainance is required after that.
The only things I've ever needed to do are:
Do Not Branch; Backup the Repository; Test Always (Score:2)
I've used CVS for about a dozen years with pretty good luck for a small community (~20) users on one project.
Things that made life go better: encourage developers to do:
The repository stayed in pr
Re:Do Not Branch; Backup the Repository; Test Alwa (Score:2, Insightful)
Other recommendations:
1. Keep the directory structure relatively flat, makes updates faster and output easier to scan.
2. Separate different domains into different CVS modules. What I mean is, you shouldn't have to update all the tests and all the documentation, just to update your source tree.
Branching works. (Score:2, Insightful)
Heard? Then you actually haven't tried it? I've always heard branching didn't work very well in CVS also, however we implemented it on a large (2000 plus classes), several branches in fact, and it worked fine.
Branches Are a Must (and XP/Agile learnings) (Score:1)
But you must be careful with the branches and understand how branching and merging work. Good idea is to write and to rigorously follow very hands down branching guidelines for your project with all the updates and -d's and -P's in place so that even the more experienced have no excuse for not doing it right ('oops, I forgot to cvs -xyz foo -bar').
One thing I found out w
Re:Do Not Branch; Backup the Repository; Test Alwa (Score:2)
We use CruiseControl for this. Works great.
CruiseControl Home [sourceforge.net]
There's also DamageControl. I checked it out, but got scared off by the need to install and use Ruby. I work with too many languages as it is, and am teaching myself Python, I don't need an
Re:Do Not Branch; Backup the Repository; Test Alwa (Score:1)
I had heard the same thing, so I stayed away from branching until I got here. We're a bunch of branching fools here, and it's actually not as bad as I was led to beleive. For the most part, CVS handles branching pretty well. The biggest area we had trouble with was figuring out how to specify branches in all the different tools (command line, Eclipse, wincvs, etc. etc.) that our people insisted on using. A couple o
BRL-CAD's has 20 years of CVS/RCS History (Score:3, Informative)
Several years ago, many of the current CVS practices were written down and organized into a rather detailed generic CVS policy [sourceforge.net]. It basically all boils down to being able to guarantee a certain level of functionality, being very careful about naming directories, and coming up with good tag naming conventions. Likewise, depending on how many developers you have and how active development is, more or less control may be required for branches and validation.
Those last two restrictions are mainly due to limitations of CVS -- it does not directly manage directories or maintain history of directory changes, so you're left up to tracking those changes by policy conventions. (It's rather annoying that a CVS checkout does not prune empty directories by default!) If your directory structure is likely to change frequently (e.g. a new large project starting up), then something like SVN may be less painful. that said, BRL-CAD's history has easily endured CVS's inadequacies quite successfully.
Re:BRL-CAD's has 20 years of CVS/RCS History (Score:2)
Re:BRL-CAD's has 20 years of CVS/RCS History (Score:2, Informative)
RTFB (Score:1)
My advice is to buy a book and read it.
Why refresh? (Score:2)
If you've rarely used CVS properly, what makes you think it needs to be wiped clean and refreshed? I think you'd be better off recommending they get somebody who knows what they're doing to do a proper analysis of fixing it up.
Ha! (Score:2)
Tortoise/IDE with built-in CVS support (Score:3, Informative)
For Windows developers, TortoiseCVS [tortoisecvs.org] is highly recommended (as well as it's subversion equivalent, TortoiseSVN). For Java users, Eclipse has built in CVS support, which also works quite well.
Best advice I can give... (Score:3, Insightful)
Assume the absolute worst possible scenarios will occur and plan for them.
This means make sure that your system is secured and updated as possible, especially the CVS software.
Force ssh access, don't allow pserver access at all.
Ensure that a daily backup occurs and that you have backups for at least a week.
Triple-check your permissions on all the CVS directories.
Don't run the CVS server as root unless you absolutely have to (and I don't think you have to).
Re:Best advice I can give... (Score:2)
Re:Best advice I can give... (Score:1)
Re:Best advice I can give... (Score:2)
SSH is just good for security of login information anyway.
Don't use CVS! (Score:2, Insightful)
Symlinks and others... (Score:2)
First of, don't do symlinks even though they are possible... They always end up in a mess.
Then make sure you provide them with a good way of changing their passwords (no matter what access method you're using) and see if you can't arrange it to force changes - otherwise people w
CVS standards I use (Score:2, Interesting)
That disclaimer out of the way, here are the basic common-sense rules we use for CVS:
1. Make sure you
Buy 'Pragmatic Version Control using CVS' (Score:2)
It is very short but tells you 99% of what you need to know to use CVS.
(as for all those \. ass-monkeys telling you to use Subversion -- sure, if your IDE of choice provides Subversion integaration to match its CVS integration. Eclipse (for example) doesn't.
Re:Buy 'Pragmatic Version Control using CVS' (Score:2)
heh-heh. Ass monkeys. You're funny.
Pity you don't know about subclipse [tigris.org]
Eclipse has had subversion support for quite a while.
Essential CVS and Bonsai are a big help (Score:1)
Bonsai [mozilla.org] is the best tool I've seen for digging through CVS's not-so-friendly history output. It's web-based, and provides a nice interface for creating pointed queries to see who did what and when. The setup is a little bit arcane, but once you've got it going, it's very handy to have in your toolbox.
Consider Perforce (Score:1)
I am strongly considering using the free version of P
This is wrong on so many levels (Score:2)