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.
#!/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"
Checkout my RTC Masterclasses and my advanced streaming guide:
- Development, Integration and Release Streams
- Streams for parallel branched development
- Streams for component reuse