Представьте, если у вас есть куча файлов Java (*.java
).Они компилируются в *.class
файлы.Скомпилированные *.class
файлы не должны храниться в Subversion.
Теперь представьте себе разработчика, который создал кучу новых *.java
файлов, скомпилировал их, был доволен результатами и сделал следующее:
$ svn add *
В этом случае Subversion будет радостно добавлять все скомпилированные файлы *.class
.Не то, что вы хотите ...
Свойство svn:ignore
находится в каталоге, где вы хотите игнорировать файлы.Если и только если файл еще не находится в Subversion, файл не будет отображаться, если файл соответствует шаблону глобуса svn:ignore
в файле, а пользователь вводит svn status
или svn add
с подстановочными знаками.
С помощью команды svn status
эти файлы не будут отображаться с отметкой ?
в начале строк вывода.Если пользователь пытается добавить символ подстановки, Subversion будет игнорировать эти файлы.
В приведенном выше сценарии, если разработчик сделал это:
$ svn add *
Свойство svn:ignore
предотвратит*.class
добавляемых файлов.
Однако, если пользователь специально добавляет игнорируемый файл:
$ svn add foo.class
Тогда Subversion не будет игнорироватьфайл.И, как только он будет добавлен в хранилище, Subversion сообщит об этом, если файл будет изменен или удален.
Свойство svn:ignore
видимо всем пользователям, которые извлекли эту версию каталога.Это отличный способ предотвратить случайное добавление файлов, но он не может помешать кому-либо на самом деле добавить их.
У меня есть ловушка для предварительной фиксации , которая может сделать шаг вперед.С его помощью вы можете запретить пользователям добавлять определенные файлы в хранилище.Вы также можете заставить пользователей устанавливать svn:ignore
при создании нового каталога.