2010-04-20 2 views
3

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

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

+2

Этот вопрос скорее о Subversion, чем TortoiseSVN (который является просто интерфейсом для Subversion). Перемещение только на 'svn'. –

ответ

1

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

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

От http://subversion.apache.org/faq.html#removal

+0

Он говорит, что мы can not удаляем файл постоянно. Есть ли другой путь? – rahul

+0

Это сложно сделать. – Svisstack

+0

Есть ли простой способ? Я не понимаю, что он говорит о трубе, дампе ... и т. Д. – rahul

3

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

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

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

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

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

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

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