Which strategy to follow when developing different versions of same application simultaneously?
Hi,
I have been studying RTC's SCM for some time now and keep wondering how to deal with our case.
Our company has been working with our self-developed apps for years now. Each app containing of 3-15 Eclipse-projects.
I have been looking for the 'ideal' way to 'version control' these apps. I have reviewed baselines, components, streams, repository workspaces, etc. The number of possibilities is almost limitless, each of them having their own advantages and disadvantages.
So let's say we have version 1.0 of a app which is running live. Meanwhile we are developing version 1.1 but still want to develop minor enhancements and fix bugs in 1.0. Which way would be best? Is there any useful documentation or tutorial to find on this topic?
I have read several Jazz-articles but none of then solved my question.
Thanks in advance,
Guus
Accepted answer
I would suggest to use the "one stream per version" approach.
Since RTC 4.0.5 it is very easy to cherry-pick change sets to be delivered between streams, thanks to
so you can easily backport bugfixes from one version to another.
Some documentation can be found here:
https://jazz.net/library/article/40
http://www.ibm.com/developerworks/rational/library/parallel-development-rational-team-concert/index.html?ca=dat
http://mikemacd.wordpress.com/2012/03/12/advanced-rtc-scm-streaming-part-1-development-integration-and-release-streams/
Since RTC 4.0.5 it is very easy to cherry-pick change sets to be delivered between streams, thanks to
https://jazz.net/jazz/web/projects/Rational%20Team%20Concert#action=com.ibm.team.workitem.viewWorkItem&id=249763
Some documentation can be found here:
https://jazz.net/library/article/40
http://www.ibm.com/developerworks/rational/library/parallel-development-rational-team-concert/index.html?ca=dat
http://mikemacd.wordpress.com/2012/03/12/advanced-rtc-scm-streaming-part-1-development-integration-and-release-streams/
Comments
And note that allocating a separate stream for each version is really the only way to go. Baselines, components, and repository workspaces are for handling other aspects of development ... not for maintaining separating versions. In particular, baselines are for recording a particular immutable configuration, components are for partitioning your system into sub-systems, and workspaces are for providing a private configuration.
Comments
Guus Weisscher
Apr 01 '14, 4:23 a.m.Thanks Piotr and Geoffrey, I will re-read the jazz.net article (thought I understood it, but apparently not...) and dive into the other two articles Piotr indicated.