Task #10497
closedАвтоматизация распределения ForeignID идентефикаторов
100%
Description
Фиксирую текущее видение по реализации ForeignID.
Каждый идентефикатор должен быть уникален, новый доступный идентефикатор доступен в /Requirements в свойстве nextid
Для использования функции автоматического распределения идентефикаторов нужно явно ее включить в свойствах проекта. При этом также может быть реализован выбор имени свойства вместо ForeignID.
При первом включении происходит распределение новых идентефикаторов по всем наследникам /Requirements с увеличением nextid. Впоследствии все новые требования(как и скопированные) получают новый идентефикатор с увеличением nextid.
Для проверки уникальности идентефикаторов и того что все они меньше nextid нужно реализовать на это чекер.
Для того чтобы избежать чрезмерного увеличения nextid нужно реализовать массовую операцию которая будет осуществлять следующее:
1. Получит номер nextid из head проекта
2. Для каждого объекта с номером больше nextid присвоит новый номер.
Стоит также отметить наличие в будущем проблемы с merge. При этом могут появиться объекты с одинаковыми идентефикаторами. На данный момент предпологается что в этом случае второй из осуществляющих commit получит сообщение о необходимости переназначения идентефикаторов. Сейчас merge не поддерживается и проблемы пока нет.