У меня есть такая структура SVN:
/Projects
/Project1
/Project2
/someFolder
/Project3
/Project4
Я хотел бы переместить все проекты в папку / Projects, что означает, что я хочу переместить проекты 3 и 4 из / someFolder в папку / projects.
Предостережение: я хотел бы сохранить полную историю. Я предполагаю, что каждому клиенту придется снова проверять материал из нового места, и это нормально, но мне все еще интересно, какой самый простой подход - переместить каталоги без полного уничтожения истории?
Subversion 1.5, если это важно.





Перемещение каталогов в Subversion не уничтожает историю, AFAIK.
Вы можете использовать команду svn copy. Он хранит вашу историю. Вам просто нужно отменить выбор опции «Остановить при копировании / переименовании» при отображении журнала (пример для черепахи).
Взгляните поближе на Subversion-Book svn копия
Насколько мне известно, только Bazaar позволяет вести историю каталогов, особенно когда речь идет о перемещении каталогов. SVN позволяет сохранять историю при перемещении файлов, но не каталогов.
svn move SRC DST
$ svn move -m "Move a file" http://svn.red-bean.com/repos/foo.c http://svn.red-bean.com/repos/bar.c
svn move сохранит вашу историю.
Также намного быстрее, если это делается непосредственно в репо и обновлять рабочие копии после, его медленное перемещение на рабочей копии
svn help rename
Перемещение / переименование в Subversion сохраняет историю нетронутой.
Для этого вам придется использовать специальные функции svn для перемещения / переименования (например, проверьте справку TortoiseSVN, если вы это используете). Если вы переместите файлы самостоятельно, а затем зафиксируете изменения, я не уверен, что история будет сохранена.
Перетащите его с помощью обозревателя репо и повторно привяжите локальную папку к серверу SVN.
Если вы переместите Project 3 в папку проекта с помощью команды svn move, история будет сохранена для папки Project 3, но, что интересно, в папке Projects не будет отображаться история Project 3, которая была создана до того, как Project 3 был перемещен в Projects.
Я нахожу это запутанным, я думал, что папка покажет всю историю под собой в иерархии, но похоже, что это не так (просто проверил это сам)
Tortoise SVN поддерживает перемещение «Правым щелчком» в репо-браузере. Когда вы перетаскиваете исходный файл / каталог в место назначения с помощью «щелчка правой кнопкой мыши», появляется контекстное меню. Вы можете выбрать соответствующий пункт меню для копирования / перемещения / перемещения-переименования и т. д. Этот параметр также сохранит историю.
Примечание. В Tortoise SVN есть приятная функция под названием «Восстановить перемещение» - с помощью этой функции вы можете переименовывать файл / каталог при его перемещении. (Подробнее см. Документация)
Интересно, почему этот ответ не получил больше голосов. Это намного проще, чем возиться с командной строкой или браузером репозитория для небольших перемещений.
Я лично использую Total Commander, и там я пропускаю движение правой кнопкой мыши.
Каталоги треков SVN и Bazaar. Mercurial, Git и CVS этого не делают.