It's all about the answers!

Ask a question

How to identify the dependency tree for changesets?

Achint Mathur (2046) | asked Apr 22 '16, 7:51 p.m.
We follow a 2 stream (Per Release) model in our project, a Development stream and an Integration stream. Changesets are associated to work items in and delivered to the Dev stream by all developers. Then the build team moves a subset of the changes to the Integration stream based on the Work Item status ( Resolved vs In Progress ).
The problem we run into is that some files are modified in many changesets, creating a dependency to deliver all changesets touching the file or none. Identifying the dependencies between the changesets during the code promotion (Dev --> Int stream) is a very tedious process for us and takes a lot of time.

For eg :

Changeset 1 (CS1) modified File A and is associated to a Resolved work item W1 ( Ready for Int )
Changeset 2 (CS2) modified File A & B and is associated to a non resolved work item W2
Changeset 3 (CS3) modifies File B and is associated to a non resolved work item W3

if we have to promote CS1, we also need to include CS2 and CS3.  Is there an easy/automated way to find out the dependency tree b/w changesets, like CS1 is dependent on CS2 and CS2 is dependent on CS3 ?

Currently we expand the changesets to the file list and click on each file to highlight the other changesets its included in. We are on RTC 5.0.2.

I read in a couple of threads that in RTC 5.0 a feature called ' Fill the gap ' has been added. Can that be used to populate the changeset dependency tree ?

One answer

permanent link
David Lafreniere (4.8k7) | answered May 11 '16, 1:40 p.m.
In RTC 5.0 we added a "fill the gap" feature where the change sets that fill the gap (i.e are 'dependent on') are shown to the user, allowing them to either accept all the change sets or to continue with the gap workflow that was available in RTC 4.0.5.
This feature is summarized in the RTC 5.0 'New & Noteworthy' page:

The classes that are involved for filling the gap include (available in RTC 5.0), in case you want to write your own code:
client side: IWorkspaceConnection.findChangeSetsToAcceptToFillGap(...)
server side: IScmQueryService.findChangeSetsToAcceptToFillGap(...)

Both features are explained in detail in the "Improved Gap Handling for SCM" article:

These are the only features available to answer (or come close to answering) your question.
In your example, using the Eclipse or VS client you would accept CS1, and the UI would show you that it depends on CS2 and CS3 (note: I think you numbered CS1, CS2, CS3 backwards, but I'll just use the names you wrote above).

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.