我试图找到一个命令(可以是 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
Run Code Online (Sandbox Code Playgroud)
现在我想找到一个svn revert对SomeFolderA.
我试过这样的事情:
svn st | grep SomeFolderA | svn revert
Run Code Online (Sandbox Code Playgroud)
但收到此错误消息:
svn: Try 'svn help' for more info
svn: Not enough arguments provided
Run Code Online (Sandbox Code Playgroud)
我最终做到的方法是创建以下命令:
svn st | grep SomeFolderA | awk {'print $2'} | xargs svn revert
Run Code Online (Sandbox Code Playgroud)
解释:
svn st - 查找所有修改过的文件grep SomeFolderA - 过滤 svn 输出以仅显示具有 SomeFolderAawk {'print $2'}- 删除M每个输出行开头的xargs svn revert- 该xargs命令使用上一个命令的输出并将其按原样传递给svn revert命令