Ответ 1
Если вы хотите использовать TortoiseSVN, вы можете просто переместить папку в браузере репозитория. Вот как я обычно перемещаю папки, очень простые и безболезненные.
Мне нужно переместить папку svn на один уровень вверх и сохранить всю историю
Все файлы и каталоги из https://myserver.com/svn/Project/trunk/
в https://myserver/svn/Project/
Я использую команду:
svn move https://myserver.com/svn/Project/trunk/ https://myserver/svn/Project/
но он говорит:
svn: невозможно переместить путь https://myserver.com/svn/Project/trunk/ ' в себя
Кто знает, как я могу решить эту проблему? Спасибо!
Если вы хотите использовать TortoiseSVN, вы можете просто переместить папку в браузере репозитория. Вот как я обычно перемещаю папки, очень простые и безболезненные.
Я просто искал это. Затем я начал искать решение, и я действительно не нашел его, кроме того, что он заставлял меня думать о решении.
Вы ожидаете, что команда svn mv ./folder ./
переместит все с ./folder
на ./
. На самом деле это не так, оно перемещает folder
в текущий каталог. Так как это уже есть, команда не работает.
Итак, решением было бы переместить все внутри ./folder
на ./
. В самом деле, следующая команда делает именно это:
svn mv ./folder/* ./
Я не знаю, можете ли вы переместить его таким образом, лично я бы проверил репозиторий, переместил папку в файловую систему, а затем зафиксировал изменения, удалив ее в одном месте и добавив в другой.
Попробуйте:
svn switch --relocate https://myserver.com/svn/Project/trunk/ https://myserver/svn/Project/
Протестируйте это в отдельном репозитории, прежде чем запускать его на своем реальном!
Сегодня у меня возникла аналогичная проблема, но я не знал, как переместить ее из черепахи, так как у меня также были настройки для этой папки.
Если новое местоположение https://myserver/svn/Project/
должно содержать только элементы из вашего старого местоположения, вот что я сделал:
Перемещено https://myserver.com/svn/Project/trunk/
в новое временное местоположение (например, https://myserver/svn/TempProject/
);
Удалено существующее место, которое вы хотите использовать (https://myserver/svn/Project/
);
Переименовано https://myserver/svn/TempProject/
в https://myserver/svn/Project/
.
Это сработало для меня. Он сохранил всю историю, настройки svn и т.д. История только что получила пару новых записей из всех движущихся вещей.
Я не верю, что вы можете перейти непосредственно к существующему каталогу (особенно к корню репозитория). Может быть, вариант --force
может помочь.
Если вы можете проверить весь репо, вы можете переместить все каталоги с магистрали на верхний уровень, это похоже на более надежное решение
svn mv * ..
*
не поддерживается некоторыми клиентами svn