Почему svn ignore не игнорирует? - PullRequest
       22

Почему svn ignore не игнорирует?

11 голосов
/ 21 сентября 2009

Я пытаюсь добавить ядро ​​Linux в дерево SVN, в котором есть подкаталог .git, который я не хочу добавлять.

Кто-нибудь может объяснить это поведение - почему оно НЕ игнорирует каталог .git?

test2$ mkdir -p a/.git/blah
test2$ ls
a
test2$ svn propset svn:ignore .git .
property 'svn:ignore' set on '.'
test2$ svn propset -R svn:ignore .git .
property 'svn:ignore' set (recursively) on '.'
test2$ svn add a
A         a
A         a/.git
A         a/.git/blah

Ответы [ 3 ]

17 голосов
/ 21 сентября 2009

Свойство svn:ignore в каталоге содержит список имен в каталоге current , которые будут игнорироваться. Вы установили свойство svn:ignore в текущем каталоге на .git, но это не относится к подкаталогу a. Что вы можете сделать, это сначала добавить a нерекурсивно:

svn add -N a
svn ci -m "add a directory"

Затем установите свойство svn:ignore:

svn propset svn:ignore .git a

, а затем добавьте свое дерево:

svn add a

Это должно игнорировать каталог a/.git.

7 голосов
/ 21 сентября 2009

Первый svn propset устанавливает свойство svn:ignore для родительского каталога a.

Второй svn propset ничего не делает, потому что a еще не находится под управлением SVN.

5 голосов
/ 21 сентября 2009

Свойство svn:ignore предназначено для игнорирования файлов в уже добавленных каталогах.

Чтобы избежать импорта файлов (или каталогов), вы должны использовать global-ignores -feature, который настраивается в файле ~/.svn/config (UNIX) или %APPDATA%\Subversion\config (Windows) в [сборник] раздел.

Активируйте его, удалив # перед строкой:

global-ignores = .git
...