I am a build and source code technician. The tool that we use to maintain our source code is Rational ClearCase. This is the first time that I have used ClearCase, being used to Microsoft SourceSafe and CVS.

So how do you go about using ClearCase? Here's how I finally managed to get some source code into this horrendous system:

Inherite a flaky NT server from a guy who left a month ago. The passwords for this server are scrawled in the back page of a notebook. This is a bonus; normally passwords are sucked into singularities that lurk beside recently-vacated desks.

Thankfully, the software on this flaky server has been installed by a qualified Rational, um, install-bloke. well what would you call someone who installs stuff? Unfortunately, ClearCase has been installed on an NT server, while our software is developed and run on Linux. Linux ClearCase clients can only connect to NT servers through a crap Web interface with 1.35% of the power of the NT client.

So I have to scrounge a PC to install NT and the ClearCase tools on. I hate NT. These NT tools have flashy UIs to do everything - except what I want to do.

So I learn I have to create a Versioned Object Base (VOB) to store our code in. OK, I can live with that. But the VOB has to be a Unified Change Management VOB. This means that the developers have "activities" which they refer to when they check code in and out.

Now to use UCM VOBs, I have to create a "Project" VOB that seems to hold metadata about my project and reference the ClearQuest database that stores our bugs and UCM activities. Yes, to get the full usage of our £30k+ purchase, we have use another Rational product, which costs yet more money. Have these guys been taking lessons from Microsoft?

So I've got my Project VOB, I've linked it to my UCM database and I've created a VOB for our code. Now I have to contend with "Streams" and "Views". A Stream is, um, something that, um, does stuff. You have an Integration Stream that you do builds in, and Development Streams that the codemonkeys use. A codemonkey will create a View onto his/her stream, code, test (hopefully), then submit his/her work to be merged back into the integration stream. So far, I am keeping up with the terminology - much the same as CVS. Although I haven't even looked at branches yet - they are not the same as streams or views.

Now I haven't even got code into clearcase yet. So I create a view onto my stream, that looks at a VOB. Now views can be either Dynamic Views or Static Views. Dynamic views seem to be both stored locally and remotely on the server. Static views are more akin to a "Get Latest Version" in SourceSafe - I think. I go with the documentation and choose a dynamic view, which manifests itself on my NT machine as a shared drive.

Now we already have our code in RCS, but our PHB is a Microsoft Advocate. He tells us that we have to use ClearCase - when we tell him that we can't use our Linux boxen to connect to the NT server, his answer is that we should use the NT clients (that's an NT box for each developer) to check out our work, then copy the files across to our Linux boxen. Obviously, this sucks. So to put our code into ClearCase, I get the entire source tree and documentation (450Meg) and copy it across to my NT machine.

To put the code into ClearCase, I have to run clearexport_ffile -r <dirs> on our codebase. This churns it's way through our source tree and produces a file that I reference with clearimport which actually blats the code into ClearCase.

Except it doesn't. You see, ClearCase won't do a mass import into a UCM VOB, only a non-UCM one. You're then supposed to import the VOB into a Project VOB, turning it into a UCM VOB in the process. Why? I don't know. By this point in the week (this morning, I started on Monday), I am cursing ClearCase every 5 minutes.

So I have to create a non-UCM VOB, create a view, mount the VOB into the view then run the import tool. This I do, it takes 4 hours. Of course this would be too easy, so our BOFH's pull a vital network cable out when I am 95% of the way through the import - which of course then bombs out. Now I am normally a relatively placid guy, but this made wonder if I could hide our sysadmin's body in the hub/switch room.

So delete the files from the VOB - itself not easy or straightforward, then set the import running again. Then I go home, hoping that the import will run overnight.

Much of the terminology in ClearCase is such that it is now OpaqueCase in my mind. The whole product and documentation seems designed to make you buy very courses from Rational University. I wonder what it will be like to try and branch code, merge it back in or do a build? I dread to think.

Log in or register to write something here or to contact authors.