Ответ 1
svn help rename
Перемещение/переименование в subversion сохраняет историю неповрежденной.
У меня есть структура SVN, как это:
/Projects
/Project1
/Project2
/someFolder
/Project3
/Project4
Я хотел бы переместить все проекты в папку /Projects, что означает, что я хочу переместить проекты 3 и 4 из /someFolder в папку /projects.
Предостережение: Я бы хотел сохранить полную историю. Я предполагаю, что каждый клиент должен будет снова проверить материал из нового места, что хорошо, но я все еще удивляюсь, что самый простой способ - переместить каталоги без полного уничтожения истории?
Subversion 1.5, если это имеет значение.
svn help rename
Перемещение/переименование в subversion сохраняет историю неповрежденной.
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 сохранит вашу историю.
Tortoise SVN поддерживает движение "Правый клик". Когда вы перетаскиваете исходный файл/каталог в пункт назначения, используя "щелчок правой кнопкой мыши", появится контекстное меню. Вы можете выбрать соответствующий пункт меню для копирования/перемещения/перемещения-переименования и т.д. Этот параметр также сохранит историю.
Примечание. В Tortoise SVN есть хорошая фраза под названием "Восстановить движение" - с помощью этой функции вы можете переименовать файл/каталог при его перемещении. (Подробнее см. Документация)
Вы можете использовать команду svn copy. Он хранит вашу историю. Вам просто нужно отменить выбор "Остановить копирование/переименование", показывая журнал (пример для черепахи).
Присмотритесь к книге Subversion-Book svn copy
Если вы переместите Project 3 в папку проекта с помощью команды svn move, история будет сохранена для папки Project 3, но интересно, что папка Projects не отображает историю проекта 3, которая была создана до того, как Project 3 был перенесен в проекты,
Я нахожу это запутанным, я думал, что папка будет отображать всю историю ниже себя в иерархии, но похоже, что это не так (просто проверив это сам)
Перетащите его с помощью репо-браузера и переустановите свою локальную папку на свой SVN-сервер.
Перемещение каталогов в Subversion не разрушает историю, AFAIK.
Чтобы сделать это, вам нужно будет использовать специальные функции перемещения/переименования svn (если вы используете это, например, обратитесь к справке TortoiseSVN). Если вы переместите файлы самостоятельно, а затем зафиксируйте изменения, я не уверен, что история будет сохранена.
Насколько я знаю, только Bazaar позволяет хранить историю в каталогах, особенно когда речь идет о перемещении каталогов. SVN позволяет сохранять историю при перемещении файлов, но не каталогов.