Я использовал агрегированную схему управления версиями. Итак, вы говорите, что у вас есть много продуктов, каждый из которых имеет один и тот же номер редакции, если развернутые полевые версии - я предполагаю, что это означает, что если вы обновляете встроенные библиотеки, то для офисных продуктов библиотеки не используются, для офисных продуктов по-прежнему предоставляется новый номер ревизии, хотя в них не было изменено ни одного кода.
Таким образом, в агрегированной схеме СИСТЕМА имеет один большой номер версии, и каждая подсистема имеет свою собственную. Я использую нотацию в чистом виде, потому что я не знаю терминологию для equivelant в svn: компонент верхнего уровня содержит все подкомпоненты в иерархии (представьте, что компонент подобен папке с кодом в нем, так что все в эта папка имеет ту же версию, или «базовую линию», как ее называет clearcase).
Если я создаю новую базовую линию (версию) в системном компоненте верхнего уровня, он помечает ее новой версией, и все подкомпоненты также получают новую версию (возможно, с другой схемой управления версиями), но только если они ' мы изменились.
Мы используем базовую дату-время и «номер выпуска» для версии системы верхнего уровня. Затем, каждая подсистема имеет основной / вспомогательный / build / svn. Кроме того, мы не показываем svn и номер сборки в "about-> help" или equivelant, только если вы углубитесь в какой-то файл "system config", вы можете извлечь фактический номер build / svn (например, посмотрев в метаданных в исполнении). Таким образом, пользователи видят только основную / вспомогательную версию, а не просто набор номеров сборок и номеров SVN.