Обновление Magento с помощью Git - PullRequest
2 голосов
/ 01 сентября 2011

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

Для начала у меня есть текущий магазин на нашем производственном сервере, у меня есть настройка git, и дубликаты репозитория есть в нашей учетной записи Beanstalk .У меня есть полная история изменений и т. Д. В этом репо, и в идеале я хотел бы сохранить их на месте.

У меня есть тема, которую мы приобрели, а затем довольно сильно оптимизированы, но, к счастью, почти все оптимизации находятся в пределах переопределения.CSS-файлХотя в самих файлах темы есть несколько небольших изменений кода.

Поскольку Magento использует SVN в качестве своего CVS, я обнаружил (на Github) зеркало выпусков Magento.

Итак, такНа данный момент у меня есть три местоположения, которые я хотел бы объединить:

  1. Производство (git)
  2. Зеркало Magento (git)
  3. Тема (не git или svnпростые старые каталоги)

Я думал о добавлении зеркала Magento в качестве ответвления к моему существующему репозиторию git, называя его 1.6.0 или аналогичным.Затем как-то потянув простые каталоги тем и файл в главную ветку ...

Я на правильных строках?

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

1 Ответ

6 голосов
/ 01 сентября 2011

Это довольно просто, но вы должны убедиться, что ваш сайт основан на каком-либо главном репо, которое можно объединить в потоке с более ранними версиями (репо, в котором все версии Magento представлены в виде тегов или веток, которые можно объединить с последними с самого начала) , Итак, вот два сценария, которым нужно следовать

1. Мой сайт не в git

  1. начать с клонирования из главного репозитория, имеющего все версии magento (по крайней мере, для той версии, которую вы используете в настоящее время)
  2. получите свой клон и оформите новую ветку с версией, которую вы сейчас используете
  3. скопировать ваш текущий сайт в эту версию
  4. после этого "git status" покажет вам diff с оригинальной версией, с которой вы начали, и все изменения, которые вы внесли в него
  5. теперь разумно перенести все основные изменения в локальный пул кодов и отменить любые изменения в ядре в исходные файлы, переместить любые изменения в шаблонах по умолчанию или базовых шаблонах в свой собственный шаблон и отменить изменения в файлах стандартных или базовых шаблонов. То же самое касается всех файлов, которые выглядят измененными по сравнению с оригинальной версией. Это дает вам «все мои изменения отделены от исходного кода, и они не будут конфликтовать с моими обновлениями», разумно зафиксировать это состояние
  6. Если все вещи отделены от оригинальных файлов, то пришло время обновить. Включите тему по умолчанию, отключите все локальные расширения и расширения сообщества, объедините новую версию с текущей веткой. Посетите сайт, чтобы выполнить обновление
  7. Теперь ваш сайт обновлен, и вы можете по очереди включить свою тему и пользовательские расширения, чтобы увидеть, что совместимо, а что нет. Отлаживать и решать по одному

Мой сайт уже в git

  1. если он основан на репо со всеми версиями, в которых вы находитесь в хорошем состоянии (пропустить 2)
  2. если это не так, вы можете добавить репо, в котором все это будет удаленно, и начать с объединения текущей версии и отделения изменений от оригинала, как описано в первом сценарии
  3. сделайте новую ветку вашего текущего сайта используемой
  4. объединить с новой версией
  5. отключить все локальные расширения, расширения сообщества, включить тему по умолчанию и обновить
  6. включить тему, расширения одно за другим и отлаживать при возникновении конфликтов

Обычно настройка git выглядит следующим образом:

  • MAGENTO MASTER -> ДИСТАНЦИОННОЕ УПРАВЛЕНИЕ, КОТОРОЕ ВСЕ МАГЕНТО ВЕРСИИ

  • ВАШ МАСТЕР -> ДИСТАНЦИОННОЕ ПРОИСХОЖДЕНИЕ - МАГЕНТО МАСТЕР

    • ветка: yoursite_dev
    • ветка: yoursite_stage
    • ветка: yoursite_live

Вы всегда разрабатываете ветку your_dev, и если изменения готовы для оценки, вы объединяете _stage с _dev, а если изменения одобрены, вы объединяете состояние в _live либо из _dev, либо из _stage.

команды, основанные на теоретических конечных точках

git clone git://github.com/speedupmate/Magento-CE-Mirror.git yourprojectdir 
cd yourprojectdir
git fetch --tags
git tag
git checkout -b yoursite_dev magento-1.5.0.1
git checkout -b yoursite_stage yoursite_dev
git checkout -b yoursite_live yoursite_dev
git checkout yoursite_dev
git branch
//copy in your site
//separate changes or originals
//add any file/dir with local importance to .gitignore
//turn of your default theme, disable all local/community extensions and overrides
//assuming you are on dev branch commit your clean state 
git merge magento-1.6.0.0
//visit the site to execute the upgrade 
//enable your theme , extensions , debug

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

...