История изменений черепахи SVN - PullRequest
3 голосов
/ 20 апреля 2010

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

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

Ответы [ 2 ]

3 голосов
/ 20 апреля 2010

Tortise SVN действительно простой способ получить доступ к хранилищу Subversion. Чтобы процитировать Subversion FAQ о том, как удалить файл навсегда:

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

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

Между тем, ваш единственный выход на свадмин дамп вашего хранилища, затем передать свалку svndumpfilter (исключая неверный путь) в команду svnadmin load . Увидеть глава 5 [ed: измененная ссылка] книги Subversion для подробности об этом.

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

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

1 голос
/ 20 апреля 2010

http://svn.haxx.se/users/archive-2005-05/1040.shtml

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

С http://subversion.apache.org/faq.html#removal

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...