Обновление модулей с помощью drush без нарушения SVN?


Верно, это ломает меня уже два дня. Я нигде не могу получить ответа!

У меня есть drush 4.4 на моем сервере. Я использую SVN через Unfuddle.com . У меня есть сайт, я хочу обновить множество модулей. Я хочу обновить только код, затем проверить, что он работает (обновления БД на данный момент не являются проблемой), а затем зафиксировать соответствующий код.

Раньше было так, что drush dl просто загружал код модуля поверх старого модуля, не удаляя его. Это уже не так. Теперь, AFAICT, drush удаляет каталог модулей и заменяет его более новой версией. Это все хорошо и хорошо, потому что это решает проблему оставления старых файлов, которых больше нет в обновленном модуле.

Однако, используя команды drush dl или upc, я застрял, потому что выполнение этих команд действительно позволяет получить более новую версию, но при этом уничтожает папку данных SVN, оставляя меня с "! module/file.php "везде проблемы с файлами их там больше нет.

Мне сообщили, что "имя модуля drush upc/dl --version-control=svn" должно работать, но это не так. Данные SVN все еще уничтожены.

Это оставляет меня с потенциальным кошмаром необходимости: svn del модуль, svn commit -m "Удаленный модуль", модуль drush dl, (протестируйте модуль), svn add модуль, svn commit -m "Добавленный модуль" - для каждого отдельного модуля, что является полным ужасом.

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

Мне также сообщили, что переход на git (да, я знаю, что unfuddle поддерживает git!) Также является решением, но оно не является немедленным и на данный момент не является удовлетворительным.

Кто-нибудь может, пожалуйста, пролить свет на это?!

Author: NikLP, 2011-05-18

2 answers

Потому что выполнение этих команд действительно приводит к более новой версии, но при этом уничтожает папку данных SVN, оставляя меня с "! module/file.php "

Я запускаю Drush 4.4, и, похоже, это не относится ко мне. Запуск drush upc или drush up сохраняет ваши каталоги .svn нетронутыми. Вы можете svn status просмотреть изменения в модулях. Новые файлы обозначаются ?, а удаленные файлы обозначаются !.

Проверьте функциональность вашего сайта. Как только вы убедитесь, что модули все еще работают правильно, вы можете добавить/удалить svn с помощью фрагмента, такого как следующий:

Добавить:

svn status | grep '^\?' | cut -c8- | while read f; do svn add "$f"; done

Удалить:

svn status | grep '^\!' | cut -c8- | while read f; do svn rm "$f"; done
 6
Author: jwal, 2011-05-18 18:45:00

Вы должны добавить --svnsync в свою команду.

Пример:

 drush pm-update module_to_update --version-control=svn --svnsync 
 4
Author: claire_, 2012-12-04 11:08:00