Вопрос
Я использую TortoiseSVN для репозитория SourceForge SVN.Я хотел бы переместить файл из одной папки в другую, чтобы сохранить историю его изменений.Это возможно?Если так, то как ты это делаешь?
(Моя текущая стратегия заключалась в том, чтобы скопировать файл в новую папку, вернуть его, а затем удалить файл из текущей папки.)
Решение
Subversion имеет встроенную поддержку перемещения файлов.
svn move SOURCE DESTINATION
Дополнительную информацию смотрите в онлайн-справке (svn help move).
Другие советы
Посмотреть раздел 5.14.2.Перемещение файлов и папок (или проверьте «переместить» в указателе справки) справки TortoiseSVN.Вы делаете движение, перетаскивая вправо.В нем также упоминается, что вам необходимо выполнить фиксацию из родительской папки, чтобы сделать ее «одной» ревизией.Это работает для внесения изменений в рабочую копию.
(Обратите внимание, что элементы SVN на следующем изображении будут отображаться только в том случае, если папка назначения уже добавлена в репозиторий.)
Вы также можете выполнить перемещение через браузер репо (раздел 5.23.Браузер репозитория о помощи).
С TortoiseSVN я просто перемещаю файл на диск.
Когда я прихожу к фиксации своих изменений, я выбираю отсутствующий файл и новый и выбираю "Ремонтный переезд" из контекстного меню:
Это означает, что я могу позволить своей IDE перемещать файлы и использовать инструменты рефакторинга без потери истории.
В TortoiseSVN щелкните правой кнопкой мыши где-нибудь и выберите TortoiseSVN > Браузер репозитория, чтобы открыть репозиторий.
Все, что вам нужно сделать, это перетащить файл из одной папки в нужное место.Он попросит вас добавить сообщение о фиксации и по умолчанию установит его как «Файл/папка перемещена удаленно».
Используя TortoiseSVN, я просто щелкаю правой кнопкой мыши и перетаскиваю папку из одного места в другое.Когда вы отпустите правой кнопкой мыши, у вас будет возможность «File версии SVN перемещения». Тем не менее, я считаю, что SVN не делает ничего «причудливого», а просто удаляет файл в предыдущем месте и добавляет его в новое место.
Для клиента TortoiseSVN:
- Выберите файлы, которые хотите переместить,
- Верно щелкните и перетащите файлы в папку, в которую вы хотите их переместить,
- После того, как вы отпустите перетаскивание папки, появится всплывающее окно.Нажмите «SVN Переместите сюда элементы с версиями»,
- После того, как вы нажмете выше, появится окно сообщения о фиксации.Введите сообщение и отправьте.
Теперь все готово.
Вырежьте файл через контекстное меню операционной системы, как обычно, затем вместо обычной вставки щелкните правой кнопкой мыши, чтобы открыть контекстное меню, затем выберите TortoiseSVN -> Paste
(убедитесь, что вы делаете коммит от root, чтобы включить в коммит как старые, так и новые файлы).
Я думаю, что в браузере SVN в черепахах его можно просто перетащить из одного места в другое.
Поскольку вы используете Tortoise, возможно, вы захотите перейти по этой ссылке на LosTechies.Это должно быть почти именно то, что вы ищете.
Черепаха также может называться «переименовать», но svn move — это команда в базовом клиенте svn.
Если я не ошибаюсь, начиная с версии 1.5 SVN может отслеживать перемещенные файлы\папки.В TortoiseSVN можно перемещать файлы с помощью перетаскивания.
Если вы перемещаете папки через браузер репозитория, опция «Переместить» при щелчке правой кнопкой мыши отсутствует;единственный способ - перетащить.