Mam dość skomplikowaną konfigurację instalacji dla naszej witryny Drupal, która jest kombinacją CVS i SVN. Używamy CVS, aby uzyskać najnowsze wersje modułów i wdrażamy je za pomocą SVN. Niestety, gdy aktualizacje CVS usuwają pliki, Subversion twierdzi, że nie zostały usunięte w SVN. Próbuję wykonać kilka skryptów powłoki i Perl, aby uruchomić komendę svn rm
dla wszystkich tych plików, które zostały już usunięte z systemu plików, ale nie dotarłem daleko. To, co mam do tej pory to:Wyjście powłoki rury do polecenia svn del?
svn st | grep !
ten generuje listę wszystkich plików usuniętych z systemu plików tak:
! 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. . .
Jednak chcę jakoś uruchomić svn del
na każdym z tych kwestia. Jak mogę uzyskać te wyniki w moim skrypcie Perla, lub alternatywnie, w jaki sposób mogę uruchomić svn del
na każdej z tych linii?
Edit: Dokładna polecenie użyłem, z pewną pomocą wszystkim był
svn st | grep ^! | cut -c 9- | xargs svn del
Zmieniłbym "grep!" Na "grep ^!", Aby upewnić się, że nie zabijamy przypadkowo plików, które na ich ścieżce mają wykrzykniki. –
To mądry pomysł. –
Cudownie, nie miałem pojęcia o cięciu ani xargs. Wiedziałem, że Perl nie jest najprostszym sposobem, ale mam trochę znajomości. – jergason