В большинстве проектов у вас будут файлы и папки, которые не надо вносить под управление версиями. Это могут быть включаемые файлы, создаваемые компилятором, *.obj, *.lst
, возможно, папки, в которых сохраняются создаваемые выполняемые файлы. Всякий раз, когда вы фиксируете изменения, TortoiseSVN показывает вам неверсированные файлы, заполняющие до отказа список файлов в диалоге фиксации. Конечно, вы можете вообще их не отображать, но тогда вы можете забыть добавить новый файл.
Лучший способ избежать этой проблемы - добавить воспроизводимые файлы в список игнорирования проекта. Таким образом они никогда не будут отображаться в диалоге фиксации, но настоящие неверсированные файлы будут всё-таки замечены.
Если вы щёлкнете правой клавишей мыши на одиночном неверсированном файле, и выберите из контекстного меню команду → , появится подменю, позволяющее вам выбрать, добавить ли в список только этот файл, или же добавить все файлы с таким же расширением. Оба подменю также имеют эквиваленты (рекурсивно)
. Если вы выберете несколько файлов, подменю не появится, и вы сможете добавить только эти конкретные файлы/папки.
Если вы выберете в контекстном меню игнорирования вариант (рекурсивно)
, то элемент будет проигнорирован не только в выбранной папке, но также и во всех подпапках. Для этого требуется клиент SVN версии 1.8 или выше.
Если вы желаете удалить один или несколько элементов из списка игнорирования, выполните правый щелчок на этих элементах и выберите → Вы также можете обратиться к свойству папки svn:ignore
напрямую. Это позволит вам указать более общие шаблоны, используя универсализацию имён файлов, описываемую далее. Более подробную информацию об установке свойств содержит «Установки проекта». Обратите внимание: каждый шаблон игнорирования должен быть в отдельной строке, разделение их пробелами не работает.
Другой путь игнорирования файлов - добавить их в глобальный список игнорирования. В этом случае самое большое отличие в том, что глобальный список игнорирования - это клиентское свойство. Оно применяется ко всем проектам Subversion, но только на этом клиентском компьютере. В общем случае, лучше использовать свойство svn:ignore
когда возможно, так как оно может быть применено к конкретным разделам проекта, и оно работает для всех извлекающих этот проект. Более подробную информацию смотрите в «Общие настройки».
Версированные файлы и папки не могут игнорироваться - так устроена Subversion. Если вы версировали файл по ошибке, прочтите «Игнорировать файлы, которые уже версированы», где приведены инструкции, как сделать его «неверсированным».
Шаблоны игнорирования в Subversion применяют универсализацию имён файлов - способ, первоначально задействованный в Unix для указания нужных файлов и использующий мета-символы для обобщения. Следующие символы имеют специальное значение:
Соответствует любой строке, включая пустую строку (без символов).
Соответствует любому одиночному символу.
Соответствует любому символу, заключённому в квадратные скобки. Внутри скобок пара символов, разделённая «-» соответствует любому символу, лексически расположенному между ними. Например, [AGm-p]
соответствует любому из A
, G
, m
, n
, o
или p
.
Соответствие шаблону регистрозависимое, что может привести к проблемам на Windows. Вы можете включить независимость от регистра явным образом удваивая символы, т. е. вместо регистронезависимого шаблона *.tmp
использовать *.[Tt][Mm][Pp]
.
Если вам необходимо официальное описание универсализации, вы можете найти его в спецификации IEEE для командного языка оболочки Pattern Matching Notation.
Не надо включать полный путь в задаваемый шаблон. Сопоставление с шаблоном предназначено для использования с обыкновенными именами файлов и папок. Если вы желаете игнорировать все папки CVS
, просто добавьте CVS
в список игнорирования. Нет необходимости указывать CVS */CVS
, как в более ранних версиях. Если же вы желаете игнорировать все папки tmp
, которые находятся в каталоге prog
, но не в doc
, вам необходимо воспользоваться свойством svn:ignore
. Не существует надёжного способа добиться этого при помощи глобальных шаблонов игнорирования.