Как вы можете обновлять плагины с помощью графического интерфейса, не нарушая ваш репозиторий subversion?

Разработка по установке WordPress осуществляется под контролем версии Subversion. Мы не используем внешние ссылки для ссылок в плагинах - плагины устанавливаются /обновляются не разработчиками, отвечающими за контент.

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

Вот типичный сценарий, который не вызывает у меня огорчения:

  1. Поместите существующий сайт WordPress под контролем версий в новое репо. Этот существующий сайт УЖЕ имеет некоторые плагины. Некоторые из этих плагинов устарели
  2. Теперь зайдите в админ и обновите эти плагины
  3. запустите svn st, и вы увидите следующее:

    ~ addthis

    ~ google-analytics-for-wordpress

    и т.д ...

Тильда ~ особенно противна, потому что это означает «дух, я не знаю, что ты», а SVN просто качает. Даже копирование, удаление, удаление, восстановление, перемещение назад, попытка совершить совершение.

Многие люди рекомендуют использовать svn: externals или вручную FTP-обновление, которое отлично и денди, но я просто хотел бы использовать пользовательский интерфейс, как предполагал Бог. Из того, что я вижу в основном, нет никакого крючка, который может быть использован для того, чтобы убедить WP не удалять папку или папку .svn. Есть ли что-то, что можно сделать?

6 голосов | спросил Tom Auger 24 PMpTue, 24 Apr 2012 18:16:12 +040016Tuesday 2012, 18:16:12

4 ответа


7

Реальный ответ, учитывая все вышеперечисленное:

Что касается каталогов .svn: Subversion 1.7 был выпущен чуть более года назад (http://svn.haxx.se/dev/archive-2011-10/0152.shtml ), и рабочие копии больше не содержат .svn каталогов в каждой папке. Они содержат один корневой каталог .svn в корне, а также довольно значительные улучшения производительности. Сегодня SVN до версии 1.7.7. Вы должны обновить свой svn-клиент, чтобы устранить это как любую проблему.

Это отвечает на исходный вопрос, поскольку WP, удаляющий каталоги и воссоздающий их, больше не является проблемой. Это не испортит рабочую копию, сделанную Subversion 1.7 или более поздней. Тем не менее, он не отвечает на более широкий вопрос управления репозиториями в отношении развертывания производства и среды разработки /тестирования.

В принципе, как вы управляете своими производственными машинами, зависит от вас. Если у вас действительно есть реальная «производственная» среда, то вы должны использовать схему разрешений и /или плагинов, чтобы отключить возможность пользователей напрямую обновлять систему. Пользователи не могут изменять производство. Это своего рода вызов назвать это «производство». Изменения в таком случае будут производиться разработчиками и сначала свернуты с помощью тестирования и /или систем контроля качества. Если у вас есть такая среда и действительно нужен такой уровень контроля, то отключение этого режима было бы предпочтительным способом.

Черт, я сам использую именно такую ​​среду, хотя я все время контролирую dev, тестирование и производство. Весь сайт находится в репо SVN. Некоторые из них действительно используют внешние (я использую соединительную линию WP, несколько плагинов, которые я использую в качестве версий trunk), некоторые из них не являются и являются локальными для репо. Для меня развертывание изменений в производстве означает, что в основном это делать svn up. Изменения не могут производиться непосредственно в этих файловых системах.

С другой стороны, некоторые сайты, которые я запускаю прямо в прямом эфире, с регулярными резервными копиями. Если мой персональный сайт немного выигрышный, то это нисколько не влияет на меня. Я использую WP updater на тех просто отлично. Теперь я не запускаю эти сайты в репо, у меня просто есть регулярные резервные копии всего. Фактически, я использую VaultPress на своих личных сайтах, но любой способ резервного копирования - хорошая идея. Это другой тип управления, в котором мне не нужна среда разработки /тестирования.

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

ответил Otto 28 32012vEurope/Moscow11bEurope/MoscowWed, 28 Nov 2012 01:19:36 +0400 2012, 01:19:36
2

Не тестировалось, но add_filter('upgrader_clear_destination', array(&$this, 'delete_old_plugin'), 10, 4); выглядит хорошо. Вы найдете его в wp-admin/includes/class-wp-upgrader.php Удалите фильтр перед обновлением плагинов. Это может быть немного сложно, потому что вам нужно искать правильное имя функции для удаления. Toscho написал сообщение об удалении анонимных крючков (немецкий) .

Но apply_filters('upgrader_pre_install', true, $hook_extra); (тот же файл, что и выше), кажется лучшим решением. Присоединитесь к «upgraderader_pre_install» и сохраните каталог .svn. Также подключитесь к «upgraderader_post_install», этот крючок будет выполнен после обновления. После обновления плагина просто скопируйте свой .svn-каталог.

ответил Ralf912 27 22012vEurope/Moscow11bEurope/MoscowTue, 27 Nov 2012 21:04:55 +0400 2012, 21:04:55
1

Если вы хотите управлять установкой WordPress с помощью элемента управления версиями, я не вижу способа, как это сделать, а также обновлять плагины только с панели администратора WordPress.

В идеале это должно быть так:

  • Оформить копию своего репо на локальном.
  • Обновите плагин от администратора WP.
  • Тест
  • Фиксировать
  • Оформить последнюю версию продукта (проверка означает развертывание этих коммитов)

И это работает безупречно с GIT. С SVN это может быть проблемой, поскольку в каждом каталоге есть каталог .svn, но, как и Отто, SVN 1.7 может помочь вам здесь в качестве в корне будет только один каталог .svn.

ответил Ashfame 5 Mayam12 2012, 11:48:14
0

Похоже, что был создан плагин, чтобы помочь с этим.

http://plugins.svn.wordpress.org/svn-auto -upgrade /багажник /

Или просто введите «SVN Auto Upgrade» в браузер плагинов в вашем back-end WP.

ответил Tom Auger 7 Maypm12 2012, 22:43:37

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132