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

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

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

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

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

Как убрать количество товаров в категории WooCommerce
Как убрать количество товаров в категории WooCommerce
По умолчанию WooCommerce показывает количество товаров рядом с категорией, как показано ниже.
2
0
1 542
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

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

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

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

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

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

Я не уверен, что это позволит мне выполнить полное развертывание из Subversion в производственную среду, поскольку платформа wordpress не будет включена в репо.

Tim Visher 23.09.2008 05:14

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

gregmac 23.09.2008 08:04

Ага! И это тоже имеет смысл, как мне сказали хорошие люди из Wordpress.org. Причина, по которой вы «устанавливаете» wordpress локально, - это настройка БД. Затем все можно настроить. Извини, что я что-то пропустил. :)

Tim Visher 23.09.2008 13:46

Я думаю, что часть обновления может быть даже немного проще; Я делаю это с самой последней версией 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-content, поэтому вам нужно только поместить его в подрывную деятельность), но я недостаточно разбираюсь в подрывной чтобы рассказать вам, как разместить каталог в вашем собственном репозитории, при этом имея возможность полагаться на репозиторий Wordpress для обновлений. Моя «SCM» для этих файлов на моем сайте - это внешняя копия каталога wp-content.

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

My initial inclination is to try to just SCM my theme information as this is really the only stuff that I ‘own’ while as everything else is really just part of my platform (no different than Apache or PHP, really). However, that’s where my understanding breaks down. How can I selectively SCM only part of that directory structure, and how can I maintain the configuration of Wordpress that I’m on?

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

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

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

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

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

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

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