我们的Drupal网站部署设置相当复杂,结合了CVS和SVN。我们使用CVS获取最新版本的模块,并使用SVN进行部署。不幸的是,当CVS更新删除文件时,Subversion会抱怨,因为它们在SVN中没有被删除。我正在尝试编写一些Shell脚本和Perl代码,以在已从文件系统中删除的所有这些文件上运行svn rm
命令,但我还没有取得很大进展。目前为止,我有以下内容:
svn st | grep !
这将输出一个文件系统中所有已删除文件的列表,如下所示:
! panels_views/panels_views.info
! panels_views/panels_views.admin.inc
! contexts/term.inc
! contexts/vocabulary.inc
! contexts/terms.inc
! contexts/node_edit_form.inc
! contexts/user.inc
! contexts/node_add_form.inc
! contexts/node.inc
etc. . .
然而,我希望能在每一行上运行svn del
。我该如何将这个输出传递到我的Perl脚本中,或者说,我该如何在每一行上运行svn del
?
编辑:在所有人的帮助下,我使用了以下确切命令:
svn st | grep ^! | cut -c 9- | xargs svn del
grep !
更改为grep ^!
,以确保我们不会意外删除路径中带有感叹号的文件。 - Adam Bellaire