It's all about the answers!

Ask a question

Accept dependent change set sequence


Ashley Clementi (111) | asked Apr 03 '12, 11:17 p.m.
retagged Jun 25 '14, 5:14 p.m. by David Lafreniere (4.6k7)
Hi

I have arrived at a scenario where I have a stream S which has change sets A and B such that file X and Y are in both change sets and file W is only in change set A and file Z in only in change set B.

Now I have a second stream T and I want only those changes in B.

This is the sequence of steps that I have performed to get what I want. If someone can provide me with a less complex sequence I would be grateful.

Having a workspace for stream T and a Compare with stream S
1. Accept change set B
This results in an Outgoing Change set B' and conflicts for files X and Y.
I cannot deliver change set B because of this conflict even though it has only those changes I am interested in.
2. Auto resolve the two conflicting files.
This results in a new Outgoing Change set C with all those changes in change set A that I do not want and B' is dependent on C!
I cannot deliver change set B' without delivering change set C, but I don't want those changes!
3. Reverse change set C
This results in a Pending Changes for files X and Y.
4. Merge the Pending Changes
This results in reverse changes in my workspace for files X and Y.
5. Check-in files X and Y to change set C
This results in change set c having x and y that have no differences from the stream.
6. Deliver C and B'.
This results in just the changes in B (files X,Y,Z) delivered to my stream T.

Is there a simpler sequence of steps to do what I want?

Regards
Ashley

One answer



permanent link
Geoffrey Clemm (30.0k23035) | answered Apr 04 '12, 12:45 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
What you (and lots of other folks :-) really want is work item 128329:

Need to be able to handle "gaps" via standard accept mechanism, and not "patch" mechanism

This unfortunately did not fit into the upcoming 4.0 release, but it is almost certain to be a top priority for post-4.0 (but it never hurts to add a comment indicating your interest/support).

Until then, for simple/infrequent instances of this situation, you can use the "patch" mechanism. That should be one of the options provided by RTC when you get into this situation (i.e., create a "patch" for just B, and apply that to your workspace).

Note though that the behavior you describe doesn't sound quite right to me. In particular, for the first step,
1. Accept change set B. This results in an Outgoing Change set B' and conflicts for files X and Y.
you should be getting a "gap" error, and it would refuse to accept change set B. One of the options it should give you in the error message is create a patch for B.

The other workaround at the moment is the one you mentioned, namely accept both A and B, and then "reverse" change set A.

Cheers,
Geoff

Hi

I have arrived at a scenario where I have a stream S which has change sets A and B such that file X and Y are in both change sets and file W is only in change set A and file Z in only in change set B.

Now I have a second stream T and I want only those changes in B.

This is the sequence of steps that I have performed to get what I want. If someone can provide me with a less complex sequence I would be grateful.

Having a workspace for stream T and a Compare with stream S
1. Accept change set B
This results in an Outgoing Change set B' and conflicts for files X and Y.
I cannot deliver change set B because of this conflict even though it has only those changes I am interested in.
2. Auto resolve the two conflicting files.
This results in a new Outgoing Change set C with all those changes in change set A that I do not want and B' is dependent on C!
I cannot deliver change set B' without delivering change set C, but I don't want those changes!
3. Reverse change set C
This results in a Pending Changes for files X and Y.
4. Merge the Pending Changes
This results in reverse changes in my workspace for files X and Y.
5. Check-in files X and Y to change set C
This results in change set c having x and y that have no differences from the stream.
6. Deliver C and B'.
This results in just the changes in B (files X,Y,Z) delivered to my stream T.

Is there a simpler sequence of steps to do what I want?

Regards
Ashley

Comments
David Lafreniere commented Jun 25 '14, 5:12 p.m.
FORUM MODERATOR / JAZZ DEVELOPER

In RTC 4.0.5 we delivered additional support when trying to accept change sets which have a gap (often encountered when trying to backport fixes). In a very brief summary of the feature, when you accept change sets with a gap, you can now follow a gap workflow that accepts one change set at a time and, for change sets that contain gaps, creates a new change set (with aided traceability), that contains the equivalent changes. This means users will not have to accept the change sets 'as a patch'. Applying change sets as a patch has limitations compared to the new workflow (as discussed in the article below).
This feature is summarized in the RTC 4.0.5 'New & Noteworthy' page:  https://jazz.net/downloads/rational-team-concert/releases/4.0.5?p=news#scm-improve-usability-405-m1
Below are some videos which show this feature:
-Accepting multiple change sets with gaps in the RTC 4.0.5 client for Eclipse IDE: https://www.youtube.com/watch?v=28raag5RdzU
-Accepting a change set with a gap in the RTC 4.0.5 client for Eclipse IDE: https://www.youtube.com/watch?v=TucVu_BgB7E


David Lafreniere commented Jun 25 '14, 5:12 p.m.
FORUM MODERATOR / JAZZ DEVELOPER

In RTC 5.0 we added a "fill the gap" feature where the change sets that fill the gap 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: https://jazz.net/downloads/rational-team-concert/releases/5.0?p=news#eclipse-fill-gaps

The classes that are involved for filling the gap include (available in RTC 5.0):
client side: IWorkspaceConnection.findChangeSetsToAcceptToFillGap(...)
server side: IScmQueryService.findChangeSetsToAcceptToFillGap(...)

Both features are explained in detail in the "Improved Gap Handling for SCM" article: https://jazz.net/library/article/1372

Your answer


Register or to post your answer.