svn: игнорировать свойство во время импорта

Как рекурсивно применить svn:ignore glob при выполнении импорта?


person Agnel Kurian    schedule 10.04.2009    source источник


Ответы (2)


Я не уверен, что вы подразумеваете под «рекурсивным применением svn:ignore при импорте».

Если вы хотите исключить набор файлов из импорта, вы можете установить свойство global-ignores в ~/.subversion/config перед импортом. Нет опции командной строки, чтобы сделать это на лету.

В качестве альтернативы вы можете добавить каталог и удалить ненужные файлы перед фиксацией:

$ svn co --non-recursive <repository_url> repo_root
$ cp -R <project_to_import> repo_root
$ cd repo_root
$ svn add *
$ find . -regex ".*\.\(bak\|obj\)" | xargs svn --force del
$ svn ci

Несмотря на трудоемкость, я предпочитаю последний подход, потому что я не большой поклонник svn import (часть svn del для меня не обычная, и я люблю просматривать список файлов перед совершением).

В противном случае, если вы хотите установить свойство svn:ignore для каждого каталога в иерархии перед импортом, вы должны использовать второй метод и выполнить svn propset (вместо svn del) перед фиксацией:

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

(На самом деле вы можете выполнить svn import, за которым следует svn propset, но не в одном коммите.)

person Rômulo Ceccon    schedule 10.04.2009

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

person Martin v. Löwis    schedule 10.04.2009
comment
Спасибо, что указали мне на импорт на месте. Это решение лучше, чем предложение Ромуло. - person dmoebius; 12.04.2014