Можно ли стереть файл из хранилища SVN? - PullRequest
7 голосов
/ 15 декабря 2009

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

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

Например, проприетарный код может непреднамеренно попасть в публичный svn-репозиторий проекта с открытым исходным кодом. Есть ли какой-либо поддерживаемый способ удаления его из хранилища, чтобы его нельзя было извлечь, даже если посмотреть назад на прошлые ревизии?

1 Ответ

16 голосов
/ 15 декабря 2009

http://subversion.tigris.org/faq.html#removal

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

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

Между тем, единственным выходом для вас является svnadmin сделать дамп хранилища, а затем передать файл дампа через svndumpfilter (исключая неверный путь) в команду загрузки svnadmin. Подробнее об этом см. Главу 5 книги Subversion.

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