Вопрос

У меня есть старый, но очень важный репозиторий Subversion, для которого я с самого начала не создал обычную структуру:ствол, ветки, метки.Итак, все мои файлы этого репозитория находятся в корне.

Я знаю, как создавать новые папки и перемещать все файлы в багажник, но если я это сделаю, я потеряю историю своего проекта на 3 года, поскольку «транк» — это новая папка.Итак, есть ли решение переместить всю историю моего проекта из корня в папку багажника?

Спасибо!

Это было полезно?

Решение

Да.Вы можете использовать дамп svnadmin, который сохранит репозиторий вместе с историей в файл.Затем вы можете использовать загрузку svnadmin для загрузки файла дампа в папку магистрали.Как только это будет сделано, удалите файлы из корня.

svnadmin dump REPOS_PATH [-r LOWER[:UPPER]] [--incremental]
svnadmin load REPOS_PATH

Дамп документа: http://svnbook.red-bean.com/en/1.1/re31.htmlЗагрузить документ: http://svnbook.red-bean.com/en/1.0/re36.html

Другие советы

Вы можете использовать

svn copy http://my.server/svn/repos/ http://my.server/svn/repos/trunk/ \
     -m "Copied"

Чтобы создать копию из корня вашего репозитория (^/) в багажник/ (^/trunk), сохраняя всю вашу историю, включая историю корневого каталога.

После этого вы можете удалить файлы и подкаталоги в старом месте в следующем коммите.

Вы не потеряете историю, если будете использовать файлы svn mv.История будет сохранена.Таким образом, вы можете использовать магистраль svnadmin load -parent-dir, чтобы переделать ваш репозиторий, но вам нужно будет выполнить все новые проверки, поскольку в новом репозитории у вас должен быть новый UUID.

svn co http://example.com/repos/
cd repos
svn mkdir trunk tags branches
svn mv a trunk/a
svn mv b trunk/b
svn ci -m 'Moving project into trunk'

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

По общему признанию, было бы неприятно помнить, что до даты X вам нужно искать в старом репозитории, а не в новом, если вам нужно знать историю элемента.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top