Tengo una configuración de implementación bastante complicada para nuestro sitio Drupal que es una combinación de CVS y SVN. Usamos CVS para obtener las versiones más nuevas de módulos, y lo implementamos con SVN. Desafortunadamente, cuando las actualizaciones de CVS eliminan archivos, las subversiones se quejan porque no se eliminaron en SVN. Estoy tratando de hacer algunas secuencias de comandos de shell y Perl para ejecutar un comando svn rm
en todos estos archivos que ya han sido eliminados del sistema de archivos, pero no he llegado muy lejos. Lo que tengo hasta ahora es la siguiente:Salida de shell de tubería a svn del command?
svn st | grep !
Esto genera una lista de todos los archivos borrados del sistema de ficheros, así:
! 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. . .
Sin embargo, quiero correr alguna manera un svn del
en cada uno de estos líneas. ¿Cómo puedo obtener esta salida en mi script de Perl o, alternativamente, cómo puedo ejecutar svn del
en cada una de estas líneas?
Editar: El comando exacto que usé, con la ayuda de todo, era
svn st | grep ^! | cut -c 9- | xargs svn del
Cambiaría 'grep!' Por 'grep ^!' Para garantizar que no matamos accidentalmente los archivos que tengan puntos de exclamación en su camino. –
Esa es una buena idea. –
Maravilloso, no tenía ni idea de cortar o xargs. Sabía que Perl no era la forma más sencilla, pero estoy un poco familiarizado con ella. – jergason