Как я могу разделить хранилище SVN?

В нашей группе у нас есть хранилище, мы хотели бы переместить хранилище, но в то же время мы также хотели бы удалить некоторые папки и переиндексировать ревизию (удалить все номера ревизий, которые связаны с удаленной папкой) возможный? Если да, то как?

1 ответ

Решение

Вы должны перевести репозиторий в автономный режим, остановив svnserve или Apache.

Затем выведите содержимое репозитория в файл с помощью команды вроде

svnadmin dump repos-folder/ > repos-dumpfile

После этого вы можете разделить дамп, отфильтровав соответствующие изменения, используя svndumpfilter инструмент. В приведенном ниже примере "my-branch" - это путь в репозитории, который вы хотите поместить в отдельный репозиторий:

svndumpfilter include my-branch --drop-empty-revs --renumber-revs < repos-dumpfile > branch-dumpfile
svndumpfilter exclude my-branch --drop-empty-revs --renumber-revs < repos-dumpfile > nobranch-dumpfile

Затем вы можете создать пустые репозитории для отфильтрованных файлов дампа и импортировать данные дампа:

svnadmin create repos-branch-folder
svnadmin load --ignore-uuid repos-branch-folder < branch-dumpfile
svnadmin create repos-nobranch-folder
svnadmin load --ignore-uuid repos-nobranch-folder < nobranch-dumpfile

Вы можете найти дополнительную информацию в разделе " Обслуживание хранилища " превосходной книги Subversion.

Другие вопросы по тегам