Я хотел бы сделать что-то вроде этого:Как вернуть файлы с определенным расширением в svn?
svn revert --recursive mydata/*/*.txt
, и я хочу, чтобы восстановить все файлы, которые имеют расширение * .txt в каталоге MyData. Есть ли способ сделать это?
Я хотел бы сделать что-то вроде этого:Как вернуть файлы с определенным расширением в svn?
svn revert --recursive mydata/*/*.txt
, и я хочу, чтобы восстановить все файлы, которые имеют расширение * .txt в каталоге MyData. Есть ли способ сделать это?
На 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
и т. Д., Так что, возможно, это не совсем то, что вы ищете ... но, возможно, этого достаточно, чтобы доставить вас туда.
Используете ли вы Linux или какой-либо другой вариант Unix, который поддерживает find
? (Черт возьми, это, вероятно, будет хорошо в Cygwin тоже.) Если это так, попробуйте это:
svn revert `find mydata -name '*.txt'`
Если у вас есть много файлов вам может понадобиться использовать xargs
вместо этого.
Я делаю это из perl, так что да. Я могу перебирать файлы самостоятельно, но мне было интересно, есть ли способ сделать это в одной команде svn. –
Это не помечено как «работает только на linux и mac», но работает только на Linux и Mac. К сожалению, в Windows не существует способа? –
Я изменил ответ, чтобы добавить возможное решение для Windows. – mrkj