Мы хотим загружать (экспортировать, оформлять) полный репозиторий и периодически импортировать в другой репозиторий (со всеми сообщениями фиксации), чтобы мы могли реализовать стратегию тегов / веток.
Предыстория: наш подрядчик просто фиксирует ствол, а он отказывается (давайте оставим это техническим) для создания тегов для версии каждой новой библиотеки (чтобы мы могли не отставать от управления изменениями).
Поэтому мы хотим каждый день импортировать их библиотеку в нашу магистраль и создавать теги и ветви в соответствии с нашими политиками.
У кого-нибудь такое случалось раньше?
В вопросе SO есть много правдоподобных решений Как синхронизировать два репозитория Subversion.
Вариант, который, похоже, может относиться к вам, предполагает использование СВК который по сути представляет собой децентрализованную версию svn.
Хотя это довольно необычно, я вам верю должен уметь делать это с помощью svnadmin
.
В репозитории исполнителя можно запустить следующее:
svnadmin dump --incremental -r <LOWER REVISION>:<UPPER REVISION> /path/to/bad_repo > dumpfile
затем в вашем репозитории:
svnadmin load --parent contractors_stuff/ /path/to/your/repository < dumpfile
Это будет постепенно добавлять изменения из репозитория подрядчика в contractors_stuff
каталог в вашем реальном репозитории. Как я уже сказал, теоретически это должно работать, но это определенно не предназначение этой функции. В непроизводственной системе определенно требуется тестирование, и оно, вероятно, сломается, если вы внесете изменения в эту часть своего реального репозитория.
В идеале вы должны сказать своему подрядчику, чтобы тот собрался и установил закон.
Альтернативным техническим решением было бы использование другой системы контроля версий, такой как Mercurial, Git или другой DCVS, которая лучше поддерживала бы такой рабочий процесс.