Как сделать массовую SVN MV в Unix - PullRequest
3 голосов
/ 24 февраля 2009

Я хочу массово переместить большое количество файлов из одного каталога в другой в SVN. К сожалению, svn поддерживает перемещение только одного файла за раз.

В основном я хочу переместить файлы определенного типа ( .xml) в совершенно другой каталог, например. mv foo / bar / .xml forbar / xml

Я попытался поиграть с find и использованием -exec, но мне нужно удалить каталог для второго аргумента. Есть идеи?

РЕДАКТИРОВАТЬ: Использование Bash

Ответы [ 2 ]

5 голосов
/ 24 февраля 2009

Вы можете сделать это с опцией -execdir. Это запускает из каталога, в котором находятся исходные файлы (что позволяет избежать условий гонки со связью каталога и т. Д.).

find -name '*.xml' -execdir svn move {} `pwd`/foobar/{} \;
5 голосов
/ 24 февраля 2009

Если вы используете bash:

for x in `find -name *.xml`; do
   echo svn move $x forbar/`basename $x`;
done

И когда вы убедитесь, что вывод верен, удалите 'echo' из второй строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...