Mike MacDonagh's Blog

Somewhere in the overlap between software development, process improvement and psychology

scmload script for IBM Jazz SCM

A common complaint by command line users of the IBM Rational Team Concert (RTC) Software Configuration Management (SCM) command line is that it’s too complicated to just load some stuff. And they’re right, especially as compared to something like git. To work around this I wrote a little bash script which you’re welcome to use/edit/abuse to load stuff in a single command.

Note that this is for the occasional user, if you’re a command line user by nature then just use the normal scm command line, it’s quite easy when you’re used to it. Using this script will involve the creation of an RTC repository workspace, since at the time of writing this can’t be removed using the command line you may wish to tidy them up using the GUI. The follow on to this is my scmdeliver script.

The script (available via github) easy cloning with SimpleGit:

#!/bin/bash

rtc_server="https://your_server:9443/ccm"

echo ""
echo "Loads the contents of a component from a Jazz SCM stream to the current directory"
echo 'Usage: scmload "<stream_name>" "<component_name>"'
echo ""

stream=$1
comp=$2
error=0

if [ -z "$1" ]
then
echo "Error: Please specify a stream"
error=1
fi

if [ -z "$2" ]
then
echo "Error: Please specify a component"
error=1
fi

#generate a hopefully unique workspace name
workspace=my_cmdline_wks_$stream

if [ $error -eq 0 ]
then
echo "Loading stream \"$stream\" component \"$comp\" into local workspace"
scm login -c -r $rtc_server -n rtclive
wks_created_str='scm create workspace -s "$stream" "$workspace" -r rtclive'
echo $wks_created_str
wks_success='echo "$wks_created_str" | grep "successfully created"'
if [ -n "$wks_success" ]
then
wks_id='echo $wks_created_str | cut -d "(" -f2 | cut -d ")" -f1'
scm load $wks_id "$comp" -r rtclive
fi
fi

echo ""

Like I said this only automates a fairly simple set of command, but for a novice user it might be helpful as it takes parameters and wotnot. Here’s what it would look like using the plain scm cli:

scm login -c -r https://your_server:9443/ccm -n rtclive
scm create workspace -s "Stream A" "My New Workspace" -r rtclive
scm load "My New Workspace" "Component A" -r rtclive

Using this script you can load Component A from Stream A like this:

scmload "Stream A" "Component A"

Simplez!

Checkout my RTC Masterclasses and my advanced streaming guide:

  1. Development, Integration and Release Streams
  2. Streams for parallel branched development
  3. Streams for component reuse
Advertisements

What do you think?

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: