2017-01-30 97 views
-1

Это то, что я пытаюсь сделатьsvnadmin - мигрирующие подкаталог проекта в корневой директории пыльников проекта

Project_A 
    -SubFolder_Y 
     Project_X 

Project_B 
    Project_X 

Так в основном мигрируют подкаталог «Project_X» из проекта A в корень проекта В с все изменения.

Я пытаюсь использовать команды svnadmin, так как у меня есть доступ к серверу SVN.

Я знаю, что я хотел, так что-то вдоль линии:

1. svnadmin dump \\Repositories\Project_A > ProjectA.dump 
2. svndumpfilter include Project_X --drop-empty-revs --renumber-revs <Project_A.dump> Project_X.dump 
3. svnadmin load --ignore-uuid \\Repositories\Project_B <Project_X.dump 

Это, кажется, не работает, что я здесь отсутствует?

Заранее благодарен!

+0

ProjectA и ProjectB различные хранилища, не так ли? – bahrep

+0

* Это не работает, что мне здесь не хватает? * - Что именно не работает? Вы получаете какие-либо ошибки? – bahrep

+0

@bahrep Да ProjectA и ProjectB различны. Вышеприведенный код также сохранит «SubFolder_Y» в качестве родителя Project_X, который я не хочу. –

ответ

0

Прежде всего, вы должны прочитать SVNBook chapter about repository history filtering. И не делайте svnadmin load дамп в реальный репозиторий, прежде чем тестировать его с помощью некоторого тестового репо. Вы должны убедиться, что отфильтрованный дамп, который генерирует svndumpfilter, содержит все данные, которые вы ожидаете и хотите, чтобы они содержались.

Приведенный выше код будет также держать «SubFolder_Y» в качестве родителя Project_X, которые я не хочу

Это описано в главе док связаны выше. SVNBook предлагает вам вручную редактировать файлы дампа с помощью текстового редактора или перезаписывать сценарий или удалять родительский путь (SubFolder__Y в вашем случае). Сложность этой задачи зависит от количества изменений в файле дампа, его размера, путей репозитория и т. Д. Но в целом это нетривиальная и потенциально опасная задача, и я бы рекомендовал вам не вручную изменять файлы дампа.

Вместо того, чтобы переписывать родительские пути, вы можете перенести Project_X в корень нового репозитория после загрузки фильтрованного дампа.

Команда должна выглядеть следующим образом:

svn move FROM-URL TO-URL -m "ENTER LOG MESSAGE"