Monday, March 31, 2008

Going a little bit deeper

After founding the "Team of one" post I've started moving forward faster...
At the same time I began to consider the differences among the several types of streams and its uses.... There is no a guide saying, OK this is the best way of using the different types of streams for building your chart... It's like when building a house, we know that bricks are for walls, roof tiles are for the roof etc... even when you are free to use bricks on the roof nobody does that....

Trying to understand the different type of streams I've noticed they are basically differentiated upon Promotion & Inheritance handling. Every stream can:

  • a) Allow promotion from downstream
  • b) Deny promotion from downstream
  • c) Allow promotion to upstream
  • d) Deny promotion to upstream
  • e) Allow inheritance from upstream
  • f) Deny inheritance from upstream
  • g) Allow inheritance to downstream
  • h) Deny inheritance to downstream
Mathematically there are 2^4=16 different possible types of streams even when not all of them are used/implemented by Accurev today.

i.e.
A Dynamic Stream would be a Stream that verifies a & c & e & g
A Snapshot would be a Stream that verifies b & d & f & g
A Workspace would be a Stream that verifies b & c & e & h
etc

A problem I've saw using the Stream Browser was that the different streams do not graphically display on the chart how they behave considering Promotion and Inheritance. Then I've started wondering if probably a stream shouldn't look closer to something like this...


The last stream on the pic is not currently implemented in Accurev but I consider it would be useful as we'll see on the next entry...

No comments: