SVN просто не будет игнорировать папку, несмотря на propset svn: ignore

Возьмите файлы папок внутри рабочей копии SVN, работающей в Linux. Папка была настроена для игнорирования с помощью команд:

  • svn propset svn:ignore * 'files'
  • svn propset svn:ignore 'default/files'
  • и несколько других комбинаций, все действующие AFAIK

Однако настройка просто не ударяет. Если доступ к репозиторию осуществляется с помощью клиента dektop (например, Cornerstone в Mac OS), папка правильно сообщается как игнорируемая.

Я сильно почесываю голову.

Спасибо.

Ответ, который прояснил это для меня, приведен в этом комментарии:
Если файлы уже находятся под управлением версиями, они никогда не будут игнорироваться.

Ответ 1

Если вы хотите игнорировать каталог files, вам нужно svn propset svn:ignore files в его каталоге PARENT, а не в самом каталоге.

например.

# your directory structure is this:
# workingCopy
# workingCopy/parent
# workingCopy/parent/subfolder
# to ignore subfolder do this:
svn propset svn:ignore subfolder workingCopy/parent

Изменить

Если в этой папке находятся файлы, находящиеся под контролем версий, Subversion НЕ будет игнорировать их, даже если папка игнорируется. Вам нужно будет удалить их из управления версиями (т.е. svn delete), а затем они будут проигнорированы.

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

Ответ 2

Так близко.

Я думаю, вы хотели

svn propset svn: игнорировать файлы.

если вы выполните это в родительском каталоге каталога файлов, он будет проигнорирован. Тем не менее, эффект не проявится до тех пор, пока не будет зафиксирован родитель. И я уверен, что вы не можете игнорировать каталог, содержащий файлы версий.

Наконец, я всегда использую propedit, а не propset, поэтому я не теряю никаких текущих настроек.

Ответ 3

Как вы его тестируете? Если вы

svn commit files

Тогда игнорирование не проверяется. Если вы svn совершите., То автоматическое поведение Subversion проигнорирует его. (Это тоже смутило меня. Subversion предполагает, что вы умнее svn: ignore.)