Я бы лучше структурировал это так:
trunk
Vendor
Framworks 1
Company
company code
branches
Live (copy/merge of trunk)
Vendor (this gets automatically pulled in by the copy/merge from trunk to live)
Company (same here)
Development
A (copy of trunk)
Vendor
Company
B (copy of trunk)
(same here)
tags
Version 1.0 (copy of live)
....
Version 2.0 (copy of live)
.....
Таким образом, самая последняя ветвь - это ствол. Это ваша рабочая зона.
Если вы хотите внести более значительные изменения (или хотите, чтобы каждое изменение рассматривалось / тестировалось отдельно), добавьте его в ветку разработки, внесите свои изменения и объедините обратно в магистраль. После каждого обратного слияния вы можете оставить ветки разработки или удалить их.
Если все тестирование в порядке, и вы хотите запустить его, объедините транк в Live-ветку.
Распространенной концепцией также является версия каждой версии выпуска с тегом. В этом случае вы просто копируете live в ветку tag и присваиваете ей имя версии.
Вы заметите, что каждая ветвь (прямая трансляция, разработка a, разработка b, версия 1, версия 2) также будет содержать все вендорские инфраструктуры и весь ваш код, но это нормально, потому что эти копии стоят всего несколько байт в подрывная-хранилище.