It's all about the answers!

Ask a question

Component sharing with different variants?

Ratheesh Madathil (1371325) | asked Aug 29 '13, 4:19 p.m.

If we have a component shared to multiple streams, where 90% of the files are common and the rest of the files are specific to the variant where it is shared to(stream). How do we handle this with flow ?(flow can be controlled only at component level as far as I know). Of course the common files we would like to flow to all the variants (streams), but not the special configuration files which are specific to the variant.

Any suggestions?

Karsten Angstmann commented Sep 05 '13, 8:36 a.m.

Hi Simon, Hi Geoff,
I am a college of Rateesh and try to elaborate this a bit further:

  • we have followed the separation approach partially already and separated the common code parts into separated components.
  • what now remains - and what trouble us - are the configuration files for those components.
I try to illustrate this:

Our problem is that:
  • we have a significantly high number (>10) of variants for each project
  • for each config file the "branch tree" looks completely different, e.g. Cfg 1 might be common for Variant A and B.A, for Cfg 2 it is A and C.
  • If we split up all config files into separate components, this will create > 150 new components, which also has obvious drawbacks.

I am not sure if Goeffs "folder" approach would help, because I do not see how the structure could remain constant. But the idea of remove not needed things via load rule is definitively interesting.

Geoffrey Clemm commented Sep 05 '13, 11:41 p.m.

I'll work with Rateesh and Karsten off-line, and then report back to the forum.

Accepted answer

permanent link
Karsten Angstmann (73127) | answered Sep 26 '13, 10:07 a.m.
Today we had a workshop with IBM with Geoff, proposal for config files is:
* put the config files in one component
* this component will be part of many streams for each of the ACME variants, so it will have A LOT of branches
* But other than a very complex branch graph there is no harm to it.

So in contrast to other configuration mechanisms where I first create the branch on file level and use it in RTC it is basically the other way around - create the streams and live with whatever branch this creates :-).

So we will go on with this approach and consider this answered for now. Thanks Simon & Geoff.
Ratheesh Madathil selected this answer as the correct answer

2 other answers

permanent link
Simon Eickel (1.1k75357) | answered Aug 30 '13, 1:36 a.m.
Hi Ratheesh,
it's only possible to flow the whole component between targets (streams, workspaces...)
So I would suggest to create own components for the variants that you have one component for all the common stuff and x components for the special variant stuff.

Than you can say you only want to share the common components.
The variant stuff has only to be shared with those targets (e.g. Repository Workspaces) which need them.

Hope this helps,

permanent link
Geoffrey Clemm (29.9k23035) | answered Aug 30 '13, 1:09 p.m.
Another approach is to have a "custom" directory in the shared stream, and to have a variant specific directory under that "custom" directory (i.e. ".../custom/var1", ".../custom/var2", etc.).   Then flow all of the changes to all of the variants, but a particular variant only looks at its directory in the "custom" directory.  And if there are a lot of files in the variant specific custom sub-directories, you can configure the load rules for a particular variant to only load the custom sub-directory for that variant.

Your answer

Register or to post your answer.