To convince certain persons to shift from Clearcase
to Git
, I need to show them alternatives to the baselining
and checking in/out doc
You can read in my old answer a good comparison of ClearCase and Git.
"What are the basic ClearCase concepts every developer should know?"
They key aspect to understand is that a Git repository would be the equivalent of a UCM ClearCase component: you cannot store all components in a Git repo like you could in an UCM Vob with the (centralized) ClearCase VCS.
Once you realize that, a baseline is just like a commit of your git repo: it will reference the full content of that repo. You can add a tag on it if you want (like a full UCM baseline), but it isn't mandatory.
Each commit represents an activity: the UCM activity is a "change set": a list of changes, which is what a Git commit allows you to find.
git commits aren't like UCM activities. You can mimic this by manually pushing the files associated with an "activity" but the management in UCM is simplified. In UCM, you set your activity, do your work, checkin the activity (or you could checkin the files) and deliver the activity; there is no capability to deliver a single file.
Activities can also continue to worked on across multiple deliveries. A developer can keep multiple un-delivered activitied in their own stream as long as there are no version tree conflicts that cause a "drag".
Baselines too, are different. A baseline in UCM is a managed way of labelling previous and selected integration stream activities.
UCM significantly simplifies the management of multiple streams and identifying what is different between commits, who delivered them, what activities they were part of.
ClearCase and UCM are not the same product. It is UCM that provides the CM management improvements - ClearCase has many of the same features but they require more process and rigour to reach the same goal.