Рекурсивное игнорирование файлов во всем дереве исходных текстов в Subversion без удаления существующих свойств игнорирования - PullRequest
0 голосов
/ 24 января 2012

Я хочу добавить строку в мой svn: ignore, скажем, для шаблона "* .bak".

Я бы хотел, чтобы это было сделано рекурсивно для всего дерева. Я могу сделать это, как описано здесь :

svn propset svn:ignore '*.bak' . --recursive

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

Есть ли какой-нибудь способ, которым я могу рекурсивно добавить новую строку в свойство svn: ignore, не удаляя то, что уже есть?

Многие из моих подкаталогов уже имеют несколько шаблонов игнорирования, и я не хочу, чтобы все подкаталоги имели одинаковые шаблоны игнорирования. Я просто хотел бы добавить новый шаблон в каждый каталог.

Надеюсь, все ясно. Спасибо за любую помощь!

Ответы [ 4 ]

2 голосов
/ 11 июля 2013

Используйте команду find:

    find . -name "*.bak" \
       -execdir bash -c 'svn -q propset svn:ignore -F <((svn propget svn:ignore; basename "{}") | sort -u) .' \;

Я использую sort -u для согласованности и уникальности.

0 голосов
/ 07 января 2014

Ответ, заданный juj, работает, но он добавляет только шаблоны игнорирования для каталогов, где такой файл уже существует, поэтому вам, возможно, придется перезапустить сценарий в будущем. Кроме того, вы получаете конкретное имя файла в свойстве svn:ignore (в отличие от шаблона).

В моем следующем ответе представлено альтернативное решение, которое не имеет вышеуказанных проблем: unix.stackexchange post .

0 голосов
/ 24 января 2012

svn propedit редактировать свойства

0 голосов
/ 24 января 2012

Чтобы игнорировать более одного «типа» или «шаблона», вам нужно предоставить файл

svn propset svn:ignore -F patterns.txt

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

Либо это, либо вы можете написать веб-клиент, который напрямую обращается к серверу SVN / Dav, получает реквизиты и устанавливает их.

...