Как я могу использовать SCM с приложением PHP, таким как Wordpress? - PullRequest
2 голосов
/ 23 сентября 2008

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

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

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

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

Ответы [ 4 ]

3 голосов
/ 23 сентября 2008

На самом деле это не так сложно сделать, но здесь я разбью его на несколько предложений. То, что вы описываете, является более или менее директорией «вендора». Это в основном то, где вы поддерживаете код в SVN, но заменяете содержимое более новым материалом, когда он выходит.

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

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

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

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

2 голосов
/ 17 февраля 2009

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

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

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

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

1 голос
/ 23 сентября 2008

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

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

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

1 голос
/ 23 сентября 2008

Я думаю, что часть обновления может быть даже немного проще; Я делаю это с самой последней версией 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)

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

Может быть, с этой точки зрения ответ Грегмака будет лучше для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...