2009-12-29 3 views

ответ

5

На POSIX-совместимых ОС (Linux/Mac/Cygwin):

find mydata -mindepth 2 -name \*.txt | xargs svn revert 

On Windows (использование %% G в пакетном файле,% G в командной строке):

FOR /R mydata %G IN (*.txt) DO svn revert "%G" 

Строго говоря, команда Windows повлияет на mydata/*.txt, mydata/*/*.txt, mydata/*/*/*.txt и т. Д., Так что, возможно, это не совсем то, что вы ищете ... но, возможно, этого достаточно, чтобы доставить вас туда.

+0

Я делаю это из perl, так что да. Я могу перебирать файлы самостоятельно, но мне было интересно, есть ли способ сделать это в одной команде svn. –

+0

Это не помечено как «работает только на linux и mac», но работает только на Linux и Mac. К сожалению, в Windows не существует способа? –

+0

Я изменил ответ, чтобы добавить возможное решение для Windows. – mrkj

0

Используете ли вы Linux или какой-либо другой вариант Unix, который поддерживает find? (Черт возьми, это, вероятно, будет хорошо в Cygwin тоже.) Если это так, попробуйте это:

svn revert `find mydata -name '*.txt'` 

Если у вас есть много файлов вам может понадобиться использовать xargs вместо этого.

Смежные вопросы