135
}
136
137
>
func FindLCAVersionHistoryItemFromItems(versionHistoryItemsA [][]*historyspb.VersionHistoryItem, versionHistoryItemsB []*historyspb.VersionHistoryItem) (*historyspb.VersionHistoryItem, int32, error) {
version_history.go
138
>
var versionHistoryIndex int32
139
>
var versionHistoryLength int32
140
>
var versionHistoryItem *historyspb.VersionHistoryItem
141
>
142
>
for index, localHistory := range versionHistoryItemsA {
143
>
item, err := FindLCAVersionHistoryItemFromItemSlice(localHistory, versionHistoryItemsB)
144
>
if err != nil {
145
return nil, 0, err
146
}
147
148
// if not set
150
>
// if seeing LCA item with higher event ID
151
>
item.GetEventId() > versionHistoryItem.GetEventId() ||
152
>
// if seeing LCA item with equal event ID but shorter history
153
>
(item.GetEventId() == versionHistoryItem.GetEventId() && int32(len(localHistory)) < versionHistoryLength) {
154
>
155
>
versionHistoryIndex = int32(index)
156
>
versionHistoryLength = int32(len(localHistory))
157
>
versionHistoryItem = item
158
>
}
159
}
160
>
return CopyVersionHistoryItem(versionHistoryItem), versionHistoryIndex, nil
version_history.go
161
}
162