Searching For Perfect Configuration Management Tool? 14
PullingMyHairOut asks: "I work for a company that has recently acquired many smaller companies and is now in the process of integrating them. One of the problems we are facing is creating a unified Configuration Management Policy and locating CM tools to implement it. I am personally advocating CVS since, as a developer, I find it very useful and full featured. However, management would like a tool that can: easily be used by suits; supports access control lists on project folders with recursive attributes (top level readonly means all subfolders and files are readonly); supports versioning of documents (MS Word, HTML) as well source; and supports (but is not limited to) RCS-style file checkouts where only a single developer can have a file checked out. I'm pretty sure that using pre- and post-checkin scripts and wrapper programs around CVS (better than WinCVS) can make this work, but we don't have the time to write them. Does anybody know of a CM tool that can do all this? Even if it costs money?"
www.perforce.com (Score:1)
Perforce (Score:2)
I think of Perforce as "CVS on steroids", because it offers so much more power:
Perforce uses "Inter-File Branching" (tm) when it branches, and RCS format for its repository files. There's a white paper on their web site describing it, but basically this means that when you branch a file (e.g. from revision 1.2->1.2.1.1 in CVS), you create a new filename in the repository. It may sound hokey, but it works better, IMHO. For one thing, it eliminates the forward deltas in the ,v files. Which means you get rid of the O(n^2) behaviour of RCS/CVS when trying to retrieve branches.
[I have no affiliation with Perforce other than being a very satisfied customer.]
Find a new company to work for (Score:3)
"easily be used by suits"
No, you don't. Why oh why oh why would you ever let one of them touch your precious code repository ? Use a tool like doxygen or doc++ to spew some html to keep them busy clicking around. You can integrate it into your build system and have a web page updated every night with the new build. That should be enough to make them think they know what's going on.
But, if you want to waste some resources setting it up, there are ways to browse a CVS repository graphically -- Tk/Tcl and Jave front ends, etc. Check out this one [gnome.org] which is a web based interface to the gnome project's cvs repository.
"access control lists on project folders with recursive attributes"
This is interesting and might actually be useful. Just consider that to a large extent, the point of all the history that CVS keeps is so that you can back out of unwise or authorized commits. I think what you really want to do is learn a very good, well thought out scheme for naming and taging branches in the repository, to ease the recovery from mistakes.
Restrictin access should be a rare enough case that you can implement this using the file system. Consider that most projects which are limiting the commit ability of people working on them aren't really using configuration management, they are just using CVS as a networked backup device.
"supports versioning of documents (MSWord, HTML)"
If the file is text, CVS can handle it. Keep your documentation in LaTeX, or in machine parseable comments, and use the various LaTeX tools (like latex2html) to generate the viewable documentation on the fly. If someone absolutely, desperately, in a save-their-life, give-you-a-raise type situation, needs a copy in Word, then the best way I have found to convert is to view the html version (from latex2html) on IE on windows and cut-and-paste the whole thing into Word and save it out. But nothing in Work should matter enough to be kept in configuration management.
"RCS style checkouts where only a single developer . . ."
Why the hell do you want to allow that ? Anyone should be able to at least read the repository, at least within the group or company. I can understand locking commits, but even that should be by code branch, not really directory oriented. People who use that style of development usually aren't checking out and building each other's code enough, or are using the entire repository to keep track of a branch on it's way to final production status, instead of a separate branch or an entirely separate repository. I would make it a clause in this policy not allow that kind of nonsense.
"I'm pretty sure that using pre- and post-checkin scripts and wrapper programs around CVS (better than WinCVS) can make this work, but we don't have the time to write them."
If the developers actually have use for any of the features you mention, then they will find the time to write them; more likely, they will do a news group query or web search and find them already written. There will be no need for allocation of company-wide resources, it will just happen. But if you can waste a huge amount of time throughout the company by mandating a stupid universal policy, why not get a couple of guys to write some scripts ?
What you need to do is step back and consider where this company is really going.
If a company has the mindset that they have to mandate or select a company-wide "unified Configuration Management Policy," then they are doomed. You appear to be sucked into the mindset; my clue here is that you capitialized the phrase. (You did not capitalize "unified," so I hold out hope for you.) There is absolutely no reason for such a beast.
I've worked at a few places where management went through occasional periods of panic, or general low-level unease, about the quality of the product. This was justified. But bad practices like poor configuration management are symptoms, not causes, of the problem. The problem was that people were either just dumb or didn't give a shit. The smart people attended a few meetings, ignored the policy, and got the job done. The people who were the problem attended even more meetings, spent a lot of time writing email and talking about it, and didn't get any smarter.
Is this "unified Configuration Management Policy" actually addressing a problem, or is some manager just nervous because they bought a lot of new companies and he doesn't feel in control ? Maybe you need to gently re-direct their energies toward doing useful stuff, like finding new markets and customers for your products.
Why are you worried about the development time of a few pre and post commit scripts compared to the time you are going to waste talking about this policy ? When managers get all twitchy and sweaty about a few hours of script hacking, but want to implement a company-wide new policy with all the meetings and overhead that comes with it, it is a sign that you are going down.
I might be able to hook you up with a job at my place; but if you want me to get you an interveiw, you have to promise never to capitalize "Configuration Management Policy" like it was the Constitution or something.
Re:Continuus is another option (Score:1)
Having used Continuus, I'd describe it as a good configuration management tool with acceptable source-control and problem tracking capabilities. They have made some siginificant improvements in the last version; the GUI is somewhat customizable; and the command line is the primary way of accessing the CCM database (the GUI's more or less a wrapper for the CLI.)
content managment? (Score:2)
Roxen Platform [roxen.com] is a web content managment system, that seems to have all the features you ask for including the cvs backend.
although targeted for websites it can handle any content, and diretcly integrates with your client software. (you click on a word document in your webbrowser and it will open Word to edit it).
though not free, it does come with source, and custumizations are possible if needed.
greetings, eMBee.
--
Re:Find a new company to work for (Score:1)
> If the file is text, CVS can handle it
cvs also supports versioning of binary files (though not as diffs, obviously). Use the -kb flag.
PCMS or Subversion someday (Score:1)
It appears Subversion [tigris.org] would like to be a CVS replacement, development looks active.
Rational ClearCase (Score:1)
Re:Rational ClearCase (Score:1)
Oh My God. Someone out there actually likes ClearCase? It must have changed substantially in the years since I looked at it last.
The last I looked, it was incredibly difficult to manage, impossible to easily tell what branch you were working on, and too easy to screw up. We had to have a full time developer on each site simply to handle merge problems and inter-site updates.
I'm now at a different company, and we use CVS. No it's not perfect, but it works. CVS can also be integrated with bug-tracking tools (we've integrated it with bugzilla), and we've added transactions to it also CVSZilla [kcbbs.gen.nz]
Continuus is another option (Score:1)
I am not saying it is better or worse, but at least ClearCase is not the only guy in the block.
http://www.continuus.com [continuus.com]
Rational ClearCase (Score:1)
CM - or a tool ?? (Score:1)
Code Management or Configuration Management? (Score:2)
CVS is great IMHO for file version management - if used by someone with a few brain cells to rub together. Dumb users can muck things up all too easily. (especially when stuck on Windoze platforms and needing to use shared file system reposititory instead of a proper server - )
Clearcase is my favorite for a Configuration Management tool. It costs lots of $. It also requires that someone become an expert in it to help those people who don't change their config files that often. Managing it also takes a little more work - but then the tool is probably doing more than CVS anyways. Lots of people complain about the management overhead of Clearcase. The problem is either an imcompetent clearcase manager (been there) or they expect to get a lot more functionality with zero additional management (done that).
Re:Find a new company to work for (Score:1)
I expect that at some point Microsoft will comeout with some type of CVS server system that can be accessed through that "track changes" ability that Word has.