2

Я случайно зафиксировал целую кучу бинарных файлов, используя опцию TortoiseSVN "Добавить папку", когда я должен был просто использовать "Создать папку". Я не хочу эти двоичные файлы в SVN, потому что они занимают много места на моем HD и не получают никакой выгоды от управления версиями в любом случае. Тем не менее, я не уверен, как лучше вернуться к такому беспорядку, чтобы фактически освободить память, используемую для фиксации всех этих двоичных файлов. Я могу легко удалить все файлы и зафиксировать, но я не уверен, что это фактически удалит связанные с ними данные из SVN, особенно из ревизии, в которой они были добавлены.

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

1 ответ1

3

Чтобы безопасно полностью удалить ревизию из истории SVN, вам необходимо экспортировать репозиторий с удаленной ревизией, а затем восстановить его из файла дампа. Для этого выполните следующие команды в терминале или командной строке Windows:

svnadmin dump /path/to/repo -r1:66 > svn.dump
ren /path/to/repo /path/to/backup
svnadmin create /path/to/repo
svnadmin load /path/to/repo < svn.dump

(В * nix системах замените ren на mv .)

Как только вы убедитесь, что в новом хранилище все в порядке, вы можете удалить резервную копию.

Подумайте об использовании свойства svn:ignore чтобы не допустить фиксации этих файлов в хранилище в будущем. Вы можете добавить файлы в список игнорирования с помощью TortoiseSVN, щелкнув по ним правой кнопкой мыши, перейдя в TortoiseSVN и выбрав « Добавить в список игнорирования».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .