Здесь предполагается, что каталог проекта SVN — /data/svn/project, и мы хотим исключить файл Trunk/test.exe и каталог Trunk/notallowed/. Шаги следующие, и выполняется команда svn (. в каталоге bin каталога установки svn) выглядит следующим образом:
# Сначала экспортируем всю библиотеку svn
дамп svnadmin /data/svn/project > project_original.dump
# Затем исключите ненужные файлы из файла project_original.dump и создайте новый файл дампа
введите project_original.dump | svndumpfilter исключить транк/test.exe транк/notallowed > project_new.dump
# Затем создайте новый проект svn и импортируйте указанный выше файл дампа в новый проект.
svnadmin создать /data/svn/project_new
svnadmin load /data/svn/project_new < project_new.dump
Наконец, удалите исходный каталог проекта и замените project_new на project. Следует отметить, что команда dump экспортирует все изменения и записи истории в проекте svn, поэтому экспортируемый файл дампа будет большим, а время импорта будет относительно продолжительным.
Полностью удалите некоторые папки или файлы в репозитории SVN со стороны сервера.
Если вы хотите полностью удалить папку или файл в репозитории SVN, вы можете использовать этот метод (например):
Пример. Предположим, что путь к библиотеке SVN — E:/svn/project, а структура каталогов в библиотеке —
Контроль качества/магистраль
Программное обеспечение/Теги/test.exe
Удалите файл test.exe из каталога Software/Tags/.
Шаги:
Создайте дамп библиотеки SVN и используйте svndumpfilter, чтобы отфильтровать удаляемые файлы. Создайте новую библиотеку SVN и загрузите обработанные файлы в новую библиотеку SVN. Конкретная команда:
> дамп svnadmin E:/svn/project > aaa.dump
> введите aaa.dump | svndumpfilter исключите /Software/Tags/test.exe > bbb.dump
>svnadmin создать E:/svn/project_new
>svnadmin загрузить E:/svn/project_new < bbb.dump
Затем переименуйте новый проект_new в проект. Предыдущий проект можно переместить или дать ему другое имя (поскольку каталог SVN, используемый в TRAC, является проектом, каталог SVN, используемый пользователями, также является проектом).
Этот метод позволяет добиться эффекта полного удаления определенной папки или файла в репозитории SVN, когда в репозитории SVN не так много версий. Однако, если в репозитории SVN слишком много версий, при дампе будет недостаточно места для хранения. версию. Версию невозможно сбросить. Он становится неработоспособным. В это время должен быть установлен другой жесткий диск, который сможет удовлетворить его пространство для хранения.
Как восстановить удаленные файлы или папки с помощью SVN
Использование TortoiseSVN:
1. В локальной рабочей копии используйте TortoiseSVN->Показать журнал, чтобы просмотреть историю репозитория. Вы можете воспользоваться поиском.
2. Найдите версию, в которой файл или папка были удалены, и щелкните правой кнопкой мыши «Отменить изменения из этой версии» в сообщении журнала.
3. Файл или папка восстанавливаются в локальную рабочую копию. Если он был удален по ошибке, просто зафиксируйте его в репозитории.
Использование плагина Subclipse для Eclipse:
1. Используйте Команда->Показать историю репозитория SVN, чтобы просмотреть историю репозитория.
2. Найдите версию, в которой файл или папка были удалены, щелкните правой кнопкой мыши «Вернуться к версии XX».
3. Файл или папка восстанавливаются в локальную рабочую копию. Если он был удален по ошибке, просто зафиксируйте его в репозитории.