批量svn delete

如果我们在某个目录中删除了一些已经在svn版本库中的文件或者目录,但是还没commit,svn status查看一下状态:

1
2
3
4
5
6
7
!   x/xx
! x/xx/x.js
! x/xx/x.css
! x/xx/x.png
? x/xx/x.jpg ## 其他状态的文件
M x/xx/xx.js ## 其他状态的文件
...

现在我们想svn delete一下带”!”状态的文件或者目录,如果被删除的数量不多,我们当然可以挨个svn delete

但是数量很多的情况下,delete起来就麻烦了,不可能挨个delete,这个时候可以利用shell来批量删除:

1
svn status | grep ! | awk '{print $2}' | xargs svn delete

svn status一下,可以看到:

1
2
3
4
5
6
7
D   x/xx
D x/xx/x.js
D x/xx/x.css
D x/xx/x.png
? x/xx/x.jpg
M x/xx/xx.js
...

已经成功delete了,再commit一下就搞定了!