Использование VisualSVN и TortoiseSVN здесь.
Я переименовал свой файл. Я заметил, что добавляет и удаляет, что для меня означает, что история может быть стерта?
Каков наилучший способ переименовать файл без потери истории в Subversion?
Использование VisualSVN и TortoiseSVN здесь.
Я переименовал свой файл. Я заметил, что добавляет и удаляет, что для меня означает, что история может быть стерта?
Каков наилучший способ переименовать файл без потери истории в Subversion?
Щелкните правой кнопкой мыши на файле > TortoiseSVN > Переименовать.
История не будет удалена, но вы потеряете историю трассировки, так как это будут два несвязанных файла.
Если вы хотите сделать простое переименование файла или папки на месте, используйте контекстное меню → Переименовать... Введите новое имя для элемента, и все готово.
Восстановление имен файлов
Иногда ваша дружественная среда IDE будет переименовывать файлы для вас как часть упражнения по рефакторингу, и, конечно же, она не сообщает Subversion. Если вы попытаетесь зафиксировать свои изменения, Subversion увидит старое имя файла как отсутствующее, а новое - как файл без вершин. Вы можете просто проверить новое имя файла, чтобы оно было добавлено, но вы потеряете трассировку истории, поскольку Subversion не знает, что файлы связаны.
Лучший способ - сообщить Subversion, что это изменение на самом деле является переименованием, и вы можете сделать это в диалогах Commit и Check for Modifications. Просто выберите как старое имя (отсутствует), так и новое имя (неверсифицированное) и используйте контекстное меню → "Восстановить", чтобы соединить два файла в качестве переименования.
Многие другие случаи рассматриваются.
Обновление
История потеряна, когда Subversion не знает ее переименования, например:
Чтобы сохранить историю файлов, вам нужно использовать опцию Переименовать из контекстного меню (или из командной строки). IF, вы уже переименовали файл, а затем:
Итак, чтобы возобновить, в диалоговом окне фиксации добавлено (+) означает, что история будет сохранена, а добавлено означает потерю истории. В обоих случаях старое имя файла будет отображаться как удалено.
Обновление 2
Когда я говорю, что история потеряна, пожалуйста, поймите, что предыдущая информация все еще существует, но она не будет присутствовать в журнале текущего имени файла, и вы должны вручную ее отслеживать (что не совсем приятно делать).
История не удаляется, переименовывая из контекстного меню TortoiseSVN. Если вы хотите увидеть изменения до переименования, убедитесь, что вы не используете флаг -stop-on-copy при просмотре журнала изменений:
svn log -v -r 0:N --limit 100 [--stop-on-copy] PATH
or
svn log -v -r M:N [--stop-on-copy] PATH
см. здесь для справки: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-cli-main.html
История файлов не будет удалена. Предыдущие коммиты не будут затронуты. Тем не менее, вы можете использовать svn move
для правильного перемещения файла.
Для операций с файлами, таких как перемещение и переименование, я обычно предпочитаю использовать TortoiseSVN Repo Browser, а затем локальное обновление SVN. Конечно, это необходимо, только если вы хотите, чтобы ваша операция была немедленно передана в хранилище.
Удаление и добавление с историей - это ожидаемая вещь, возникающая при переименовании файла в Subversion. История не потеряна.
VisualSvn и AnkhSvn фиксируют события Visual Studio, которые переименовывают файл, и делают правильные действия.