Friday, August 30, 2013

Early Comparison Between ClearCase and Mercurial

Disclaimer
I don't think I was very clear at the beginning. I will use this blog to track my progress as I come up to speed in CC. At this writing, I have still done very little in CC, but I want a place to store what I learn to share with others who may find themselves in my shoes (including folks on my project).

My searches on the Internet have only unearthed articles and posts describing how to migrate from CC to HG (a desirable goal, IMHO). However, I never found anyone trying to describe how to approach CC when all you've ever used is CVS, SVN, and HG. I am really only talking about HG, but as I stated earlier, HG and SVN are practically twins when compared to CC.

Therefore, any comments, clarifications, or corrections are most welcome.

VOBs
The VOB (versioned object base) is like the HG repository. But unlike HG, non-privileged users cannot typically touch the VOB. Admittedly, I have really no experience using a VOB (but isn't that telling?) and so I can't say for sure. In my situation at least, a lowly programmer doesn't mess with the VOB.

Views
Views are kind of like HG checkouts. You set up your view to see the versions of the files you want. The glaring difference between CC and HG is that CC focuses on files, not versions. That is, your view can be set up to look at files from a particular version.

Suppose you are looking at version 2 because you're interested in changes made to FileX. Then someone comes along and adds FileY, if you're running a dynamic view, your view will automatically add the FileY to your view.

With HG, you checkout some changeset, and you never change until you take explicit action. With CC, if you're using a dynamic view (the default, and seemingly the preference for those who use and like CC), things can change out from under you all the time.

Thursday, August 29, 2013

Starting to Use CC

Here is a link with some useful commands to get you started, assuming you've already set up a VOB (or, more likely, a CC admin has set up a VOB -- you likely don't have permissions to do that).

ClearCase Shortcuts

Here is some more detailed info. This info becomes more relevant and understandable after you've watched the You Tube videos and started to look at views in CC, as described in the first link of this post.

ClearCase Starting Points

For those of us who have to use CC (as well as those who would choose to do so), here are two links to You Tube videos that give an overview of CC. I like how they highlight the four functional parts of CC  Watching them helped me to understand how HG fits into the picture as a VCD and how it's comparable to the CC VOB.

CC Introduction
How CC Handles Versioning

This is where I hope this blog will be useful. There is a LOT of material out there on CC (just Google ClearCase or ClearCase Tutorial to see what I meant. I will post links to information that was helpful to me, coming from a HG background and so would help other HG users get started with CC.


Why Clearcase

The short answer: I have to because of the project I am on.

History
I started out using CVS but never really used it much. SVN was the first version control system (VCS) I really understood. I used it for a few years. Then when of my teammates suggested we switch to Mercurial (HG). It was a little strange at first, but I would never go back to SVN unless I had to for collaboration purposes. There is a lot out there on HG so I will just say this: HG is great for individual projects, group projects, and distributed projects and doesn't require network connections to work until you need to share changes.

The Alien VCS
Enter ClearCase (CC). The differences between SVN and HG are minute compared to CC. (Admittedly, at this writing, I'm just barely starting to understand how CC works.) CC with its VOBs (effectively the repository) that I can't touch -- that's the domain of the CC admins -- and views (kind of like checkouts in HG . There are also process controls and build tools. Comparing CC to HG is not an apples-to-apples comparison: CC aims to do much more. (See this good discussion of transitioning from CC to HG and so highlights important differences between the two as well as provides one way to accomplish all the CC does with a handful of products.)

Where From Here?
At least initially, I will be posting information that I have found useful in getting up to speed on Mercurial. Hopefully it will also be beneficial to you.