Является ли SVN глобальным игнорировать рекурсивный? - PullRequest
6 голосов
/ 29 сентября 2011

Я новичок в SVN и хочу рекурсивно игнорировать каталог, как в Git. У меня есть каталог sample, который я хочу рекурсивно игнорировать.

>svn status
sample/first/1.jpg
sample/second/2.jpg
sample/third/3.jpg

Я пробовал:

  1. svn ps svn:ignore "*" . (в каталоге sample)
  2. Установка глобального игнорирования в ~/.subversion/config как global-ignores = sample.

Но все равно он показывает тот же результат, когда я запускаю svn status:

>svn status
sample/first/1.jpg
sample/second/2.jpg
sample/third/3.jpg

Как я могу рекурсивно игнорировать каталог в SVN?

Ответы [ 5 ]

7 голосов
/ 29 сентября 2011

svn -R propset svn:ignore . -F somefile.txt

Где somefile.txt - это файл, содержащий все шаблоны игнорирования svn, которые вы хотите установить рекурсивно.

4 голосов
/ 29 сентября 2011

Если вы хотите игнорировать каталог samples и все содержимое в нем, вы должны установить svn:ignore в каталоге , содержащем каталог samples.Вы сделали это в пределах samples.Обратите внимание на две вещи:

  1. svn:ignore влияет только на файлы версий.Это означает, что файлы и каталоги, уже известные SVN, все равно будут отображаться. Настройки

  2. svn:ignore не являются кумулятивными или рекурсивными.Если вы хотите игнорировать только файлы * .jpg в вашем дереве, вы должны установить svn:ignore на *.jpg в каждом каталоге.

Обратите вниманиечто команда svn propset имеет параметр -R (он же рекурсивный), который может помочь.Но имейте в виду, что propset не является propadd.Это, конечно, важно, если вы хотите установить разные значения в дереве.

2 голосов
/ 12 мая 2016

Существует новое свойство SVN для этого начиная с версии 1.8.См. Нижнюю часть этой страницы из книги SVN :

svn:global-ignores

. Это относится к папке, в которой вы ее установили, и всем, что ниже, и вам не нужно указывать рекурсив.Например, чтобы установить текущий каталог:

svn propset svn:global-ignores "bin obj" .
1 голос
/ 29 сентября 2011

С http://svnbook.red -bean.com / ru / 1.5 / svn-book.html # svn.advanced.props.special.ignore :

"Шаблоны, найденные в свойстве svn: ignore, применяются только к каталогу, для которого установлено это свойство, а не к любому из его подкаталогов."

[...]

"Как только объект находится под контролем Subversion, механизмы шаблонов игнорирования больше не применяются к нему. Другими словами, не ожидайте, что Subversion избежит внесения изменений, внесенных в версионный файл, просто потому, что имя этого файла совпадает с именем файла. шаблон игнорирования - Subversion всегда замечает все версионные объекты. "

Вы можете использовать флаг -R, но он применяется только свойство рекурсивно - он не меняет эффект свойств, поэтому не применяется к любым созданным новым каталогам.

Также я предлагаю использовать propedit вместо ps, так как он позволяет многострочное редактирование, иначе сложно иметь дело с более чем одним шаблоном игнорирования.

0 голосов
/ 26 марта 2013

Для тех, кто на * nix:

Хотя из документации следует, что ~.subversion/config уже должна иметь конфигурацию по умолчанию, моя (SVN 1.6.17 в Ubuntu) была пуста.

Вот формат, который я наконец получил для работы (это весь файл), включает настройки по умолчанию, и я добавил * .ignore в конце:

[Miscellany]
global-ignores=*.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store *.ignore
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...