Я бы, вероятно, просто сохранил это в одном репозитории - обратите внимание, что в приведенной вами ссылке они в конце концов используют свою систему сборки, чтобы собрать двоичный вывод из разных репозиториев. Я не совсем понимаю их обоснование.
Если основная проблема, которую вы пытаетесь решить, заключается в том, как обновлять внешние компоненты, я бы, вероятно, использовал для этого анонимное ветвление .
т.е. добавьте внешнюю библиотеку в свой проект и свои модификации. Убедитесь, что это работает. Тег с ExternalA-v1.0. Взломай свой реальный проект. Теперь у ExternalA, Inc. есть новая версия их материала. Обновите репо до тега ExternalA-v1.0. Импортируйте их новую версию и примените ваши модификации сверху. Commit. Теперь у вас есть две главы: одна с последней версией вашего кода (которая работает с ExternalA-v1.0) и одна с последней версией ExternalA (которая, возможно, не работает с вашим кодом). Итак, вы объединяете и примиряете их. Снова отметьте, теперь с ExternalA-v2.0. Повторите при необходимости.
Вы по-прежнему можете хранить свои внешние компоненты в отдельных репозиториях, но я предполагаю, что проект, использующий их, не должен постоянно обновляться с учетом изменений в нем - похоже, весь смысл веток поставщиков заключается в том, чтобы иметь некоторые точка изоляции между иждивенцем и иждивенцами. Конечно, перемещение изменений из проекта externalA в проект, который использует этот проект, будет делом ручного (ну, в общем, копией, как на самом деле в SVN).