Обновление до более новой версии модуля с использованием Drush (игнорирование точек / рекомендуемых выпусков, без разрушения контроля версий)

20

[NB. Этот вопрос находится за спиной, но отдельно / дальше от моего более раннего вопроса, здесь .]

Я давно пользуюсь Drush, но время от времени я захожу в тупик. На данный момент я действительно не знаю, как это сделать.

Сценарий: в настоящее время сайт использует версию dev, существовавшую в прошлом. Пока что не было создано ни одной версии релиза, но появилась более новая версия для разработчиков. Итак, у нас есть что-то вроде:

Reroute Email           6.x-1.x-dev (2010-Sep-27)
Recommended version:    6.x-1.0 (2008-Jul-24)   
Development version:    6.x-1.x-dev (2011-Feb-25) 

Выполнение drush dl <module>-6.x-1.x-devперезаписывает существующий каталог последней версией 1.x dev. Это хорошо, но он уничтожает папку .svn.

Если я это сделаю drush upc <module>, он загрузит точечный выпуск (см. Редактирование ниже), который мне не нужен, но если я это сделаю drush upc <module>-6.x-1.x-dev, он просто обновит данные обновления и затем сообщит мне «Указанная версия уже установлена» в соответствующей строке на выход.

Итак, как мне использовать drush, чтобы перезаписать старый релиз dev, получить новый вместо него, не удаляя папку SVN?

РЕДАКТИРОВАТЬ: На самом деле, в этом случае, drush upc <module>загружает правильную версию, но я почти уверен, что если бы точечный выпуск был датирован как 6.x-1.0 (2011-Jan-24), он бы получил эту. Кто-нибудь хочет уточнить / исправить?

NikLP
источник

Ответы:

9

Я нашел ваш вопрос только сейчас, потому что у меня был точно такой же вопрос. Не нашел точного ответа, но это сработало для меня:

#svn rm <module>  
#svn commit -m"removing the module... whatever you want to write"  
#drush dl <module>-6.x-2.x-dev  
#svn add <module>  

По какой-то причине отсутствие выполнения коммита между rm и dl вызвало проблему с svn. Я не знаю достаточно о SVN, чтобы знать почему, но был бы признателен, если кто-то может уточнить!

rainbreaw
источник
Привет @rainbreaw, может быть, ответ на мой другой вопрос здесь может быть полезным ?
NikLP
7

Попробуй drush dl module-6.x-1.x-dev --svnsync.

forsythes
источник
Это может скоро обесцениться в drushсоответствии с GH # 1056 .
Кенорб
2

Могут быть некоторые задачи установки, которые необходимы новой версии модуля для правильной работы, например, если версия dev имеет другую схему.

Поэтому, прежде чем drush dl module-7.x.2.x взглянуть на удаление и установить детали в модуле.

Остерегайтесь, если у вас есть данные, которые вы не хотите потерять в задействованных таблицах БД. Сделайте резервную копию, если вы беспокоитесь или не уверены.

Если вам нужно, отключите и удалите модуль перед загрузкой и включением нового модуля.

Используйте drush dis и затем drush pm-uninstall

Хим
источник
1
Удаление модуля также может привести к удалению всех данных, которые он сохранил в базе данных. Разве скрипт update.php не должен обрабатывать какие-либо изменения схемы от версии к версии?
Тони Патринос
Это хороший момент, я исправлю свой ответ
chim