It's all about the answers!

Ask a question

Delivering the changes would introduce gap in the stream


Jayashri shrinivas (133) | asked Apr 01, 10:09 a.m.
Hello Team,

We are trying to deliver a changeset ( only one changeset ) from one streamA to another streamB. While delivering the the changset to streamB we are getting the following error :
ERROR: Delivering these changes would introduce gaps in the stream. You are trying to deliver a subset of the outgoing change sets but they need to be delivered together because of dependencies between them

We are using a local repository workspace in which streamA is set as source stream and streamB is set as target stream . We want to deliver the changeset to a component so we are accepting the incoming changes from the source streamA for that particular component. We are using the follwoing code for accepting the incoming changes:

componentsToBeAdded.add(
localWorkspaceConnection.componentOpFactory().addComponent(workItemHandler.getComponent(), true));
localWorkspaceConnection.applyComponentOperations(componentsToBeAdded, null);

// Extract the changeset history report only from created local
// workspace
IChangeHistorySyncReport streamChangeHistorySyncReport = localWorkspaceConnection.compareTo(
streamWorkspaceConnection, WorkspaceComparisonFlags.CHANGE_SET_COMPARISON_ONLY,
Collections.EMPTY_LIST, null);

// Only accept the changeset in the component. Baseline history not
// required
localWorkspaceConnection.accept(AcceptFlags.DEFAULT, streamWorkspaceConnection,
streamChangeHistorySyncReport, Collections.EMPTY_LIST,
streamChangeHistorySyncReport.incomingChangeSets(workItemHandler.getComponent()), null);


Where streamworkspaceconnection is the workspace connection created for source streamA. When i checked in the local repository workspace , the incoming changes for that particular component were not accepted and it did not even throw the error .

And while delivering a changeset it throwed the error:
.

Do i have to add some extra check before accepting the incoming changes. I looked into various ways of gaps could be handled but did not get the solution. Can you please help.
Delivering these changes would introduce gaps in the stream. You are trying to deliver a subset of the outgoing change sets but they need to be delivered together because of dependencies between them

One answer



permanent link
Geoffrey Clemm (29.7k23035) | answered Apr 01, 7:55 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

The GUI lets you state that you want to deliver without accepting the change sets that fill the gap, and then the GUI invokes the merge tool to allow out to "merge out" the changes that you said you didn't want (it requires a merge operation, because the version that is in the change set you do want contains the changes that you said you don't want).   Since this requires invoking a merge tool, your code would have to know how to interact with the user to invoke that merge. 


Comments
Jayashri shrinivas commented Apr 05, 11:47 a.m.
Hello Geoffrey,

Could you please let me know how can i perform the gap workflow after accepting the incoming changeset into a workspace where source stream is stream A and target stream is stream B.....as mentioned in answer given by David in link : https://jazz.net/forum/questions/67239/copying-change-sets-from-between-streams. I am trying to use localWorkspaceConnection.findChangeSetsToAcceptToFillGap() but i dont know what changesets i have to pass in this. I think i am getting this error while accepting the incoming changesets from source stream A and while delivering it to stream B its throwing the error. The changeset which i want to deliver does not have any dependency , only one single changeset has to be delieverd.

Geoffrey Clemm commented Apr 05, 2:51 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

I'll have to defer to other participants in the forum to give you programming guidance for this. 

Your answer


Register or to post your answer.