It's all about the answers!

Ask a question

How do I find out the first stream to which a changeset was delivered to?


Ajay Amrite (113) | asked Jul 21 '16, 5:54 a.m.
edited Jul 21 '16, 5:55 a.m.
I have an integration stream and several project streams, content of project streams are periodically merged into the integration stream, One a project is complete the project stream is archived. The problem is that we need some away of knowing the project that delivered a change to the integration stream.

I can list out all the change sets against the integration stream using the command scm list changesets, but how do I know which project delivered a particular change set?
When I run the following scm command I get an error

scm locate -r "https://intranet:9443/ccm/" -C 7944 -b <<Project Area name>>
Problem running 'locate':
Specified alias or UUID "7944" is either not found or is invalid.

Accepted answer


permanent link
Ralph Schoon (63.1k33646) | answered Jul 22 '16, 7:53 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
I don't think the question can be answered. The information carried with the change set is who (user) created it. Streams basically select content in components. There is no information from which stream stuff came, usually it would even come from a repository workspace and not a stream.
So this whole question does not necessarily make sense.

Some information could be carried with a work item that the change set is connected to.
Ralph Schoon selected this answer as the correct answer

Comments
Ajay Amrite commented Aug 04 '16, 5:45 a.m.

It is reasonable to want to know which stream contributed a particular changeset to the integration stream.

In the absence of work items, how do we find out where the change originated.


Ralph Schoon commented Aug 04 '16, 6:11 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

I don't think it is reasonable, because it makes the stream to more than it is. This question made sense when there where branches, which streams are not. Streams can be created from snapshots or from individual component baselines. so the question does not make a lot of sense. The stream is a volatile object that can and should be deleted if it is not of any use.

You can ask if a change is in a repository workspace or stream or not. You can look at a component baseline history.
6.0.2 View the graphical history for components https://jazz.net/downloads/rational-team-concert/releases/6.0.2?p=newsDetails#rfv-locks2 is a new feature, but works on Baselines, which actually makes sense.




Ajay Amrite commented Aug 04 '16, 11:18 a.m.

 It still does not answer the question. Whether through stream or some other object. How do I find out where a changeset originated? Is work item the only way?


1
David Lafreniere commented Aug 04 '16, 5:55 p.m.
FORUM MODERATOR / JAZZ DEVELOPER

Ralph's first answer is correct. This question cannot really be answered. The short answer is that this information is not tracked anywhere. A change set object knows nothing about streams or workspaces, and a workspace or stream has a 'change set history' (which changes over time...). This question (from my understanding at least) is essentially, for every stream and workspace in the repository, at this particular moment in time, check if the change set exists in the current history... and then compare the 'added on' dates, and return me the earliest time. There is no way to do this in the UI, but that doesn't mean it would be impossible to write using the Jazz SDK (it might be a little expensive to do however). This however does not indicate any flow direction, it just gives a bunch of dates as to when a change set first made it's way into the history....


1
David Lafreniere commented Aug 04 '16, 6:06 p.m.
FORUM MODERATOR / JAZZ DEVELOPER

In general projects or streams do not deliver change sets. Usually a change sets first get created in a repository workspace and then delivered to a stream (there are some ways to have change sets created directly on a stream though without first being delivered to by a repository workspace), and usually a repository workspace may accept from a stream and deliver it to another stream (i.e not all the time is there a direct stream to stream delivery).

Also, when accepting change sets, it's possible to accept from a particular workspace or stream (such as in the Pending Changes view), or it's also possible to accept a change set "from the wild" (i.e with no source workspace or stream at all), (such as accepting a change set from a work item, or using the API). Already we can see the tractability starts to get lost..


1
David Lafreniere commented Aug 04 '16, 6:07 p.m.
FORUM MODERATOR / JAZZ DEVELOPER

Image there was a deliver flow from WorkspaceA-->StreamB-->WorkspaceC-->StreamD

If I ask where the change set came from, we could say workspaceA.
But what happens if we delete WorkspaceA and WorkspaceC, do we say:
-the origin of this change set is <unknown> because workspaceA is deleted OR
-the origin of this change set is StreamB because it is the earliest non-deleted context OR
-the origin is StreamD because workspaceC is deleted, and thus we can't walk back the delivery chain.

Or imagine none of those streams or workspaces are deleted, but WorkspaceA and StreamB had their components replaced to some baseline/state that existed before that change set existed... i.e the change set does not exist in the history... would it even make sense to say they are the origins (if they don't even have the change set in the history?)


Ralph Schoon commented Aug 05 '16, 4:04 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

Thanks for the explanation David!

showing 5 of 7 show 2 more comments

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.