如何在SVN中还原特定扩展名的文件?

5
我想要做类似这样的事情:
svn revert --recursive mydata/*/*.txt
我希望它可以还原目录mydata下所有扩展名为*.txt的文件。有没有办法实现这个功能?
2个回答

10

在一个兼容POSIX的操作系统上(Linux/Mac/Cygwin):

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

在Windows系统中,可以在批处理文件中使用%%G,在命令行中使用%G:

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

严格来说,Windows命令会影响mydata/*.txtmydata/*/*.txtmydata/*/*/*.txt等文件,因此可能不完全符合您的要求...但也许已经足够帮助您了。


我正在使用Perl进行操作,所以我可以自己遍历文件,但我想知道是否有一种方法可以通过单个svn命令完成。 - Paulius Liekis
这个程序没有标记为“仅适用于Linux和Mac”,但它只能在Linux和Mac上运行。遗憾的是,在Windows上似乎没有办法? - Warren P
我修改了答案以添加可能的Windows解决方案。 - mrkj

1

你是在使用Linux或其他支持find命令的Unix变种吗?(嘿,甚至在cygwin中也应该可以。)如果是的话,请尝试以下方法:

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

如果你有很多文件,你可能需要使用 xargs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接