Назад | Перейти на главную страницу

rsync с svn rm

Как я могу использовать параметр rsync --delete, но сделать команду удаления svn rm?

У меня есть репозиторий некоторых файлов конфигурации и тому подобное, но эти файлы конфигурации не являются рабочей копией. Я всегда копирую их локально в каталог репо svn, за исключением .svn, а затем проверяю их. Я изменил кучу имен файлов, поэтому хочу удалить старые в репо (svn mv для этого будет немного сложнее ).

Изменить: О, и если есть опция svn, которая даст мне тот же конечный результат, это тоже хорошо.

Я никогда этого не делал, но я напишу сценарий, который:

  1. Запускает rsync с параметром --delete
  2. Бегать svn status*
  3. Соберите все пропущенные имена файлов (строки, начинающиеся с '!')
  4. Бегать svn rm* в этом списке имен файлов
  5. Вы можете даже тогда сделать svn commit -m* с комментарием о том, что файлы были удалены после rsync в указанную дату и время.

* - используя ssh для удаленного запуска команды, если необходимо.

svn delete $ (svn status | sed -e '/ ^! /! d' -e 's / ^! //')
svn add $ (svn status | sed -e '/ ^? /! d' -e 's / ^? //')

Я нашел это в http://thedrupalblog.com/updating-drupal-module-subversion-integrated-filesystem-using-rsync#comment-421