2014-09-03 3 views
1

Так вот история, у меня есть следующий SVN репо -Как Svn дамп определенной папки и загрузить его в определенное место

Fruit 
- Banana 
    - trunk 
- Mango 

Vegetables 
- Potato 
    - trunk 
- Mango 
    - trunk 

Как оказался, все это время мы были с помощью неправильное репо (Овощи) для нашего проекта Mango, и у нас есть существующая папка Mango в репозитории Fruit. Поэтому моя миссия - получить папку «Овощи \ Манго» в Fruit \ Mango. Вот моя попытка -

// I dump the vegetables repo 
svnadmin dump C:\Repos\Vegetables > Vegetables.dump 

// I then filter the dump to only include Mango/trunk 
svndumpfilter --drop-empty-revs --renumber-revs include Mango/trunk <Vegetables.dump> Mango-trunk.dump 

// Finally, I load the filtered dump file into the Fruit/Mango 
svnadmin load C:\Repos\Fruit --parent-dir Mango < Mango-trunk.dump 

В результате Фруктовая репо был следующий -

Fruit 
- Banana 
    - trunk 
- Mango 
    - Mango 
    - trunk 

Это, очевидно, гипотетический, но она отражает проблему я, имеющий в настоящее время. Я не могу понять, как перенести папку соединительной линии только без своих родительских каталогов. Я даже попытался сбросить фильтрованный дамп, основываясь на моих неправильных предположениях файловой системы, но это было бесполезно. Мне нужны подсказки для выполнения этой точной задачи, предложенные альтернативы мне не помогут, спасибо.

ответ

3

В руководстве SVN есть ссылка example, как переместить каталог верхнего уровня в свой собственный репозиторий, который вы сможете адаптировать к своей ситуации.

Основной процесс заключается в том, чтобы вручную отредактировать файл дампа, прежде чем загружать его с помощью svnadmin load. Сначала удалите ведущий Mango/ из заголовков Node-path и Node-copyfrom-path в файле дампа. Затем удалите раздел файла дампа, который создает каталог Mango. Это будет выглядеть примерно так:

Node-path: Mango 
Node-action: add 
Node-kind: dir 
Content-length: 0 

Но обратите внимание на следующее:

Предупреждение

Если вы планируете вручную редактировать файл дампа удалить каталог верхнего уровня, убедитесь, что ваш редактор не настроен на автоматическое преобразование символов конца строки в собственный формат (например, \r\n - \n), поскольку контент затем не согласуется с метаданными. Это сделает файл дампа бесполезным.

Теперь вы можете загрузить файл дампа.