Как мне использовать SCM с PHP-приложением, таким как Wordpress?

StackOverflow https://stackoverflow.com/questions/118235

  •  02-07-2019
  •  | 
  •  

Вопрос

Я веду свой блог с помощью Wordpress и совсем недавно стал большой верующий в SCM.Я действительно хочу перевести свой сайт в subversion (это то, что я использую прямо сейчас, возможно, git появится позже), но я пока не могу придумать правильный способ сделать это.По сути, мой репозиторий в настоящее время настроен с каталогом "реализация" и каталогом "ресурсы", в котором реализация содержит то, что в конечном итоге будет опубликовано на действующем сайте.Я хочу иметь возможность просматривать свой сайт локально без необходимости загрузки на сервер по очевидным причинам.Однако, чтобы сделать это, я обнаружил, что мне нужно фактически установить Wordpress локально (а не просто скопировать удаленный сайт в мой локальный ящик).Об этом мне рассказали в Wordpress.org.

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

Мое первоначальное желание - попытаться просто скопировать информацию о моей теме, поскольку это действительно единственный материал, которым я ‘владею’, в то время как все остальное на самом деле просто часть моей платформы (ничем не отличается от Apache или PHP, на самом деле).Однако именно здесь мое понимание рушится.Как я могу выборочно обрабатывать только часть этой структуры каталогов и как я могу поддерживать конфигурацию Wordpress, на которой я работаю?

В любом случае, я уверен, что другие люди справлялись с этим, и решение, вероятно, применимо ко многим приложениям, подобным Wordpress (Drupal, phpBB, phpMyAdmin и т.д.).Итак, как вы это делаете?

Это было полезно?

Решение

На самом деле это не так уж сложно сделать, но здесь я разберу это на несколько предложений.То, что вы описываете, является более или менее каталогом "удаления поставщика".По сути, здесь вы сохраняете код в SVN, но заменяете содержимое новыми материалами по мере его выхода.

С чего вам следует начать, так это с пустого каталога.Настройте репозиторий SVN, а затем выполните проверку SVN в пустой каталог (он по-прежнему будет пустым, за исключением того, что будет добавлен скрытый каталог .svn).Затем установите wordpress здесь обычным способом, а затем добавьте его файлы в svn.Вероятно, вы можете просто "svn add *", но будьте осторожны и удалите все, что вам не нужно версионировать (каталоги uploads / temp / cache, если применимо).Вы также можете использовать свойство svn:ignore, чтобы указать ему игнорировать определенные каталоги или типы файлов, если хотите.Запустите "svn stat", чтобы показать вам, что будет проверено, и т.д., и как только все будет хорошо, зафиксируйте это (svn commit) и начните работать оттуда.Теперь у вас есть базовая установка WordPress в SVN.

По мере работы и внесения изменений фиксируйте их.

Когда придет время для обновления, просто замените wordpress поверх того, что у вас есть.Убедитесь, что при замене каталогов вы заменяете содержимое, а не весь сам каталог.Вы же не хотите потерять скрытую папку .svn в каждой папке, потому что именно это испортит subversion.Выполните svn stat и / или svn diff, чтобы выяснить, что изменилось, если вообще что-либо изменилось, и в основном то, что добавлено недавно.На этом этапе вы можете снова совершить коммит.

Для развертывания на вашем производственном сайте вы можете выполнить экспорт в svn или обычную проверку в веб-каталоге.Если вы выполняете проверку, обязательно обновляйте только тогда, когда будете готовы к развертыванию.

Другие советы

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

Правильная установка WordPress

Также посмотрите на svn: externals для получения обновлений плагинов:

Используйте svn:externals для установки плагинов WordPress

Я думаю, что часть обновления может быть даже немного проще, чем это;Я делаю это с самой последней версией 2.5 и 2.6, а также с расширенной редакцией WP.

Поскольку Wordpress предлагает все свои материалы в виде репозиториев subversion, получить текущую версию стабильного тега так же просто, как создать каталог блога, а затем

# svn co http://svn.automattic.com/wordpress/tags/2.6.2/ (replace the current rev here for the first check out).

Когда обновление будет доступно, просто перейдите в каталог вашего блога и запустите

#svn sw http://svn.automattic.com/wordpress/tags/2.6.3/ (or whatever wordpress rev you're updating to)

Тогда выпуск на ваш производственный сайт - это просто экспорт, поскольку грегмак упоминает Однако я не думаю, что это отвечает на ваш актуальный вопрос, который я интерпретирую как "Как мне сохранить мои пользовательские материалы в SCM, имея возможность обновить Wordpress".Ваше указание о том, какие каталоги использовать, в значительной степени соответствует цели (материалы вашего личного блога - темы, pplugins - будут находиться в wp-контенте, поэтому вам нужно будет только поместить это в subversion), но я недостаточно разбираюсь в subversion, чтобы рассказать вам, как поместить каталог в ваш собственный репозиторий, сохраняя при этом возможность полагаться на репозиторий Wordpress для обновлений.Мой "SCM" для этих файлов на моем сайте - это внесерверная копия каталога wp-content.

Возможно, с этой точки зрения ответ gregmac работает лучше для вас.

Мое первоначальное желание - попытаться просто скопировать информацию о моей теме, поскольку это действительно единственный материал, которым я ‘владею’, в то время как все остальное на самом деле просто часть моей платформы (ничем не отличается от Apache или PHP, на самом деле).Однако именно здесь мое понимание рушится.Как я могу выборочно обрабатывать только часть этой структуры каталогов и как я могу поддерживать конфигурацию Wordpress, на которой я работаю?

Именно так я контролирую версии своего блога.Я обнаружил, что это отлично работает.Как правило, если вы редактируете файлы WordPress, вы делаете это неправильно и будете испытывать трудности, когда придет время обновления.

Чтобы упростить это, я использую TortoiseSVN.Я перешел в каталог my / wp-content / themes / в проводнике Windows, щелкнул правой кнопкой мыши по каталогу моей пользовательской темы и выбрал импорт из контекстного меню.После импорта всех существующих файлов я выполнил Оформить покупку в этом каталоге все и было установлено.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top