Как экспортировать часть хранилища SVN с зависимостями?
-
06-07-2019 - |
Вопрос
Я пытаюсь перенести часть репозитория SVN с помощью svnadmin dump
.
Предоставленный инструмент svndumpfilter не управляет копированием / перемещением / переименованием зависимостей из каталогов, не включенных в экспорт.
Есть ли инструмент, который может управлять этими зависимостями?
Решение
Я нашел сценарий Python Саймона Тэтхэма под названием svndumpfilter2 , который пытается справиться с простыми зависимостями (хотя я нашел некоторые ограничения).
Вы также можете проверить статью о его переходе на Subversion и мотивация для сценария.
Другие советы
Под зависимостями вы подразумеваете те, которые определены свойством svn: external?
Если да, я думаю, что вы должны перейти к svndumpfilter и пути ссылки в свойстве.
Например, если ваш проект находится в http: // host / project
и для свойства svn: external установлено значение http: // host / dependencies
, вы можете сделать что-то вроде р>
svndumpfilter include http://host/project http://host/dependencies < total.dump > project.dump
Вы не можете избавиться от этой проблемы. Если вы скопировали каталог / файл, вы должны включить оба (источник и место назначения) в svndumpfilter.
Однако вы можете сделать несколько уловок:
Если вы выгружаете репозиторий не из ревизии 0, а говорите, например, из ревизии 100 вы получите новый репозиторий с ревизией 1-100. Однако в вашем конечном хранилище все файлы / папки в редакции 1 являются исходным хранилищем в редакции 100. Таким образом, вы можете избавиться от версионных данных без потери HEAD-Revision.
Вы можете попытаться выгрузить / загрузить исходный репозиторий до первой копии в "плоский" файл. хранилище, затем добавьте оставшиеся дампы на него. Таким образом, вы можете пропустить хлопотную ревизию копирования, так как ваши файлы уже находятся в подходящей (целевой) директории.