Subversion

Оригинальное название: Subversion (SVN)

Коротко

Централизованная система контроля версий (SVN), на которой построен каталог плагинов и тем WordPress.org и исторически велась разработка ядра.

Что такое «Subversion»

Subversion появилась в 2000 году как замена устаревшей CVS и позже стала проектом Apache. В отличие от Git, где у каждого разработчика полная копия истории, в SVN история хранится на одном сервере. Изменения отправляются туда сразу при коммите, а версии нумеруются по порядку: ревизия 41000, 41001 и так далее. Ветки и теги — просто папки внутри репозитория, созданные копированием.

Основной репозиторий ядра WordPress много лет остаётся в SVN, а зеркала на Git служат для удобства участников. Ссылки на изменения в трекере ядра до сих пор указывают на номера ревизий SVN.

Как устроена публикация плагина

Каждый плагин в каталоге WordPress.org получает свой SVN-репозиторий по адресу plugins.svn.wordpress.org/имя-плагина/. В нём три стандартные папки:

  • trunk/ — текущий код;
  • tags/ — замороженные копии выпущенных версий, например tags/1.2.0/;
  • assets/ — баннеры, иконки и скриншоты для страницы плагина.

Какую версию раздавать пользователям, определяет строка Stable tag в readme.txt.

Пример выпуска версии

svn checkout https://plugins.svn.wordpress.org/my-plugin my-plugin
cd my-plugin
svn add --force trunk
svn copy trunk tags/1.2.0
svn commit -m "Версия 1.2.0"

Между cd и svn add новый код копируют в trunk/. Коммит в SVN сразу публичен: отменить отправленное «локально», как в Git, нельзя — только новым коммитом.

SVN и Git вместе

Большинство авторов плагинов ведут разработку в Git на GitHub или другом хостинге кода, а в SVN только выкладывают релизы. Для этого есть готовые действия CI, которые при создании тега в Git копируют файлы в trunk и tags репозитория WordPress.org. Частая ошибка новичков — коммитить в SVN всю папку разработки с node_modules и исходниками сборки: каталог раздаёт пользователям ровно то, что лежит в теге.

Обновлено:

Все термины раздела «WordPress»

Что будем искать? Например,Продвижение