SVN не игнорирует файлы
Я хочу, чтобы репозиторий полностью игнорировал некоторые определенные файлы - эквивалент добавления этих файлов в.gitignore в системе git. Я старался:
svn propset svn:ignore *.aux" .
игнорировать все .aux
файлы. Однако после этого и удачного svn commit
, svn status
еще показывает:
? something.aux
! somethingelse.aux
Есть ли еще более надежный способ заставить его игнорировать эти файлы, чтобы они не отображались в таких списках?
1 ответ
На самом деле это общий вопрос, и я настоятельно рекомендую вам рассмотреть главу SVNBook "Игнорирование неверсионных элементов", которая охватывает его.
Смотрите важный отрывок из SVNBook, который объясняет поведение:
Поддержка Subversion игнорируемых шаблонов файлов распространяется только на одноразовый процесс добавления неверсионных файлов и каталогов в систему управления версиями. Когда объект находится под контролем Subversion, механизмы шаблонов игнорирования больше не применяются к нему. Другими словами, не ожидайте, что Subversion избежит внесения изменений, внесенных в версионный файл, просто потому, что имя этого файла соответствует шаблону игнорирования - Subversion всегда замечает все версионные объекты.
Согласно svn status
на выходе ваша рабочая копия содержит один неверсионный элемент (элемент со знаком "?") и один отсутствующий элемент (элемент со знаком "!").
? something.aux
! somethingelse.aux
Таким образом, вы вручную удалили (т.е. через Windows Explorer, но не через клиент SVN) somethingelse.aux
и теперь он имеет статус "отсутствует". Другой файл something.aux
по-прежнему не версионен и не игнорируется.
Если вы не опечатка svn propset
Команда, зафиксировавшая изменение свойства и файл по-прежнему имеет неверсионный статус, вы можете найти этот отрывок полезным:
шаблоны, найденные в свойстве svn: ignore, применяются только к каталогу, для которого установлено это свойство, а не к любому из его подкаталогов.
Дополнительно вы можете проверить svn:ignore
собственности путем выдачи svn propget
команда.