SVN: рекурсивно игнорировать некоторые каталоги - PullRequest
98 голосов
/ 10 января 2010

Я не хочу, чтобы какой-либо каталог с именем build или dist входил в мой SVN, независимо от того, насколько глубоко оно находится в дереве.

Возможно ли это? В мерзавец я ​​просто положил

build
dist

в моем .gitignore в корне, и он рекурсивно игнорирует. Как мне сделать это с SVN? Пожалуйста, не говорите мне делать propset для каждого родительского каталога ...

Ответы [ 15 ]

2 голосов
/ 17 марта 2013
svn propset --recursive svn:ignore svn_ignore_rules .

где svn_ignore_rules - файл, содержащий правила игнорирования - по одному на строку

Конечно, вы должны перезапускать его каждый раз, когда добавляете новый каталог в репозиторий

svn_ignore_rules также может считаться зарегистрированным в репо для повторного использования другими пользователями, имеющими право записи в репо

2 голосов
/ 24 января 2013

Создайте файл и добавьте в него свои игнорируемые данные

Игнорировать регистр-список:

file1 
directory1
file2
etc...

затем примените следующую команду

for n in directory; do svn propset svn:ignore -F ignore-list $n; done

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

Предполагается, что вы используете bash в качестве оболочки

1 голос
/ 26 марта 2013
cd parent_dir #the directory containing folder to be ignored recursively
svn propedit svn:ignore . #will open up svn-prop.tmp
enlist folder(s)
^X
Y
commit -m 'ignore targeted direcoty'
0 голосов
/ 16 ноября 2011

Поскольку, похоже, нет решения этой, вероятно, распространенной проблемы, я хотел бы поделиться нашим решением. Как уже говорили другие, вы можете либо использовать свойство svn:ignore, это относится к одному каталогу (и, следовательно, не для новых), либо вы используете global-ignores, который применяется к одному пользователю (но не принадлежит в хранилище).

Чтобы сделать жизнь немного проще, я создал reg-файл с именем Settings.Svn.reg и добавил его в корень хранилища. Теперь каждый может дважды щелкнуть этот regfile, и все настройки будут выполнены.

REGEDIT4

[HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\miscellany]
"global-ignores"="obj *.suo *.bak *.pdb *.user *.Cache*"

Я был бы очень признателен за решение в репозитории SVN, поэтому, если кто-то знает, не могли бы вы поделиться им?

0 голосов
/ 10 марта 2011

Одним из способов может быть добавление какой-либо проверки в ловушку до или после фиксации, но если вы не являетесь владельцем сервера репо, то это не помешает.

...