Подтвердить что ты не робот

Есть ли чистый способ перемещения/в/сундук?

Я допустил ошибку при создании репозитория Subversion без обычных каталогов trunk, branches и tags. То есть корневой каталог проекта сопоставляется с корневым каталогом репозитория. Теперь я хочу создать ветвь функции, но там нет хорошего места. То, что я хотел бы сделать, - переместить / в /trunk, сохранив его свойства и историю. Мне повезло?

4b9b3361

Ответ 1

Чистый способ сделать это - использовать svnadmin, чтобы выгрузить весь репозиторий, используя

svnadmin dump

Затем создайте новый репозиторий с каталогом соединительных линий в корневом каталоге и перезагрузите дамп с помощью

svnadmin load --parent-dir trunk

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

Ответ 2

Использовал оттуда ответ, который работал нормально, но хотел добавить команды, включая параметры, т.е. как выполненные в командной строке svn server:

  • Dump ваш существующий репозиторий в файл:

    svnadmin dump /path/to/myrepo/ > /some/dir/myproject.svndump
    
  • Create новый репозиторий:

    svnadmin create /path/to/mynewrepo/
    
  • Add папка trunk/ и commit, в каталоге рабочей копии:

    mkdir trunk; svn add trunk; svn commit trunk -m "Add: trunk folder"
    
  • Load dumpfile в новый репозиторий с помощью trunk как parent-dir

    svnadmin load --parent-dir trunk /path/to/mynewrepo/ < /some/dir/myproject.svndump
    

Ответ 3

Вам нужно создать /trunk и выполнить svn-перемещение всего содержимого корня внутри соединительной линии и затем зафиксировать.

После этого вы будете switch вашей рабочей копии на /trunk.

Ответ 4

Самый простой способ - создать каталог "trunk", а затем переместить в него все остальное. Вам придется копировать любые свойства вручную, но это не должно быть большой проблемой. История - это файл, поэтому он должен оставаться.

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

Ответ 5

Не могли бы вы создать резидентный порт и переместить все из/в магистраль?

Ответ 6

Как следует из других ответов, это сделает svn mv в каталоге trunk. Чтобы обновить рабочую копию, ознакомьтесь с командой svn switch.

Ответ 7

Нет, просто создайте папку trunk и переместите все содержимое этого корня в нее. Вы можете сделать это из проводника или через репо-браузер, история сохранится.

Ответ 8

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

http://dotslashstar.blogspot.com/2011/06/svn-hack-insert-missing-trunk-root.html

Ответ 9

Быстрый пример того, как я это сделал.

Я хотел переместить file:///svn/myRepo в file:///svn/myRepo/trunk

cd /  
svnadmin dump /svn/myRepo > my.dump  
killall svnserve  
sudo rm -r -f /svn/myRepo  
svnadmin create /svn/myRepo  
svnserve -d -r /svn  
svn mkdir file:///svn/myRepo/trunk -m "Created trunk dir"  
svnadmin load /svn/myRepo --parent-dir trunk < my.dump