Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Programming IT Technology

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?"
This discussion has been archived. No new comments can be posted.

Searching for Perfect Configuration Management Tool?

Comments Filter:
  • It's free for open source projects, and reasonably priced for commercial use (relatively). It has a regular syntax and lots of nice tools (the review daemon is a lifesaver). Because by default it's a command line tool, it's easy to script but there are GUIs for some platforms.
  • I would heartily recommend using Perforce (http://www.perforce.com/ [perforce.com]) instead of CVS for any non-trivial CM tasks. It is not Free, but it is not outrageously expensive (compared with others out there).

    I think of Perforce as "CVS on steroids", because it offers so much more power:

    • there is fine-grain access control on the repository, on a per-user, per-group, per-IP, per-pathname basis.
    • extensive meta-information is kept: both forward and backward integration records
    • the server keeps a database of files being edited in every client view, so you know what everyone else is working on.
    • automatic merging between branches actually works (I never trusted rcsmerge or cvsmerge, I use perforce's "integrate" all the time)
    • it is fast
    • repository changes are guaranteed atomic. Nothing is ever half-submitted
    • changes (across the entire repository) are sequentially numbered, so each change can be uniquely identified (and changenumbers are like timestamps measured in the change domain)

    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.]

  • by RGRistroph ( 86936 ) <rgristroph@gmail.com> on Thursday October 19, 2000 @08:12PM (#691075) Homepage
    I think that the question you are asking indicates that the company is doomed. But first a few remarks on these features:

    "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.

  • 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.)

  • can you be more specific on what kind of stuff you want to manage?

    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.
    --

  • &gt &gt "supports versioning of documents (MSWord, HTML)"
    &gt 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 [jhu.edu] looks interesting, though nothing is available yet.

    It appears Subversion [tigris.org] would like to be a CVS replacement, development looks active.

  • By far the best CM system I've used is ClearCase [rational.com] by Rational. It's probably not cheap, but it has excellent GUI/CLI interfaces, features up the wazoo, and integrates well with their ClearDDTS defect tracking system. Well worth looking in to.
  • 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]

  • *WARNING* it is a proprietary application.

    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]

  • I think Rational's ClearCase is an awesome configuration management tool. Very powerful for branching and merging. Qualcomm and Ericsson (both companies I've worked for) use ClearCase quite extensively.
  • Just going through the CM definition process again( 6th time in 30 years ).. In this case I would say CVS is not enough - in some other case CVS is great. If there is only need for programming process control ( not CM ) CVS or any lower level tool will be enough. If the CM process will include the whole life cycle of several products, several users ( !! customers, not just analysts, programmers, document people, support personel, etc.. ), bug tracking ( support !! ), maturity process and new technologies - then you will need a CM process and no tool ( maybe, just maybe excluding Continuus ) will do that. These systems are not cheap - $ 0.2-1 mill. but the ROI ( return of investment ) can be huge - over next 3-5 years ! And they really make life easier - combined with a good data dictionary / catalog / repository ( what ever you want to call it ) - changes over versions, release, development, test and production versions, global development, work group control, project/time management, change control, bug tracking, documentation, and so on, comes almost trivial. Any tool will be helpfull - but a small warning - using a tool a wrong way, without pre-defined process, etc.. means problems and with CM tools even (much) more so - seen that too many times..
  • The big question to ask - are you looking for just a tool to manage versions of code or documents, or are you looking for a tool that helps with manageing builds, bug tracking, reproduceability of a version, etc.

    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).

  • Yeah, but with out the ability to generate diffs, it really isn't configuration management -- it's just a back up system.

    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.

An Ada exception is when a routine gets in trouble and says 'Beam me up, Scotty'.

Working...