Лично я бы тоже использовал svn: externals, но я бы настроил свой репозиторий по-другому
repo/trunk/src/mycode
repo/trunk/src/theircode
repo/branch/1.1/src/mycode
repo/branch/1.1/src/theircode
(и т. Д.)
Все ветки "их кода" могут легкобыть привязанным через SVN, внешний по отношению к своему хранилищу (их номер версии).Я бы не отдал контроль над всем стволом во внешнее хранилище, потому что, если вы решите, что вам нужно переместить ствол в определенном направлении, вы окажетесь в неправильном месте в хранилище, над которым у вас нет прямого контроля.Да, тогда вы могли бы провести реструктуризацию, но, скорее всего, вам нужно будет провести реструктуризацию именно тогда, когда вам нужно сделать что-то еще важное, что означает большее давление при меньшем доступном времени.
Если вы должны «исправить» ихкод, поместите это в ветку «ваш код» и расширьте вашу систему сборки, чтобы скопировать их код в область «исходников» сборки.Затем примените свои патчи.Не изменяйте их код на месте, он требует проблем на многих уровнях, включая множество уровней, которые не очевидны, пока не станет слишком поздно.