Перемещение каталогов с историей

У меня есть такая структура SVN:

/Projects
    /Project1
    /Project2
/someFolder
    /Project3
    /Project4

Я хотел бы переместить все проекты в папку / Projects, что означает, что я хочу переместить проекты 3 и 4 из / someFolder в папку / projects.

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

Subversion 1.5, если это важно.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
65
0
64 218
9
Перейти к ответу Данный вопрос помечен как решенный

Ответы 9

Перемещение каталогов в Subversion не уничтожает историю, AFAIK.

Вы можете использовать команду svn copy. Он хранит вашу историю. Вам просто нужно отменить выбор опции «Остановить при копировании / переименовании» при отображении журнала (пример для черепахи).

Взгляните поближе на Subversion-Book svn копия

Насколько мне известно, только Bazaar позволяет вести историю каталогов, особенно когда речь идет о перемещении каталогов. SVN позволяет сохранять историю при перемещении файлов, но не каталогов.

Каталоги треков SVN и Bazaar. Mercurial, Git и CVS этого не делают.

Joshua 20.09.2008 20:07

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 сохранит вашу историю.

Также намного быстрее, если это делается непосредственно в репо и обновлять рабочие копии после, его медленное перемещение на рабочей копии

Sam 23.06.2015 16:19
Ответ принят как подходящий

svn help rename

Перемещение / переименование в Subversion сохраняет историю нетронутой.

Для этого вам придется использовать специальные функции svn для перемещения / переименования (например, проверьте справку TortoiseSVN, если вы это используете). Если вы переместите файлы самостоятельно, а затем зафиксируете изменения, я не уверен, что история будет сохранена.

Перетащите его с помощью обозревателя репо и повторно привяжите локальную папку к серверу SVN.

Если вы переместите Project 3 в папку проекта с помощью команды svn move, история будет сохранена для папки Project 3, но, что интересно, в папке Projects не будет отображаться история Project 3, которая была создана до того, как Project 3 был перемещен в Projects.

Я нахожу это запутанным, я думал, что папка покажет всю историю под собой в иерархии, но похоже, что это не так (просто проверил это сам)

Tortoise SVN поддерживает перемещение «Правым щелчком» в репо-браузере. Когда вы перетаскиваете исходный файл / каталог в место назначения с помощью «щелчка правой кнопкой мыши», появляется контекстное меню. Вы можете выбрать соответствующий пункт меню для копирования / перемещения / перемещения-переименования и т. д. Этот параметр также сохранит историю.

Примечание. В Tortoise SVN есть приятная функция под названием «Восстановить перемещение» - с помощью этой функции вы можете переименовывать файл / каталог при его перемещении. (Подробнее см. Документация)

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

LWChris 22.08.2016 11:49

Я лично использую Total Commander, и там я пропускаю движение правой кнопкой мыши.

Géza 28.09.2016 14:16

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