Во-первых, я согласен с Кеном и Фабрицио, что у вас должен исходный код для всех компонентов, которые вы используете в проекте. Все остальное просто напрашивается на неприятности.
Мы не используем Subversion для нашего контроля исходного кода, но я предполагаю, что то, что мы делаем, все равно будет применимо ...
Каждый проект, над которым мы работаем, имеет полную копию всех компонентов (источника), используемых в этом проекте. Когда мы выпускаем, мы создаем ветку релиза, которая включает компоненты, а также исходный код проекта. Каждый проект включает свой собственный каталог BPL.
Мы всегда создаем отдельные ярлыки для запуска Delphi для каждого проекта (или ветви проекта), над которым мы хотим работать, и используем параметр командной строки -R, чтобы задать уникальный ключ реестра для параметров Delphi для этого проекта. .
Затем мы перезаписываем переменную среды Path внутри Delphi, чтобы она указывала на каталог BPL нашего проекта вместо обычного каталога BPL Delphi.
Мы устанавливаем выходные каталоги BPL и DCP для всех компонентов в качестве локального каталога BPL проекта.
Это позволяет нам иметь несколько версий Delphi с несколькими версиями проектов, использующими разные версии компонентов без каких-либо проблем.