Существует два способа использования subversion: один специфичен для пользователя, а другой фактически поддерживается в хранилище и поэтому влияет на всех.
Чтобы получить список глобально игнорируемых файлов (эксклюзивно для каждого пользователя / машины), вам необходимо отредактировать файл конфигурации Subversion и изменить директиву global-ignores в разделе разное, Файл конфигурации задокументирован, а синтаксис очень прост. Например:
global-ignores = *.o
В системе UNIX файл конфигурации находится по адресу ~/.subversion/config
. В системе Windows файл конфигурации находится по адресу %APPDATA%\Subversion\config
или в реестре под HKCU\Software\Tigris.org\Subversion\Config
.
После того, как вы это настроите, вы никогда не будете случайно добавлять эти файлы в свой репозиторий, и при этом эти файлы не будут отображаться как ? в ваших командах svn stat
. Если в вашем хранилище уже есть эти файлы, вероятно, не помешает оставить их там, как они есть, но изменения и модификации файлов будут игнорироваться в будущем.
Чтобы настроить это отдельно для каждого проекта (что повлияет на каждого, кто проверяет проект), вы должны добавить свойство svn: ignore в каталоги проекта, где файлы, вероятно, будут храниться. Например, чтобы исключить каталог с именем build
из верхнего уровня вашего проекта, вы должны сделать что-то вроде этого:
svn propset svn:ignore 'build' .
svn commit -m 'project ignores build directory' .
Отныне каталог сборки в вашем проекте будет игнорироваться subversion. Подробнее об этом см. Документацию по http://subversion.tigris.org/ или введите команду svn help
для получения дополнительной информации.
РЕДАКТИРОВАТЬ: Добавлено больше на основе комментариев ... не знаю, как я пропустил эту часть исходного вопроса! Извините:)
К сожалению, удаление файлов, которые вы хотите игнорировать из репозитория, выполняется вручную, хотя, если вы точно знаете, какие это файлы, вы можете написать небольшой скрипт, который могут запускать люди, имеющие эту проблему (в будущем, свойство svn: ignore избавит их от необходимости повторять его, и оно имеет преимущество, заключающееся в том, что его можно легко изменять при необходимости).
Чтобы удалить ненужные файлы из хранилища, но сохранить локальные файлы, выполните следующие действия:
- Создайте запись global-ignores или добавьте свойство svn: ignore в свой репозиторий и выполните коммит.
- Для каждого файла, который вы хотите удалить из хранилища, введите следующую команду:
svn rm --keep-local <strong>filename</strong>
- Как только вы введете команду
svn rm
для каждого файла, зафиксируйте свою рабочую копию.
Поскольку это может иметь побочный эффект от удаления файлов из текущих рабочих копий людей, если они не обновили свои файлы конфигурации, я настоятельно рекомендую использовать свойство svn: ignore в каталогах репозитория. Таким образом, когда люди обновляются, у них не будет неожиданно удаленных файлов, потому что они еще не изменили свой параметр global-ignores
.