Как я могу разделить хранилище 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.