Search code examples
rtc

Why does creating a snapshot also create a new baseline?


I created a new snapshot of a stream. As a result of this one of the components of the stream now has a new baseline. This new baseline has same name as newly created snapshot. Why did this occur ?


Solution

  • A snapshot will take a... snapshot of the latest change set delivered on the Stream.

    As mentioned in "difference between snapshot and baseline":

    You can snapshot the state of either a workspace or a stream, whichever you prefer.
    That will automatically create baselines when needed, i.e., when the current configuration of a component in that workspace/stream is not currently captured in a baseline.

    When you create a baseline on a workspace component, it baselines the source versions currently selected by the workspace from that component.

    Once it is created, you can use a snapshot or baseline anywhere you want (i.e. it is not in any way "tied" to the workspace or stream on which it was created).

    It is true that the "deliver" operation from a workspace to a stream also causes baselines in that workspace to show up in baseline history of the stream.

    Some folks believe that the "deliver" operation should only deliver change sets, and not baselines, because of the confusion that can occur when the baseline history in the workspace and stream have diverged.
    (In particular, I'd prefer that you would just explicitly create baselines in a stream when you want them).
    One advantage of this approach is that snapshots and baselines would have consistent semantics (currently, baselines are affected by a deliver operation, but snapshots are not).