191
baseBranchLastEventID int64,
192
newVersionHistory *historyspb.VersionHistory,
194
>
195
>
shardID := r.shard.GetShardID()
196
>
executionInfo := r.mutableState.GetExecutionInfo()
197
>
namespaceID := executionInfo.NamespaceId
198
>
workflowID := executionInfo.WorkflowId
199
>
runID := r.mutableState.GetExecutionState().RunId
200
>
201
>
resp, err := r.executionMgr.ForkHistoryBranch(ctx, &persistence.ForkHistoryBranchRequest{
202
>
ForkBranchToken: baseBranchToken,
203
>
ForkNodeID: baseBranchLastEventID + 1,
204
>
Info: persistence.BuildHistoryGarbageCleanupInfo(namespaceID, workflowID, runID),
205
>
ShardID: shardID,
206
>
NamespaceID: namespaceID,
207
>
NewRunID: runID,
208
>
})
209
>
if err != nil {
210
return 0, err
211
}
212
213
>
versionhistory.SetVersionHistoryBranchToken(newVersionHistory, resp.NewBranchToken)
branch_manager.go
214
>
215
>
branchChanged, newIndex, err := versionhistory.AddAndSwitchVersionHistory(
216
>
r.mutableState.GetExecutionInfo().GetVersionHistories(),
217
>
newVersionHistory,
218
>
)
219
>
if err != nil {
220
return 0, err
221
}
223
return 0, serviceerror.NewInvalidArgument("BranchMgr encountered branch change during conflict resolution")
224
}
225
227
}