It's all about the answers!

Ask a question

Why does taking a snapshot create a baseline?

Eddie Breeveld (6112430) | asked Jan 23 '14, 6:48 a.m.
(RTC 4.0.4) I tested creating a source control snapshot, and deliberately did not tick the "Create a baseline" option.  But a baseline was created, and when I deleted the snapshot the baseline remained!  Why does taking a snapshot create a baseline?

Accepted answer

permanent link
Jeff Care (1.0k3733) | answered Jan 23 '14, 9:15 a.m.
Unless the internals have changed drastically since version 3...

First off, a snapshot is simply a collection of baselines, that's it. Internally (i.e. in the APIs) there is in fact no such thing as a "snapshot", instead they are referred to as baseline sets; I supposed the decision was made at some point that snapshot was a better external name for the concept.

A baseline is point in time record of the state of a component. Because a stream contains one or more components, taking a snapshot of a stream could (possibly) result in the creation of one or more baselines. Snapshot is to stream as baseline is to component.

I say possibly because typically when taking a snapshot RTC will not create a new baseline for a given component if that component has no additional changes in the stream since the last baseline. Imagine that you have a stream with two components, A & B. If A rarely changes but B changes often it's quite possible that a given baseline for A will be part of many snapshots of the stream (since A does not change often).

I believe (but can not say for sure) that the checkbox you're referring to will force the creation of a new baseline.
Eddie Breeveld selected this answer as the correct answer

Arun K Sriramaiah commented Jan 23 '14, 9:35 a.m.

 Yes, snapshot is composite baseline of all components.  I tried in 4.0.4 its not reproducing now. it looks strange.

Geoffrey Clemm commented Jan 23 '14, 3:33 p.m.

Jeff's answer is correct.   A snapshot requires that there be a baseline in each component for the current state of the stream/workspace, and if there isn't one, the snapshot operation will always create a new baseline in that component.  The checkbox means "create a baseline even if it is not needed" (i.e. there already is a current baseline for that component that could be used in the snapshot).  The only reason you would select that option is if you want the existence of that snapshot to appear in the baseline history of the component (i.e. you can look at the baseline history of the component and be able to tell immediately which baseline is being used by that snapshot).

2 other answers

permanent link
Arun K Sriramaiah (3.2k12775) | answered Jan 23 '14, 8:07 a.m.
 Hi Eddie,

When your trying to create a snapshot there  is an option for selecting create baseline ( you can un check if its not required)

A snapshot is a record of the configuration of all components in a stream or work-space

A baseline represents a configuration of a component at any particular point in time. Baselines serve as fixed points of reference, and are useful both for initializing streams.

Snapshot is created on Stream and Repository level can create and record the configuration on component level ( Baseline) along with the snapshot creation.

Snapshot and Workspace can be deleted, but you can delete the baselines or components.

Hope the above information is clear.

Please let me know does the information helped.


Eddie Breeveld commented Jan 23 '14, 8:15 a.m.

Thanks Arun.  I unchecked the option to create baselines but it still created them!  I only wanted a snapshot, not baselines.

permanent link
Arun K Sriramaiah (3.2k12775) | answered Jan 23 '14, 8:29 a.m.
 Hi Eddie,

Please try in 4.0.5 its not reproducing, yes the issue exists in 4.0.4


Eddie Breeveld commented Jan 23 '14, 8:41 a.m.

Thanks, so it is a bug in 4.0.4 :(.  It may be many months before we have 4.0.5 installed, I will try again then.
All the best,

Your answer

Register or to post your answer.