我正在尝试查找一个命令(可以是bash命令)来恢复一组svn文件。
假设我在退房时有一些变化,我运行svn st
并获得此输出:
My-MacBook-2:trunk aetzioni$ svn st
M SomeFolderA/src/main/java/com/mycompany/package/classA.java
M SomeFolderA/main/java/com/mycompany/package/classB.java
M SomeFolderB/src/main/java/com/mycompany/package/classC.java
现在我想找到一个对svn revert
下的所有文件SomeFolderA
执行的命令。
我试过这样的事情:
svn st | grep SomeFolderA | svn revert
但收到此错误消息:
svn: Try 'svn help' for more info
svn: Not enough arguments provided
答案 0 :(得分:4)
我最终做到的方法是创建这个命令:
svn st | grep SomeFolderA | awk {'print $2'} | xargs svn revert
说明:
svn st
- 查找所有修改过的文件grep SomeFolderA
- 过滤svn输出,仅显示包含SomeFolderA
awk {'print $2'}
- 删除每个输出行开头的M
xargs svn revert
- xargs
命令使用上一个命令的输出并按原样将其传递给svn revert
命令