2009-12-01 3 views
3

Мне было интересно, если я щелкнул правой кнопкой мыши по файлу в браузере SVN-репо, он удаляется навсегда? может ли он быть восстановлен?Tortoise SVN Repo-Browser

ответ

4

This question/answer из SVN FAQ может заинтересовать:

Как полностью удалить файл из истории репозитория?

Есть особые случаи, когда вы, , можете уничтожить все доказательства файла или фиксации. (Возможно, кто-то случайно сделал конфиденциальный документ .) Это не так просто, потому что Subversion намеренно сконструирован так, чтобы никогда не терял информацию. Пересмотрены неизменяемые деревья, которые строятся на одном другой. Удаление ревизии с история вызовет эффект домино, , создающий хаос во всех последующих версиях и, возможно, аннулирование всех рабочих копий.

Проект имеет планы, однако, когда-нибудь реализующие svnadmin obliterate команду, которая будет выполнить задачу постоянно удаления информации. (См выпуска 516.)

В том же время, единственный выход будет в svnadmin dump ваше хранилище, то трубы DumpFile через svndumpfilter (за исключением плохого пути) в svnadmin load команду.

Если это так трудно, есть мало шансов, что можно легко сделать из Tortoise SVN ...
(И это не цель управления версиями ...)

0

Не щелкните правой кнопкой мыши, просто поднимите какое-то меню? И SVN - это то, что вы всегда можете вернуться в любом случае.

+0

Да, но я говорю о том, что в браузере репозитория его нет, а не в контекстном меню файловой системы – Grant

1

Нет ... Удаление файла (даже с использованием браузера репо) влияет только на рабочие копии. Это была бы довольно парадоксальная система контроля версий, если бы вы не смогли восстановить файл из прошлого. На самом деле довольно сложно модифицировать файлы в исправленной версии, даже если у вас есть root-доступ к серверу.

2

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

4

Вы обнаружите, что вы можете удалить только из браузера Repo при просмотре ревизии HEAD. Это идентично удалению файла из вашей рабочей копии, а затем проверка удаления. В обоих случаях вы сможете восстановить предыдущую ревизию.

0

Я удалил каталог верхнего уровня из Repo браузера случайно, и единственный способ получить его обратно было следующее:

  • Экспорт папку верхнего уровня из предыдущей истории версий
  • Сделать новая папка в репозитории для замены удаленной.
  • Добавить экспортированные файлы обратно в новый каталог (то же имя, что и ранее)
  • Обновление рабочей копии, она удалит и затем повторно добавит те же файлы.

Его раздражающий, но по крайней мере рабочий и репо будут синхронизированы. «Отменить изменения из этого пересмотра» не работало для отмены удаления репо, оно только возвращается в рабочий каталог, а не «Отменить» удаление в репозиторий.

Смежные вопросы