Ответ 1
Существует два способа с 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' .
Отныне каталог сборки в вашем проекте будет игнорироваться подрывной деятельностью. Подробнее об этом см. Документацию http://subversion.tigris.org/ или введите команду svn help
для получения дополнительной информации.
EDIT: добавлено больше на основе комментария... dunno, как я пропустил эту часть оригинального вопроса!! Извините:)
К сожалению, удаление файлов, которые вы теперь хотите проигнорировать из репозитория, является ручным процессом, хотя, если вы точно знаете, какие файлы они есть, вы можете написать немного script, что люди, у которых эта проблема может быть запущена (в будущее, свойство svn: ignore не позволит им повторить его, и это имеет то преимущество, что его можно легко модифицировать, когда возникнет такая необходимость).
Чтобы удалить файлы, которые вы не хотите в репозитории, но сохраните локальные файлы, выполните следующие действия:
- Создайте запись глобального игнорирования или добавьте свойство svn: ignore в ваш репозиторий и зафиксируйте.
- Для каждого файла, который вы хотите удалить из репозитория, выполните следующую команду:
svn rm --keep-local filename
- Как только вы выпустили команду
svn rm
для каждого файла, скопируйте свою рабочую копию.
Поскольку это может иметь побочный эффект удаления файлов от людей, работающих в текущих копиях, если они не обновили свои файлы конфигурации, я настоятельно рекомендую использовать свойство svn: ignore в каталогах репозитория. Таким образом, когда люди обновляются, они не будут неожиданно удалять файлы, поскольку они еще не изменили свой параметр global-ignores
.