Возможно, стоит использовать сборочный двигатель, такой как hudson или круиз-контроль.
Рабочий процесс немного отличается - теги создаются после сборки, но вы можете получить дополнительные модули, которые дадут вам некоторый контроль над этим.
Суть в том, что вся работа разработчика сделана для вас, и вы получите достойную основу для ваших ночных сборок, и вы получите хороший веб-интерфейс для контроля и мониторинга всего.
Лично я бы добавил некоторые внешние определения в ствол, чтобы подключить соответствующие сторонние библиотеки в соответствующие места. Таким образом, когда вы изменяете версию сторонней библиотеки, вы вносите изменения в trunk и не должны изменять скрипты сборки.
Это также означает, что вы можете создавать более старые версии, просто проверяя соответствующий ствол / тег / ветку. Будьте осторожны - просто сделайте их на стволе, разбрасывание вокруг может привести к убийству.
Я бы тоже сделал репозиторий примерно так:
project
/trunk
/branches
/tags
3rdparty
Просто потому, что это дает вам больше возможностей для добавления проектов высшего уровня в какой-то момент. Делая это, вы можете управлять различными проектами совершенно независимо - и вы все равно можете использовать внешние ссылки для обращения к нужным версиям от одной к другой, если есть зависимости - это приятно останавливает изменения в одном проекте, молча нарушая / изменяя зависимые проекты.
Можно сделать это и с помощью отдельных репо, что хорошо, но в этом случае я бы выделил отдельный раздел 3-го участника в отдельный репо с самого начала.