SVN перемещает единую директорию в другой репозиторий (с историей)
Связанный вопрос: Перемещение репозитория в другую ветку (с историей)
Я знаю, что можно выгрузить полный репозиторий SVN с историей и загрузить его в пользовательскую (вспомогательную) директорию целевого репозитория, используя:
// in source repo
> svnadmin dump . > mydumpfilename
// in destination repo (backslashes because I'm using Windows)
> svnadmin load . < mydumpfilename --parent-dir some\sub\directory
Но это будет импортировать полный репозиторий в подкаталог целевого репозитория. Я хочу определить подкаталог в исходном репозитории, который должен быть экспортирован. Что-то вроде svnadmin dump . --source-path old\sub\dir > mydumpfilename
.
Как я могу это достичь? Если TortoiseSVN может это сделать, скажите об этом;)
РЕШЕНИЕ: Спасибо Тиму Хенигану ответ, вот правильный способ сделать это:
// execute in destination repo
svndumpfilter include source\sub\dir < mydumpfilename | svnadmin load . --parent-dir destination\sub\dir
Надеюсь, это тоже поможет другим...
Ответы
Ответ 1
Отметьте svndumpfilter
и этот раздел в Обслуживание хранилища.
Как только у вас есть файл дампа для всего старого репозитория, вы можете использовать svndumpfilter
для извлечения только той части, которая вам нужна.
Я не знаю, как это сделать с TortoiseSVN.
Ответ 2
Немного поздно для вечеринки, но... если вы вытащили локальные копии обоих репозиториев с помощью TortoiseSVN, вы можете скопировать каталог из одного в другой с помощью истории, щелкнув правой кнопкой мыши по каталогу (или файлу) из Repo1 и перетаскивая его в Repo2. Когда вы отпустите мышь, вы получите этот список опций:
![enter image description here]()
"SVN Export versioned items here" будет копировать (рекурсивно) с историей.