SVN фиксируют перемещение папки, сделанное неправильно

Кто-то на моей работе переместил папку в другое местоположение. Но он не сделал надлежащего перемещения SVN, он просто добавил их как новые файлы и удалил старые файлы. Это, конечно, означало, что история объектов является неправильной. Я отсутствовал, в то время и несколько редактирований произошли на файлах с тех пор, таким образом возвращаясь, изменения и восстановление операции сам отсутствуют.

Существует ли способ, которым я могу согласовать это так, SVN узнает их полную историю?

P.S. Я использую tortoiseSVN.

11
задан Chris McGrath 28 February 2010 в 22:41
поделиться

3 ответа

Невозможно редактировать содержимое истории репозитория Subversion. Вы должны либо:

  1. перестроить репозиторий, начиная с ревизии до ошибки, зафиксировав правильный ход, а затем зафиксировать ревизии, сделанные после этого. Это требует, чтобы каждый получил новые рабочие копии или перемотал их ( svn update -rN ) до редакций, которые будут заменены.
  2. Удалите перемещенную папку, воссоздайте ее как копию старой папки ( svn copy @ ), затем используйте svn merge , чтобы повторно применить изменения с тех пор к новой копии папки старого местоположения.
7
ответ дан 3 December 2019 в 10:03
поделиться

Из справки TortoiseSVN http://tortoisesvn.net/repairmoves.html

Перемещение и переименование файлов с версией внутри рабочей копии всегда должно выполняться с помощью соответствующих команд Subversion / TortoiseSVN. перемещение / переименование без них (например, с проводником Windows) приводит к проблемам, поскольку Subversion не знает , что вы переместили / переименовали файлы.

Например, если вы переименуете файл с именем myfile.txt в myfile2.txt без использования команды Subversion / TortoiseSVN, myfile.txt будет отображаться как "отсутствует" , а myfile2.txt - как "без версии" в диалоговое окно фиксации или диалоговое окно Проверка изменений.

Если это произойдет с вами, TortoiseSVN предлагает вам простой способ исправить это.

Насколько я знаю, это единственный способ исправить move, хотя насчет move_and_then_added не уверен.

1
ответ дан 3 December 2019 в 10:03
поделиться

Это из TortoiseSVN FAQ :

Если вы уже зафиксировали удаленный файл , то вы можно использовать браузер репозитория , перейти к версии , в которой файл все еще существовал , а затем использовать команду "Копировать в ... из контекстного меню. Введите путь к вашей рабочей копии в качестве целевого, и удаленный файл будет скопирован из репозитория в вашу рабочую копию.

Вы также можете восстановить удаленный каталог, используя эту технику.

Конечно, вы должны сначала удалить (или переименовать) папку, добавленную вашим коллегой.

2
ответ дан 3 December 2019 в 10:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: